private void SendNotificationEmail(WorkScheduleModel Data, User user) { var fromEmail = new MailAddress("*****@*****.**", "Digital Forensics"); var toEmail = new MailAddress(user.Email); var fromEmailPassword = "******"; string subject = "Participant in a Schedule"; string body = $"Hello {user.Surname} {user.Firstname},"; body += $"<br /><br />You have been chosen to partcipate in a schedule."; body += $"<br /><br />This is the key <b>{Data.PublicKey}</b> to have access to the schedule."; body += "<br /><br />Please do not reply this message"; body += "<hr />"; body += "<br /><br />Thanks. Digital Forensics."; var smtp = new SmtpClient() { Host = "smtp.gmail.com", Port = 587, EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential(fromEmail.Address, fromEmailPassword) }; using (var message = new MailMessage(fromEmail, toEmail) { Subject = subject, Body = body, IsBodyHtml = true, }) { smtp.Send(message); } }
public int AddSchedule(WorkScheduleModel model) { var schedule = new WorkSchedule() { PublicKey = model.PublicKey, NoOfActors = model.NoOfActors, GeneratedBy = model.GeneratedBy, CreatedDate = model.CreatedDate }; DataContext.WorkSchedules.Add(schedule); SaveAll(); return(schedule.WID); }
public JsonResult BeginTask(WorkScheduleModel Data, string selectedKeys) { var innerEx = string.Empty; var exMessage = string.Empty; try { Data.CreatedDate = DateTime.Now; Data.GeneratedBy = User.Identity.Name; int wid = scheduleRepo.AddSchedule(Data); if (wid > 0) { PUBLICKEY = Data.PublicKey; string[] userIDS = selectedKeys.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); if (scheduleRepo.SaveActors(wid, userIDS)) { foreach (var item in userIDS) { int userID = int.Parse(item); var user = userRepo.GetAllUsers().Where(x => x.UID == userID).FirstOrDefault(); if (user != null) { SendNotificationEmail(Data, user); } } return(Json(new { success = true, infoMessage = $"Schedule successfully started and notifications have been sent to actors for this schedule." })); } } } catch (Exception ex) { if (PUBLICKEY != string.Empty) { scheduleRepo.RollTransaction(PUBLICKEY); } innerEx = ex.InnerException != null ? ex.InnerException.InnerException != null ? $" {ex.InnerException.Message} {ex.InnerException.InnerException.Message}" : $" {ex.InnerException.Message}" : string.Empty; exMessage = ex.Message; } return(Json(new { success = -1, errorMessage = $"{errorMessage}<br/> <b>Error Detail</b><br/> Error Message: <b>{exMessage}</b> </br> Inner Exception Message:<b> {innerEx}</b>" })); }