public async Task <ActionResult> MyLOACreate([Bind(Exclude = "LookupLoaStatus,LoaCode")] LoaViewModel lvm, string action) { try { if (!ModelState.IsValid) { lvm.TimeOfDayList = GetDropDownList("LoaTimeOfDay", null); lvm.TypeOfLeaveList = GetDropDownList("LoaTypeOfLeave", null); return(View(lvm)); } //else if(tsvm.TotalHours <= 0 || tsvm.TotalHours == null) //{ // ModelState.AddModelError("error", "Total Hours cannot be less than or equal to 0"); // tsvm.AbsenceTypeList = GetDropDownList("Absence", null); // return View(tsvm); //} LOA loa = new LOA(); LOAService loaService = new LOAService(); loa = Mapper.Map <LoaViewModel, LOA>(lvm); //loa.UserId = lvm.UserId; //loa.StartDate = lvm.StartDate; //loa.EndDate = lvm.EndDate; loa.AspNetUser = null; UserService userService = new UserService(); var user = userService.GetUserWithId(lvm.UserId); var repoMan = user.AspNetUser1; loa.IsActive = true; loa.IsDeleted = false; loa.CreatedUserId = User.Identity.GetUserId(); loa.CreatedDate = DateTime.Now; loa.ModifiedUserId = User.Identity.GetUserId(); loa.ModifiedDate = DateTime.Now; loa.LookupLoaStatus = loaService.GetLookupIdForCodeName("Saved", "LoaStatus").LookupCodeId; loaService.CreateLoa(loa); if (string.Equals(action.ToString(), "Submit")) { if (repoMan != null) { ChangeStatusOfLOA(loa.LoaId, "Pending"); await SendEmailLOASubmitted(loa.LoaId); TempData["status"] = "LOA " + loa.LoaCode + " successfully saved and submitted to your reporting manager"; } else { TempData["status"] = "Your LOA is saved but not submitted. You do not have a reporting manager assigned. Please contact your admin."; } } return(RedirectToAction("MyLOAList")); } catch (Exception ex) { LOAService loaService = new LOAService(); lvm.TimeOfDayList = GetDropDownList("LoaTimeOfDay", null); lvm.TypeOfLeaveList = GetDropDownList("LoaTypeOfLeave", null); TempData["error"] = "Something went wrong while saving LOA"; lvm.LookupOtherTimeOfDay = loaService.GetLookupIdForCodeName("Other", "LoaTimeOfDay").LookupCodeId; lvm.LookupOtherTypeOfLeave = loaService.GetLookupIdForCodeName("Other", "LoaTypeOfLeave").LookupCodeId; return(RedirectToAction("MyLOAList")); } }