public async Task Execute(IJobExecutionContext context) { try { DAL.DAL_Notification dal_NoTi = new DAL.DAL_Notification(); DateTime dateNext = DateTime.Today.AddDays(1); var arrayUser = new DAL.DAL_User().GetFromAppointmentDate(dateNext); string html = System.IO.File.ReadAllText(System.Web.Hosting.HostingEnvironment.MapPath("~/EmailTemplate/EmailTemplate.html"), System.Text.Encoding.UTF8); Attachment oAttachment = new Attachment(System.Web.Hosting.HostingEnvironment.MapPath("~/EmailTemplate/logoSendMail.png")); oAttachment.ContentId = Guid.NewGuid().ToString().Trim(); DAL.DAL_Messages dal_message = new DAL.DAL_Messages(); string strBase64 = string.Empty; using (Image image = Image.FromFile(System.Web.Hosting.HostingEnvironment.MapPath("~/EmailTemplate/logoSendMail.png"))) { using (MemoryStream m = new MemoryStream()) { image.Save(m, image.RawFormat); byte[] imageBytes = m.ToArray(); strBase64 = "data:image/png;base64," + Convert.ToBase64String(imageBytes); } } foreach (var recepient in arrayUser) { MailMessage message = new MailMessage(); message.Attachments.Add(oAttachment); message.From = new MailAddress(ConfigurationManager.AppSettings["User-NetworkCredential"]); message.To.Add(recepient.Email); message.Subject = "Reminder of Appointment on " + dateNext.ToString("dd/MM/yyyy"); message.Body = html.Replace("{IdLogo}", oAttachment.ContentId).Replace("{Subject}", "Reminder of Appointment on " + dateNext.ToString("dd/MM/yyyy")).Replace("{Body}", "NRIC " + Trinity.Common.CommonUtil.GetQueueNumber(recepient.NRIC) + ", you have been scheduled for urine reporting at CNB ENF A on " + DateTime.Today.ToString("dd/MM/yyyy")); message.IsBodyHtml = true; // Send the email async to avoid blocking the main thread SmtpClient client = new SmtpClient(); client.Host = ConfigurationManager.AppSettings["Host"]; client.Port = Convert.ToInt32(ConfigurationManager.AppSettings["Port"]); client.UseDefaultCredentials = false; client.EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["EnableSsl"]); client.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["User-NetworkCredential"], ConfigurationManager.AppSettings["Password-NetworkCredential"]); client.SendCompleted += (se, ea) => { client.Dispose(); message.Dispose(); dal_message.Insert(recepient, message.Subject, message.Body, true); dal_message.Insert(recepient, message.Subject, "NRIC " + Trinity.Common.CommonUtil.GetQueueNumber(recepient.NRIC) + ", you have been scheduled for urine reporting at CNB ENF A on " + DateTime.Today.ToString("dd/MM/yyyy"), false); }; client.SendAsync(message, null); //Send notification dal_NoTi.InsertNotification(null, recepient.UserId, message.Subject, message.Body.Replace("cid:" + oAttachment.ContentId, strBase64), false, DateTime.Now, null, EnumNotificationTypes.Notification, EnumStation.DUTYOFFICER); } } catch (Exception) { } }
//[ResponseType(typeof(ResponseModel))] public IHttpActionResult GetUserBySmartCardId(string smartcardId) { var responseModel = new ResponseModel(); var result = new DAL.DAL_User().GetUserBySmartCardId(smartcardId); return(Ok(result)); }
public async System.Threading.Tasks.Task <IHttpActionResult> SHPComplete([FromBody] SHPCompleteModel model) { try { var user = new DAL.DAL_User().GetByNRIC(model.NRIC); new DAL.DAL_QueueNumber().UpdateQueueStatusByUserId(user.UserId, EnumStation.SHP, EnumQueueStatuses.Finished, EnumStation.UT, EnumQueueStatuses.Processing, "", EnumQueueOutcomeText.Processing); await System.Threading.Tasks.Task.Run(() => Trinity.SignalR.Client.Instance.BackendAPISend(NotificationNames.SHP_COMPLETED, model.NRIC)); return(Ok(true)); } catch (Exception) { return(Ok(false)); } }
public async System.Threading.Tasks.Task <IHttpActionResult> SSPComplete([FromBody] SSPCompleteModel model) { try { var user = new DAL.DAL_User().GetByNRIC(model.NRIC); new DAL.DAL_QueueNumber().UpdateQueueStatusByUserId(user.UserId, EnumStation.SSP, EnumQueueStatuses.Finished, EnumStation.DUTYOFFICER, EnumQueueStatuses.TabSmartCard, EnumMessage.SelectOutCome, EnumQueueOutcomeText.TapSmartCardToContinue); new DAL.DAL_Labels().DeleteLabel(user.UserId, DateTime.Today, EnumLabelType.UB); await System.Threading.Tasks.Task.Run(() => Trinity.SignalR.Client.Instance.BackendAPISend(NotificationNames.SSP_COMPLETED, model.NRIC)); return(Ok(true)); } catch (Exception) { return(Ok(false)); } }
public IHttpActionResult SSPGetOfficerName(string NRIC) { Trinity.DAL.DBContext.Membership_Users user = new DAL.DAL_User().GetByNRIC(NRIC); if (user != null && user.Membership_UserRoles != null && user.Membership_UserRoles.Any(d => d.Membership_Roles != null && (d.Membership_Roles.Name == EnumUserRoles.CaseOfficer || d.Membership_Roles.Name == EnumUserRoles.DutyOfficer || d.Membership_Roles.Name == EnumUserRoles.EnrolmentOfficer))) { return(Ok(new SSPCaseOfficerModel() { Name = user.Name })); } else { return(Ok()); } }
internal bool Login(ref User logginguser) { if (!string.IsNullOrEmpty(logginguser.activationKey) && logginguser.activationKey != Guid.Empty.ToString()) { bool IsLoginSuccess = new DAL.DAL_User().Login(ref logginguser); if (IsLoginSuccess) { this.userRepository.Add(logginguser); } //HttpContext.Current.Session["UserRepository"] = this.userRepository; return(true); } else { return(new DAL.DAL_User().Login(ref logginguser, true)); } return(false); }
public IHttpActionResult SSPVerifyDutyOfficer([FromBody] SSPVerifyDutyOfficerModel data) { try { var dalUser = new DAL.DAL_User(); ApplicationUser appUser = dalUser.Login(data.ID, data.Password); if (appUser != null) { if (dalUser.IsInRole(appUser.Id, EnumUserRoles.DutyOfficer)) { return(Ok(true)); } } } catch (Exception) { } return(Ok(false)); }
public async System.Threading.Tasks.Task <IHttpActionResult> SSPPostNotification([FromBody] SSPNotificationModel data) { try { LogManager.Debug(string.Format("Begin SSPPostNotification, NRIC:{0}, Type:{1}, Datetime:{2}, Notification_Code:{3}, Content:{4}", data.NRIC, data.Type, data.Datetime, data.notification_code, data.Content)); Trinity.DAL.DBContext.Membership_Users user = null; if (!string.IsNullOrEmpty(data.NRIC)) { user = new DAL.DAL_User().GetByNRIC(data.NRIC); } string Subject = data.Content; if (Subject.Length > 100) { Subject = Subject.Substring(0, 96) + " ..."; } string IDNoti = new DAL.DAL_Notification().InsertNotification(user != null ? user.UserId : null, null, Subject, data.Content, false, data.Datetime, data.notification_code, data.Type, EnumStation.SSP); if (!string.IsNullOrEmpty(IDNoti)) { if (data.Type == EnumNotificationTypes.Error && user != null) { new DAL.DAL_QueueNumber().UpdateQueueStatusByUserId(user.UserId, EnumStation.SSP, EnumQueueStatuses.Errors, EnumStation.DUTYOFFICER, EnumQueueStatuses.Finished, EnumMessage.LeakageDeletected, EnumQueueOutcomeText.Processing); await System.Threading.Tasks.Task.Run(() => Trinity.SignalR.Client.Instance.BackendAPISend(NotificationNames.SSP_ERROR, data.NRIC)); } await System.Threading.Tasks.Task.Run(() => Trinity.SignalR.Client.Instance.SendToAppDutyOfficers((user != null ? user.UserId : null), Subject, data.Content, data.Type, EnumStation.SSP, false, IDNoti)); LogManager.Debug("SSPPostNotification completed successfully"); return(Ok(true)); } else { LogManager.Error("SSPPostNotification failed."); return(Ok(false)); } } catch (Exception) { return(Ok(false)); } }
public IHttpActionResult SSPAuthenticate(string NRIC, string SmartCardUID) { Trinity.DAL.DBContext.Membership_Users user = new DAL.DAL_User().GetByNRIC(NRIC); if (user == null) { return(Ok(new SSPAuthenticateModel() { Found = false, Message = "NRIC " + NRIC + " is not registered" })); } if (string.IsNullOrEmpty(SmartCardUID)) { return(Ok(new SSPAuthenticateModel() { Name = user.Name, Found = true, Right = user.RightThumbFingerprint, Left = user.LeftThumbFingerprint, Message = "Success" })); } var smartCard = new DAL.DAL_IssueCard().GetIssueCardBySmartCardId(SmartCardUID); if (smartCard == null) { return(Ok(new SSPAuthenticateModel() { Found = false, Message = "Your smart card does not exist" })); } else if (smartCard.Status == EnumIssuedCards.Inactive) { return(Ok(new SSPAuthenticateModel() { Found = false, Message = "Your smart card does not work" })); } else if (smartCard.Status == EnumIssuedCards.Active && smartCard.Expired_Date < DateTime.Today) { return(Ok(new SSPAuthenticateModel() { Found = false, Message = "Your smart card has expired" })); } if (user.UserId != smartCard.UserId) { return(Ok(new SSPAuthenticateModel() { Found = false, Message = "Smart cards are not yours" })); } else { return(Ok(new SSPAuthenticateModel() { Name = user.Name, Found = true, Right = user.RightThumbFingerprint, Left = user.LeftThumbFingerprint, Message = "Success" })); } }