public ActionResult Edit(JobRequestViewModel jobRequestViewModel) { try { List <string> selectionOfCompanies = new List <string>(); JobRequest jobRequest = new JobRequest(); jobRequest = ContractsMapper.MapViewModelToJobRequest(jobRequestViewModel); jobRequest.UpdatedOn = DateTime.Now; jobRequest.UpdatedBy = UserHelper.CurrentUserGuid(HttpContext); jobRequest.IsActive = true; jobRequest.IsDeleted = false; if (jobRequestViewModel.CompanySelected != null && jobRequestViewModel.CompanySelected.Count > 0) { foreach (var name in jobRequestViewModel.CompanySelected) { selectionOfCompanies.Add(name); } jobRequest.Companies = string.Join(",", selectionOfCompanies); } var loggedUser = UserHelper.GetLoggedUser(HttpContext); _jobRequestService.Edit(jobRequest); var getPreviousStatus = _jobRequestService.GetCurrentStatusByGuid(jobRequestViewModel.JobRequestGuid); if (getPreviousStatus > jobRequestViewModel.Status) { SendNotification(jobRequestViewModel.JobRequestGuid, jobRequestViewModel.ContractGuid, jobRequestViewModel.Status); } //audit log.. var contractEntity = _contractRefactorService.GetContractEntityByContractId(jobRequest.ContractGuid); var additionalInformation = string.Format("{0} {1} the {2}", User.FindFirst("fullName").Value, CrudTypeForAdditionalLogMessage.Edited.ToString(), ResourceType.JobRequest.ToString()); var additionalInformationURl = _configuration.GetSection("SiteUrl").Value + ("/jobRequest/Detail/" + jobRequestViewModel.ContractGuid); var resource = string.Format("{0} </br> Project No :{1} Title:{2}", "Job Request", contractEntity.ProjectNumber, contractEntity.ContractTitle); AuditLogHandler.InfoLog(_logger, User.FindFirst("fullName").Value, UserHelper.CurrentUserGuid(HttpContext), jobRequest.BasicContractInfo, resource, jobRequest.JobRequestGuid, UserHelper.GetHostedIp(HttpContext), "Job Request Edited", Guid.Empty, "Successful", "", additionalInformationURl, additionalInformationURl); //end of log.. //remove president and regional manager from the list if (jobRequest.Contracts.ContractUserRole != null) { var president = jobRequest.Contracts.ContractUserRole.Where(x => x.UserRole == Contracts._companyPresident).FirstOrDefault(); var regional = jobRequest.Contracts.ContractUserRole.Where(x => x.UserRole == Contracts._regionalManager).FirstOrDefault(); jobRequest.Contracts.ContractUserRole.ForEach(x => x.ContractGuid = jobRequest.Contracts.ContractGuid); jobRequest.Contracts.ContractUserRole.Remove(president); jobRequest.Contracts.ContractUserRole.Remove(regional); _contractRefactorService.UpdateContractUsers(jobRequest.Contracts.ContractUserRole); } _contractRefactorService.UpdateProjectNumberByGuid(jobRequest.Contracts.ContractGuid, jobRequest.Contracts.ProjectNumber); var key = Infrastructure.Helpers.FormatHelper.ConcatResourceTypeAndAction(Core.Entities.EnumGlobal.ResourceType.JobRequest.ToString(), "Notify"); //Core.Entities.EnumGlobal.CrudType.Edit.ToString()); var redirectUrl = string.Format($@"/JobRequest/Detail/{jobRequest.Contracts.ContractGuid}"); var parameter = new { redirectUrl = redirectUrl, key = key, cameFrom = "Contract Management", resourceName = "JobRequest", resourceDisplayName = "JobRequest", resourceId = jobRequest.Contracts.ContractGuid }; return(RedirectToAction("Index", "Notification", parameter)); } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View(jobRequestViewModel)); } }
public ActionResult Add(JobRequestViewModel jobRequestViewModel) { try { List <string> selectionOfCompanies = new List <string>(); JobRequest jobRequest = new JobRequest(); jobRequest = ContractsMapper.MapViewModelToJobRequest(jobRequestViewModel); if (jobRequestViewModel.CompanySelected != null && jobRequestViewModel.CompanySelected.Count > 0) { foreach (var name in jobRequestViewModel.CompanySelected) { selectionOfCompanies.Add(name); } jobRequest.Companies = string.Join(",", selectionOfCompanies); } Guid id = Guid.NewGuid(); jobRequest.JobRequestGuid = id; jobRequest.CreatedOn = DateTime.Now; jobRequest.CreatedBy = UserHelper.CurrentUserGuid(HttpContext); jobRequest.UpdatedOn = DateTime.Now; jobRequest.UpdatedBy = UserHelper.CurrentUserGuid(HttpContext); jobRequest.IsActive = true; jobRequest.IsDeleted = false; jobRequest.Status = (int)JobRequestStatus.ProjectControl; _jobRequestService.Add(jobRequest); SendNotification(jobRequest.JobRequestGuid, jobRequest.ContractGuid, jobRequest.Status); //audit log.. var contractEntity = _contractRefactorService.GetContractEntityByContractId(jobRequest.ContractGuid); var additionalInformation = string.Format("{0} {1} the {2}", User.FindFirst("fullName").Value, CrudTypeForAdditionalLogMessage.Added.ToString(), ResourceType.JobRequest.ToString()); var additionalInformationURl = _configuration.GetSection("SiteUrl").Value + ("/jobRequest/Detail/" + jobRequest.ContractGuid); var resource = string.Format("{0} </br> Project No :{1} Title:{2}", "Job Request", contractEntity.ProjectNumber, contractEntity.ContractTitle); AuditLogHandler.InfoLog(_logger, User.FindFirst("fullName").Value, UserHelper.CurrentUserGuid(HttpContext), jobRequest.BasicContractInfo, resource, jobRequest.JobRequestGuid, UserHelper.GetHostedIp(HttpContext), "Job Request Added", Guid.Empty, "Successful", "", additionalInformationURl, additionalInformationURl); //end of log.. _contractRefactorService.UpdateContractUsers(jobRequest.Contracts.ContractUserRole); _contractRefactorService.UpdateProjectNumberByGuid(jobRequest.Contracts.ContractGuid, jobRequest.Contracts.ProjectNumber); //after updating contract send notification.. var key = Infrastructure.Helpers.FormatHelper.ConcatResourceTypeAndAction(Core.Entities.EnumGlobal.ResourceType.JobRequest.ToString(), "Notify"); //Core.Entities.EnumGlobal.CrudType.Create.ToString()); var redirectUrl = string.Format($@"/JobRequest/Detail/{jobRequest.Contracts.ContractGuid}"); var parameter = new { redirectUrl = redirectUrl, key = key, cameFrom = "Contract Management", resourceName = "Job Request", resourceDisplayName = "Job Request", resourceId = jobRequest.Contracts.ContractGuid }; return(RedirectToAction("Index", "Notification", parameter)); //SendEmailToRespectivePersonnel(jobRequest.Status, jobRequest.Contracts.ContractGuid); //return RedirectToAction("Details", jobRequestViewModel.BaseUrl, new { id = jobRequest.Contracts.ContractGuid }); } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View(jobRequestViewModel)); } }