public ActionResult Create() { var model = new WorkorderCreateViewModel(); model.Reporter = User.Identity.Name; model.ResultOfPersonServed = false; //fill dropdowns data model.Departments = GetDepartmentsSelectList(null); model.Consumers = GetConsumersSelectList(null); model.Priorities = GetPrioritiesSelectList(null); model.Areas = GetAreasSelectList(); return(View(model)); }
public ActionResult Create(WorkorderCreateViewModel viewModel) { if (ModelState.IsValid) { string reporter = string.IsNullOrEmpty(User.Identity.Name) == false ? User.Identity.Name : "Guest"; string supervisorName = null, supervisorEmail = null; string alertRecipientEmails = null; //get department var department = _db.Departments.FirstOrDefault(x => x.Id == viewModel.DepartmentId); //get department supervisor detail by department id var departmentSupervisorEmail = _db.DepartmentSupervisorEmails.FirstOrDefault(x => x.DepartmentId == viewModel.DepartmentId); //get all alert receipients var alertrecipients = _db.AlertRecipients.Where(x => x.AreaId == viewModel.DepartmentAreaId).ToList(); alertRecipientEmails = string.Join(";", alertrecipients.Select(x => x.Emails).Distinct()); if (departmentSupervisorEmail != null) { //supervisorName = departmentSupervisorEmail.SupervisorName; //supervisorEmail = departmentSupervisorEmail.EmailAddress; supervisorName = "David Eaton"; supervisorEmail = "*****@*****.**"; } Workorder workorder = new Workorder() { DepartmentId = viewModel.DepartmentId, Priority = viewModel.Priority, Reporter = reporter, Reported = viewModel.Reported, Details = viewModel.Details, //ConsumerId = viewModel.ConsumerId, //Approver = supervisorName, //Approved = DateTime.Now, PersonServed = viewModel.ResultOfPersonServed ? viewModel.PersonServed : null }; _db.Workorders.Add(workorder); _db.SaveChanges(); TempData["SuccessMessage"] = "Workorder has been created successfully and is awaiting supervisor approval."; //if we don't have supervisor email if (string.IsNullOrEmpty(supervisorEmail) && string.IsNullOrEmpty(alertRecipientEmails)) { //use default email from web.config supervisorEmail = ConfigurationManager.AppSettings["DepartmentSupervisorEmailDefault"]; } //if still supervisor email is null, then don't send email if (string.IsNullOrEmpty(supervisorEmail) == false && string.IsNullOrEmpty(alertRecipientEmails) == false) { var message = "New Workorder # " + workorder.Id + " created for " + department.DepartmentFullName; message += "<br />Priority : " + workorder.Priority.ToString() + "<br />"; message += "Detail : " + workorder.Details + "<br/>"; Email.SendEmail(supervisorEmail, "New Workorder for " + department.DepartmentFullName, message, message, null, null, alertRecipientEmails); } return(RedirectToAction("Index")); } //fill dropdowns data viewModel.Departments = GetDepartmentsSelectList(viewModel.DepartmentId); viewModel.Consumers = GetConsumersSelectList(viewModel.ConsumerId); viewModel.Priorities = GetPrioritiesSelectList(viewModel.Priority); return(View(viewModel)); }