public ActionResult GetCustomers() { var data = new MobileResponseModel(); try { var items = GenericFactory.Business.GetCustomersList(); var result = new List <CustomerViewModel>(); result.AddRange(items.Select(c => new CustomerViewModel { Id = c.Id.ToString(), Name = c.Name, HospitalName = c.CustomerBranches.FirstOrDefault().CustomerBranchName, CustomerTypeName = c.CustomerType.CustomerTypeName })); data.Datas = result; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public MobileResponseModel Get([FromUri] long eventCustomerId) { var model = new MobileResponseModel(); _logger.Info("Chaperone Form (Get) EventCustomerId : " + eventCustomerId); try { var data = _chaperoneService.GetChaperoneFormModel(eventCustomerId); model.IsSuccess = true; model.StatusCode = 200; model.Data = data; return(model); } catch (Exception ex) { _logger.Error(string.Format("Error occurred while getting chaperone form data Message:{0} \\n Stack Trace:{1}", ex.Message, ex.StackTrace)); model.IsSuccess = false; model.Message = ex.Message.ToString(); model.StatusCode = 500; model.Data = null; return(model); } }
public ActionResult GetFabricType() { var data = new MobileResponseModel(); try { var materials = GenericFactory.Business.GetMaterials(); var result = new List <MaterialViewModel>(); result.AddRange(materials.Select(m => new MaterialViewModel { Id = m.Id.ToString(), MaterialName = m.Name })); data.Datas = result; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public MobileResponseModel FetchCustomerForEvent([FromUri] long eventId) { MobileResponseModel eventCustomerListModel; try { var data = _eventCustomerBriefListService.GetPatientsByEventyId(eventId); eventCustomerListModel = new MobileResponseModel { IsSuccess = true, Data = data, StatusCode = 200 }; } catch (Exception exception) { _logger.Error(string.Format("while FetchCustomerForEvent Message:{0} \\n Stack Trace:{1}", exception.Message, exception.StackTrace)); eventCustomerListModel = new MobileResponseModel { IsSuccess = false, Message = exception.Message, StatusCode = 500, Data = null }; } return(eventCustomerListModel); }
public MobileResponseModel Get([FromUri] long eventCustomerId) { MobileResponseModel physicianRecordRequestSignature; _logger.Info("Physician Record Request (Get) EventCustomerId : " + eventCustomerId); try { var data = _physicianRecordRequestService.GetPhysicianRecordRequestSignature(eventCustomerId); physicianRecordRequestSignature = new MobileResponseModel { IsSuccess = true, Data = data, StatusCode = 200 }; } catch (Exception exception) { _logger.Error(string.Format("while physician Record Request Signature Message:{0} \\n Stack Trace:{1}", exception.Message, exception.StackTrace)); physicianRecordRequestSignature = new MobileResponseModel { IsSuccess = false, Message = exception.Message, StatusCode = 500, Data = null }; } return(physicianRecordRequestSignature); }
public MobileResponseModel UpdateCheckInCheckOutTime(CustomerCheckInCheckOutTimeModel model) { var result = new MobileResponseModel { IsSuccess = false }; try { var isUpdated = _eventCustomerBriefListService.UpdateCheckinCheckOutTime(model.EventCustomerId, model.AppointmentId, model.CheckInTime, model.CheckOutTime); if (isUpdated) { result.IsSuccess = true; } else { result.IsSuccess = false; result.Message = "Checkin/Checkout time update failed."; } } catch (Exception exception) { _logger.Error(string.Format("While Updating Checkin/Checkout Time Message: {0} \n Stack Trace {1}", exception.Message, exception.StackTrace)); result.IsSuccess = false; result.Message = exception.Message; } return(result); }
public ActionResult AddNewHistory(MobileHistoryViewModel model) { var data = new MobileResponseModel(); var history = new MobileHistoryViewModel { Id = Guid.NewGuid().ToString(), DocumentId = model.DocumentId, HistoryTypeId = 1, UserId = model.UserId, Text = model.Text }.ToEntity(); try { GenericFactory.Business.AddHistory(history); data.Datas = new { Id = history.Id.ToString() }; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public ActionResult GetContact(string id) { var data = new MobileResponseModel(); try { var contacts = GenericFactory.Business.GetContactByCustomerId(id); var result = new List <ContactViewModel>(); result.AddRange(contacts.Select(c => new ContactViewModel { Id = c.Id.ToString(), Name = c.Name, Phone = c.Phone, Email = c.Email, Fax = c.Fax, Mobile = c.Mobile })); data.Datas = result; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public ActionResult AddOrUpdateDelivery(DeliveryViewModel model) { var data = new MobileResponseModel(); try { var document = GenericFactory.Business.GetDocument(model.Id); document.DocumentDeliveries.FirstOrDefault().Address1 = model.DeliveryAddress; this.UpdateDocument(document, document.FileNumber); data.Datas = new { Id = document.Id.ToString() }; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public ActionResult GetAllCommentByDocumentId(string id) { var data = new MobileResponseModel(); try { var comments = GenericFactory.Business.GetHistoryByType(id, 2); var result = comments.OrderByDescending(o => o.CreatedDate).Select(i => new MobileHistoryViewModel { Id = i.Id.ToString(), Text = i.Text, DocumentId = i.DocumentId.ToString(), HistoryTypeId = i.HistoryTypeId.Value, UserId = i.UserId, DisplayName = i.AspNetUser.DisplayName, CreatedDate = i.CreatedDate.ToString("dd/MM/yyyy HH:mm:ss") }); data.Datas = result; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public ActionResult UpdateLocation(LocationTrackingViewModel model) { var data = new MobileResponseModel(); try { GenericFactory.Business.UpdateLocation(new LocationTracking { Id = Guid.NewGuid(), UserId = model.UserId, Latitude = Decimal.Parse(model.Location.Lat), Longitude = decimal.Parse(model.Location.Long), TimeStamp = DateTime.Now }); } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public ActionResult AddOrUpdateCustomerAndContact(CustomerAndContactViewModel model) { var data = new MobileResponseModel(); try { var document = GenericFactory.Business.GetDocument(model.Id); var customerCode = GenericFactory.Business.GetCustomerById(model.CustomerId).CustomerCode; document.BiddingStatusId = model.IsDraft ? (int)WorkflowStatus.Draft : (int)WorkflowStatus.RequestForPrice; document.CustomerId = new Guid(model.CustomerId); document.ContactId = new Guid(model.ContactId); this.UpdateDocument(document, customerCode); data.Datas = new { Id = document.Id.ToString() }; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public MobileResponseModel Get([FromUri] long eventCustomerId) { MobileResponseModel participationConsentSignature; _logger.Info("Participation Consent (Get) EventCustomerId : " + eventCustomerId); try { var data = _participationConsentService.GetParticipationConsentSignature(eventCustomerId); participationConsentSignature = new MobileResponseModel { IsSuccess = true, StatusCode = 200, Data = data }; return(participationConsentSignature); } catch (Exception ex) { _logger.Error(string.Format("while Participation Consent Record Request Signature Message:{0} \\n Stack Trace:{1}", ex.Message, ex.StackTrace)); participationConsentSignature = new MobileResponseModel { IsSuccess = false, Message = ex.Message.ToString(), StatusCode = 500, Data = null }; return(participationConsentSignature); } }
public ActionResult GetOptionsByProductId(string id) { var data = new MobileResponseModel(); try { var products = GenericFactory.Business.GetOptionsByProductId(id); var result = new List <ProductOptionViewModel>(); result.AddRange(products.Select(o => new ProductOptionViewModel { Id = o.Id.ToString(), OptionName = o.OptionName })); data.Datas = result; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public ActionResult GetCategoriesProduct() { var data = new MobileResponseModel(); try { var categories = GenericFactory.Business.GetProductCategories(); var result = new List <ProductCategoryViewModel>(); result.AddRange(categories.Select(c => new ProductCategoryViewModel { Id = c.Id.ToString(), CategoryName = c.CategoryName })); data.Datas = result; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public ActionResult GetPatternImages(MobilePatternImageViewModel model) { var data = new MobileResponseModel(); try { var patterns = GenericFactory.Business.GetPatternImageByCustomerId(model.CustomerId, model.PatternType); var result = new List <PatternImageViewModel>(); foreach (var p1 in patterns) { var path = string.Format(@"{0}/FileUpload/{1}", AppSettingHelper.Domain, p1.PatternImagePath.Replace(@"\", @"/") .Split(new string[] { @"FileUpload" }, StringSplitOptions.None)[1] .Remove(0, 1)); result.Add(new PatternImageViewModel { Id = p1.Id.ToString(), PatternName = p1.PatternName, ImagePath = path }); } data.Datas = result; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public ActionResult AddOrUpdateProductItem(ProductAndOptionViewModel model) { var data = new MobileResponseModel(); try { if (model.ItemId != null) { GenericFactory.Business.MarkDeleteProductItemByItemId(model.ItemId); } var document = GenericFactory.Business.GetDocument(model.Id); document.DocumentProductItems.Add(model.ToViewModel()); this.UpdateDocument(document, document.FileNumber); data.Datas = new { Id = document.Id.ToString() }; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public ActionResult GetWorkList(MobileWorkListSearchCriteria criteria) { var data = new MobileResponseModel(); int pageSize = AppSettingHelper.PageSize; try { if (!string.IsNullOrWhiteSpace(criteria.Keyword)) { criteria.Keyword = criteria.Keyword.Trim(); } var items = GenericFactory.Business.GetDocumentsListBySearch(criteria.SearchBy, criteria.Keyword, criteria.UserId) .OrderByDescending(i => i.CreatedDate) .ToList(); var allowedStatus = new List <int>(); allowedStatus.Add((int)WorkflowStatus.Draft); allowedStatus.Add((int)WorkflowStatus.RequestForMoreInfoForSale); var documents = items.Where(i => allowedStatus.Contains(i.DocumentStatusId.Value)).ToList(); int totalCount = documents.Count; var result = new List <DocumentListItemViewModel>(); //random number Random rnd = new Random(); foreach (var d in documents) { var documentStatus = (WorkflowStatus)d.DocumentStatusId; var statusName = documentStatus.ToWorkFlowStatusName(); var biddingStatus = (d.BiddingStatusId.HasValue) ? (BiddingStatus)d.BiddingStatusId : BiddingStatus.undefined; var biddingStatusName = biddingStatus.ToBiddingStatusName(); var numberOfComments = rnd.Next(1, 5); var document = new DocumentListItemViewModel { Id = d.Id.ToString(), CustomerType = d.Customer.CustomerType.CustomerTypeName, CustomerName = d.Customer.Name, DocumentCode = d.FileNumber, SaleUserName = d.AspNetUser.DisplayName, WorkflowStatus = (int)d.DocumentStatusId, WorkflowStatusName = statusName, BiddingStatus = (d.BiddingStatusId.HasValue) ? (int)d.BiddingStatusId : 0, BiddingStatusName = biddingStatusName, IssueDate = d.CreatedDate.Value.ToString("dd/MM/yyyy"), ExpiryDate = d.ExpiryDate.HasValue ? d.ExpiryDate.Value.ToString("dd/MM/yyyy") : "", NumberOfComments = numberOfComments }; result.Add(document); } data.Datas = result; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public ActionResult AddOrUpdateGeneralAndSaleInfo(GeneralAndSaleInfoViewModel model) { var data = new MobileResponseModel(); try { var document = GenericFactory.Business.GetDocument(model.Id); var customerCode = ""; if (document != null) { document.BiddingStatusId = model.IsDraft ? (int)WorkflowStatus.Draft : (int)WorkflowStatus.RequestForPrice; document.ConfirmedPriceDays = model.ConfirmPriceDays; document.DeliveryDays = model.DeliveryDays; document.UserId = model.SaleUserId; this.UpdateDocument(document, customerCode); } else { var _documentId = Guid.NewGuid(); document = new Document { Id = _documentId, DocumentStatusId = model.IsDraft ? (int)WorkflowStatus.Draft : (int)WorkflowStatus.RequestForPrice, ConfirmedPriceDays = model.ConfirmPriceDays, DeliveryDays = model.DeliveryDays, UserId = model.SaleUserId, CustomerId = new Guid(AppSettingHelper.DummyCustomerId), ContactId = new Guid(AppSettingHelper.DummyContactId) }; var delivery = new DocumentDelivery { Id = Guid.NewGuid(), DocumentId = _documentId, Address1 = "" }; document.DocumentDeliveries.Add(delivery); this.CreateDocument(document, customerCode); } data.Datas = new { Id = document.Id.ToString() }; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public ActionResult CheckStock(MobileCalculateDateViewModel model) { var data = new MobileResponseModel(); try { var productId = model.ProductId; var productUnitId = model.ProductUnitId; var materialId = model.MaterialId; var amount = model.Amount; var result = new List <StockCheckViewModel>(); var material = GenericFactory.Business.GetMaterialUsageByProductId(productId, productUnitId).FirstOrDefault(); var selectedMaterial = GenericFactory.Business.GetMaterialById(materialId); var stock = GenericFactory.Business.GetStockCheck(AppSettingHelper.GetDefaultWarehouseId, materialId, material.MaterialUnitId.ToString()).FirstOrDefault(); if (stock != null) { var usageAmount = material.Amount.Value; var totalAmount = stock.Amount.Value; result.Add(new StockCheckViewModel { MaterialName = string.Format("{0}", stock.Material.Name, stock.Material.MaterialCode), MaterialInStock = totalAmount, MaterialUsaged = (usageAmount * amount), MaterialInStockAfterWithdraw = (totalAmount - (usageAmount * amount)) }); } else { var usageAmount = material.Amount.Value; var totalAmount = 0; result.Add(new StockCheckViewModel { MaterialName = selectedMaterial.Name, MaterialInStock = 0, MaterialUsaged = (usageAmount * amount), MaterialInStockAfterWithdraw = (totalAmount - (usageAmount * amount)) }); } data.Datas = result; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public ActionResult CopyProductItem(DocumentAndItemViewModel model) { var data = new MobileResponseModel(); try { var document = GenericFactory.Business.GetDocument(model.DocumentId); var item = document.DocumentProductItems.First(i => i.Id.ToString() == model.ItemId); var copyItem = new DocumentProductItem { Id = Guid.NewGuid(), DocumentId = item.DocumentId, ProductId = item.ProductId, ProductOptionId = item.ProductOptionId, ProductUnitId = item.ProductUnitId, Amount = item.Amount, DiscountAmount = item.DiscountAmount, DiscountPercentage = item.DiscountPercentage, FromWarehouseId = item.FromWarehouseId, IsDeleted = false, PricePerUnit = item.PricePerUnit, ProductItemPrintOptionals = item.ProductItemPrintOptionals, ProductItemScreenOptionals = item.ProductItemScreenOptionals, ProductItemSewOptionals = item.ProductItemSewOptionals, TotalPrice = item.TotalPrice, }; document.DocumentProductItems.Add(copyItem); GenericFactory.Business.UpdateDocument(document); data.Datas = new { Id = document.Id.ToString() }; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public ActionResult GetDocumentDetail(string id) { var data = new MobileResponseModel(); try { var document = GenericFactory.Business.GetDocument(id); var result = document.ToViewModel(); data.Datas = result; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public ActionResult GetProductItemsByDocumentId(string id) { var data = new MobileResponseModel(); try { var document = GenericFactory.Business.GetDocument(id); var result = document.DocumentProductItems.Where(i => !i.IsDeleted).Select(i => i.ToViewModel()).ToList(); data.Datas = result; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public MobileResponseModel FetchEvent([FromUri] long EventId) { MobileResponseModel model; try { if (_sessionContext.UserSession == null || _sessionContext.UserSession.CurrentOrganizationRole == null) { throw new Exception("Invalid User"); } var filter = new EventSearchModelFilter(); filter.EventId = EventId; filter.StaffId = _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId; filter.FromDate = DateTime.Today; filter.ToDate = DateTime.Today; var data = _eventService.GetEventBasicDetailsForStaff(filter) ?? null; model = new MobileResponseModel { IsSuccess = true, Data = data }; } catch (Exception exception) { _logger.Error(string.Format("While Fetch Events Message:{0} \\n Stack Trace:{1}", exception.Message, exception.StackTrace)); model = new MobileResponseModel { IsSuccess = false, Message = exception.Message, Data = null }; } return(model); }
public ActionResult DeleteProductItem(DocumentAndItemViewModel model) { var data = new MobileResponseModel(); try { GenericFactory.Business.MarkDeleteProductItemByItemId(model.ItemId); data.Datas = new { Id = model.DocumentId.ToString() }; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public ActionResult AddOrUpdateDocument(FormCollection formCollection) { var data = new MobileResponseModel(); try { var json = formCollection["document"].ToString().Replace(@"\", ""); var model = JsonConvert.DeserializeObject <DocumentViewModel>(json, new IsoDateTimeConverter { DateTimeFormat = "dd/MM/yyyy" }); var document = model.ToEntity(); document.BiddingStatusId = model.IsDraft ? (int)WorkflowStatus.Draft : (int)WorkflowStatus.RequestForPrice; var customerCode = GenericFactory.Business.GetCustomerById(model.CustomerId).CustomerCode; if (string.IsNullOrEmpty(document.Id.ToString())) { //Insert this.CreateDocument(document, customerCode); } else { //Update this.UpdateDocument(document, customerCode); } data.Datas = new { Id = document.Id.ToString() }; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public void DeleteDocument(string id) { var data = new MobileResponseModel(); try { var document = GenericFactory.Business.GetDocument(id); if (document != null) { document.IsDelete = true; this.UpdateDocument(document, document.FileNumber); } } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } //return new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet); }
public ActionResult GetCustomerBranchByCustomerId(string id) { var data = new MobileResponseModel(); try { var customerBranches = GenericFactory.Business.GetCustomerBranches(id); var result = customerBranches.Select(i => new { Id = i.Id.ToString(), BranchName = i.CustomerBranchName }); data.Datas = result; } catch (Exception ex) { data.Status = false; data.ErrorCode = "001"; data.ErrorMessage = ex.Message; data.MessageId = ""; data.TimeStamp = ""; } return(new JsonCamelCaseResult(data, JsonRequestBehavior.AllowGet)); }
public MobileResponseModel Post([FromBody] UserLoginModel model) { var authenticationModel = new MobileResponseModel { IsSuccess = false }; if (string.IsNullOrEmpty(model.Password) || string.IsNullOrEmpty(model.UserName) || string.IsNullOrEmpty(model.DeviceKey)) { authenticationModel.Message = "UserName or Password can not be empty"; return(authenticationModel); } var isValid = _userLoginRepository.ValidateUser(model.UserName, model.Password); if (isValid) { try { var userSession = _userLoginService.GetUserSessionModel(model.UserName); if (userSession.CurrentOrganizationRole == null) { authenticationModel.Message = "Your default role has been removed. Please contact your administrator."; return(authenticationModel); } if (!userSession.CurrentOrganizationRole.CheckRole((long)Roles.Technician) && !userSession.CurrentOrganizationRole.CheckRole((long)Roles.NursePractitioner)) { authenticationModel.Message = "Your default role must be Technician or Nurse Practitioner. Please contact your administrator."; return(authenticationModel); } int pinExpirationDays = 0; Int32.TryParse(_configurationSettingRepository.GetConfigurationValue(ConfigurationSettingName.PinExpirationDays), out pinExpirationDays); int daysBeforAlert = 0; Int32.TryParse(_configurationSettingRepository.GetConfigurationValue(ConfigurationSettingName.AlertBeforePinExpirationInDays), out daysBeforAlert); var pinExpireInDays = _technicianRepository.GetPinExpireInDays(userSession.CurrentOrganizationRole.OrganizationRoleUserId, pinExpirationDays); if (pinExpireInDays <= daysBeforAlert) { pinExpireInDays = pinExpireInDays <= 0 ? 0 : pinExpireInDays; } _sessionContext.UserSession = userSession; var loggedInUser = _userRepository.GetUser(userSession.UserId); _sessionContext.LastLoggedInTime = loggedInUser.UserLogin.LastLogged.ToString(); _userLoginRepository.UpdateLoginStatus(_sessionContext.UserSession.UserId, true); var sessionId = Guid.NewGuid().ToString(); var userLoginLog = SaveLoginInfo(userSession.UserId, sessionId, model.DeviceKey); _sessionContext.UserSession.UserLoginLogId = userLoginLog.Id; var technicianProfile = new Technician(); if (_sessionContext.UserSession.AvailableOrganizationRoles.Any(x => x.RoleId == (long)Roles.Technician)) { var technicianOrgRoleUserId = _sessionContext.UserSession.AvailableOrganizationRoles.First(x => x.RoleId == (long)Roles.Technician).OrganizationRoleUserId; technicianProfile = _technicianRepository.GetTechnician(technicianOrgRoleUserId); } authenticationModel = new MobileResponseModel { IsSuccess = true, Message = "Successfully Logged In", StatusCode = 200, Data = new AuthenticationModel { UserId = userSession.UserId,//Todo: need to check if OrgRoleUserID Can be Sent Token = (sessionId + "_" + userLoginLog.UserId).Encrypt(), Name = userSession.FullName, Role = userSession.CurrentOrganizationRole.RoleDisplayName, Pin = !string.IsNullOrWhiteSpace(technicianProfile.Pin) ? technicianProfile.Pin.Encrypt() : string.Empty, ShowAlertBeforePinExpirationInDays = daysBeforAlert, RemainingDays = pinExpireInDays, } }; } catch (Exception exception) { _logger.Error("while loging user" + exception.StackTrace); authenticationModel.Message = "UserName or Password is not valid"; return(authenticationModel); } } else { _logger.Warn("Tried to access with invalid cridential"); authenticationModel.Message = "UserName or Password is not valid"; return(authenticationModel); } return(authenticationModel); }