Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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));
            }
        }