using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using AIAHTML5.ADMIN.API.Models; using System.Web.Http.Cors; using System.Web.Cors; using AIAHTML5.Server.Constants; using log4net; using System.Text; using AIAHTML5.ADMIN.API.Entity; namespace AIAHTML5.ADMIN.API.Controllers { [RoutePrefix("User")] public class UserController : ApiController { AIADatabaseV5Entities dbContext = new AIADatabaseV5Entities(); public IEnumerable Get() { return new string[] { "value1", "value2" }; } [Route("GetUserProfile/{userId}")] [HttpGet] public IHttpActionResult GetUserProfile(int userId) { dbContext.Configuration.ProxyCreationEnabled = false; try { return Ok(dbContext.AIAUsers.Where(u => u.Id == userId).ToList()); } catch (Exception ex) { throw ex; } //return ToJson(dbContext.AIAUsers.Where(u => u.Id == userId).AsEnumerable()); } [Route("UpdateProfile")] [HttpPost] public HttpResponseMessage UpdateUserProfile(UserModel userInfo) { bool Status = false; try { Status = UserModel.UpdateUserProfile(dbContext, userInfo.Id, userInfo.FirstName, userInfo.LastName, userInfo.EmailId); if (Status) { return Request.CreateResponse(HttpStatusCode.OK, Status.ToString()); } else { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, Status.ToString()); } } catch (Exception ex) { // Log exception code goes here return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message); } } [Route("ChangeUserPassword")] [HttpPost] public HttpResponseMessage UpdateUserPassword(JObject jsonData) { bool Status = false; int id = jsonData["id"].Value(); string newPassword = jsonData["newPassword"].Value(); try { Status = UserModel.UpdateUserPassword(dbContext, id, newPassword); if (Status) { return Request.CreateResponse(HttpStatusCode.OK, Status.ToString()); } else { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, Status.ToString()); } } catch (Exception ex) { // Log exception code goes here return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message); } } [Route("UpdateUserId")] [HttpPost] public HttpResponseMessage UpdateUserId(UserModel userInfo) { string Status = string.Empty; try { Status = UserModel.UpdateUserId(dbContext, userInfo.Id, userInfo.NewLoginId, userInfo.LoginId); if (Status.Equals("1")) { return Request.CreateResponse(HttpStatusCode.OK, "success"); } else if (Status.Equals("2")) { return Request.CreateResponse(HttpStatusCode.OK, "Already Exist Userid"); } else { return Request.CreateResponse(HttpStatusCode.BadRequest, "Please try again some time later."); } } catch (Exception ex) { // Log exception code goes here return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message); } } #region USERS List [Route("GetUserType/{UserTypeId}")] [HttpGet] public IHttpActionResult GetUserType(int UserTypeId) { dbContext.Configuration.ProxyCreationEnabled = false; List userTypelist = new List(); var userTypeEntity = dbContext.usp_GetUserType(UserTypeId).ToList(); userTypelist = userTypeEntity.Select(l => new UserType() { Id = l.Id, Title = l.Title }).ToList(); //userTypelist.Insert(0, new UserType { Id = 0, Title = "All" }); return Ok(userTypelist); } [Route("GetAccountType/{AccountTypeId}")] [HttpGet] public IHttpActionResult GetAccountType(int AccountTypeId) { dbContext.Configuration.ProxyCreationEnabled = false; return Ok(AccountTypeModel.GetAccountTypeList(dbContext, AccountTypeId)); } [Route("Users")] [HttpGet] public IHttpActionResult UserList(string firstname, string lastname, string emailid, string accountnumber, string usertypeid, string accounttypeid, int pageNo, int pageLength) { int UserTypeId = (!string.IsNullOrEmpty(usertypeid) ? Convert.ToInt32(usertypeid) : 0); int AccountTypeId = (!string.IsNullOrEmpty(accounttypeid) ? Convert.ToInt32(accounttypeid) : 0); var spRecordCount = new System.Data.Objects.ObjectParameter("recordCount", 0); int recordCount = 0; dbContext.Configuration.ProxyCreationEnabled = false; List Users = dbContext.GetSearchUserList(firstname, lastname, emailid, accountnumber, UserTypeId, AccountTypeId, 1, pageNo, pageLength, spRecordCount).ToList(); recordCount = (int)spRecordCount.Value; return Ok(new { UserList = Users, RecordCount = recordCount }); } #endregion #region Add User [Route("GetUserTypebyLicenseId")] [HttpGet] public IHttpActionResult GetUserTypebyLicenseId(int UserTypeId, int LicenseId) { short UserType = (short)UserTypeId; dbContext.Configuration.ProxyCreationEnabled = false; List userTypelist = new List(); var userTypeEntity = dbContext.GetUserTyeByAccountNumber((byte)UserType, LicenseId).ToList(); userTypelist = userTypeEntity.Select(l => new GetUserTyeByAccountNumber_Result() { Id = l.Id, Title = l.Title }).ToList(); //userTypelist.Insert(0, new UserType { Id = 0, Title = "All" }); return Ok(userTypelist); } [Route("GetAccountNumber")] [HttpGet] public IHttpActionResult GetAccountNumber() { dbContext.Configuration.ProxyCreationEnabled = false; List AccountNumberList = new List(); var AccountNumberEntity = dbContext.usp_GetAccountNumber(0).ToList(); AccountNumberList = AccountNumberEntity.Select(l => new usp_GetAccountNumber_Result() { Id = l.Id, AccountNumber = l.AccountNumber }).ToList(); //userTypelist.Insert(0, new UserType { Id = 0, Title = "All" }); return Ok(AccountNumberList); } [Route("GetProductEdition")] [HttpGet] public IHttpActionResult GetProductEditionByLicense(int LicenseId) { dbContext.Configuration.ProxyCreationEnabled = false; List ProductEditionList = new List(); var ProductEditionListEntity = dbContext.usp_GetProductEditionByLicense(LicenseId).ToList(); ProductEditionList = ProductEditionListEntity.Select(l => new usp_GetProductEditionByLicense_Result() { Id = l.Id, Title = l.Title }).ToList(); //userTypelist.Insert(0, new UserType { Id = 0, Title = "All" }); return Ok(ProductEditionList); } #endregion protected HttpResponseMessage ToJson(dynamic obj) { var response = Request.CreateResponse(HttpStatusCode.OK); response.Content = new StringContent(JsonConvert.SerializeObject(obj), Encoding.UTF8, "application/jsonP"); return response; } } }