Ejemplo n.º 1
0
        public IActionResult Edit([FromForm] ContractWBSViewModel contractWBS)
        {
            try
            {
                contractWBS.UpdatedOn = CurrentDateTimeHelper.GetCurrentDateTime();
                contractWBS.UpdatedBy = UserHelper.CurrentUserGuid(HttpContext);
                contractWBS.IsActive  = true;
                contractWBS.IsDeleted = false;
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
                //var wbsEntity = _mapper.Map<ContractWBS>(contractWBS);
                //_contractWBSService.UpdateContractWBS(wbsEntity);

                //add file to contract file
                var contractFile = ContractsMapper.MapContractWBSViewModelToContractResourceFile(contractWBS);
                _contractRefactorService.UpdateContractFile(contractFile);
                //end of contract file

                return(Ok(new { status = ResponseStatus.success.ToString(), message = "Successfully Edited !!" }));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(ex.ToString(), ex.Message);
                return(BadRequest(ModelState));
            }
        }
Ejemplo n.º 2
0
        public IActionResult Edit([FromForm] EmployeeBillingRatesViewModel employeeBillingRates)
        {
            try
            {
                employeeBillingRates.UpdatedOn = CurrentDateTimeHelper.GetCurrentDateTime();
                employeeBillingRates.UpdatedBy = UserHelper.CurrentUserGuid(HttpContext);
                employeeBillingRates.IsActive  = true;
                employeeBillingRates.IsDeleted = false;
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                //var employeeBillingRatesEntity = _mapper.Map<EmployeeBillingRates>(employeeBillingRates);
                //_employeeBillingRatesService.UpdateEmployeeBillingRates(employeeBillingRatesEntity);

                //later added
                var file = ContractsMapper.MapEmployeeBillingRatesViewModelToContractFiles(employeeBillingRates);
                _contractRefactorService.UpdateContractFile(file);

                return(Ok(new { status = ResponseStatus.success.ToString(), message = "Successfully Edited !!" }));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(ex.ToString(), ex.Message);
                return(BadRequest(ModelState));
            }
        }
Ejemplo n.º 3
0
        public IActionResult Get(Guid id)
        {
            try
            {
                //var model = _employeeBillingRatesService.GetEmployeeBillingRatesById(id);

                var file = _contractRefactorService.GetFileByResourceGuid(id, Core.Entities.EnumGlobal.ResourceType.EmployeeBillingRates.ToString());

                if (file != null)
                {
                    var model              = ContractsMapper.MapContractFilesToEmployeeBillingRatesViewModel(file);
                    var filePath           = $"{documentRoot}/{model.FilePath}";
                    var contractViewModels = CsvValidationHelper.ReadFile(filePath, (Models.ViewModels.EnumGlobal.UploadMethodName)UploadMethodName.EmployeeBillingRate);

                    var data = contractViewModels.Select(x => new
                    {
                        ContractGuid = id,
                        LaborCode    = x.LaborCode,
                        EmployeeName = x.EmployeeName,
                        Rate         = x.Rate,
                        StartDate    = x.StartDate,
                        EndDate      = x.EndDate
                    }).ToList();
                    return(Json(new { data = data }));
                }
                return(Json(new { data = new List <dynamic>() }));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(ex.ToString(), ex.Message);
                return(BadRequest(ModelState));
            }
        }
Ejemplo n.º 4
0
        public IActionResult Edit(Guid id)
        {
            try
            {
                var jobRequestEntity = _jobRequestService.GetDetailsForJobRequestById(id);
                var model            = ContractsMapper.MapJobRequestToViewModel(jobRequestEntity);

                if (model.Parent_ContractGuid == null)
                {
                    model.BaseUrl = "Contract";
                }
                else
                {
                    model.BaseUrl = "Project";
                    var parentContractDetails = _contractRefactorService.GetBasicContractById(model.Parent_ContractGuid ?? Guid.Empty);
                    var parentContractNumber  = parentContractDetails == null ? "N/A" : parentContractDetails.ContractNumber;
                    model.BasicContractInfo.ParentProjectNumber = parentContractDetails == null ? "N/A" : parentContractDetails.ProjectNumber;
                }
                var companyListEntity = _jobRequestService.GetCompanyData();
                var companyList       = _mapper.Map <ICollection <Models.ViewModels.KeyValuePairModel <Guid, string> > >(companyListEntity);
                var companies         = model.Companies;

                var questionaire = _mapper.Map <Models.ViewModels.Contract.ContractQuestionaireViewModel>(jobRequestEntity.Contracts.ContractQuestionaire);
                model.ContractQuestionaire = questionaire;
                List <string> companySelected = new List <string>();
                if (!string.IsNullOrEmpty(companies))
                {
                    var listCompany = companies.Split(",");
                    foreach (var name in listCompany)
                    {
                        companySelected.Add(name);
                    }
                }

                model.CompanySelected = companySelected;
                model.companyList     = companyList;
                model.radioIsIntercompanyWorkOrder = KeyValueHelper.GetYesNo();
                model.ContractGuid         = id;
                model.JobRequestGuid       = id;
                model.farContractViewModel = GetFarContract(model.ContractGuid);
                return(View(model));
            }
            catch (Exception e)
            {
                ModelState.AddModelError("", e.Message);
                return(BadRequest(ModelState));
            }
        }
Ejemplo n.º 5
0
 public ActionResult Edit(Guid id)
 {
     try
     {
         var file  = _contractRefactorService.GetFileByResourceGuid(id, Core.Entities.EnumGlobal.ResourceType.EmployeeBillingRates.ToString());
         var model = ContractsMapper.MapContractFilesToEmployeeBillingRatesViewModel(file);
         var user  = _userService.GetUserByUserGuid(file.UpdatedBy);
         model.UpdatedByDisplayname = user.DisplayName;
         return(PartialView(model));
     }
     catch (Exception ex)
     {
         ModelState.AddModelError(ex.ToString(), ex.Message);
         return(BadRequest(ModelState));
     }
 }
        public IActionResult Edit([FromForm] LaborCategoryRatesViewModel laborCategoryRates)
        {
            try
            {
                laborCategoryRates.UpdatedOn = CurrentDateTimeHelper.GetCurrentDateTime();
                laborCategoryRates.UpdatedBy = UserHelper.CurrentUserGuid(HttpContext);
                laborCategoryRates.IsActive  = true;
                laborCategoryRates.IsDeleted = false;
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var contractFile = ContractsMapper.MapSubcontractorBillingRatesViewModelToContractFiles(laborCategoryRates);
                _contractRefactorService.UpdateContractFile(contractFile);

                return(Ok(new { status = ResponseStatus.success.ToString(), message = "Successfully Edited !!" }));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(ex.ToString(), ex.Message);
                return(BadRequest(ModelState));
            }
        }
Ejemplo n.º 7
0
        public IActionResult Add(Guid id)
        {
            try
            {
                var jobRequestEntity  = _jobRequestService.GetDetailsForJobRequestById(id);
                var model             = ContractsMapper.MapJobRequestToViewModel(jobRequestEntity);
                var companyListEntity = _jobRequestService.GetCompanyData();
                var companyList       = _mapper.Map <ICollection <Models.ViewModels.KeyValuePairModel <Guid, string> > >(companyListEntity);
                if (model.Parent_ContractGuid == null)
                {
                    model.BaseUrl = "Contract";
                }
                else
                {
                    model.BaseUrl = "Project";
                    var parentContractDetails = _contractRefactorService.GetBasicContractById(model.Parent_ContractGuid ?? Guid.Empty);
                    var parentContractNumber  = parentContractDetails == null ? "N/A" : parentContractDetails.ContractNumber;
                    model.BasicContractInfo.ParentProjectNumber = parentContractDetails == null ? "N/A" : parentContractDetails.ProjectNumber;
                }
                model.companyList = companyList;
                model.Status      = (int)JobRequestStatus.ContractRepresentative;
                model.radioIsIntercompanyWorkOrder = KeyValueHelper.GetYesNo();
                model.ContractGuid = id;

                var questionaire = _mapper.Map <Models.ViewModels.Contract.ContractQuestionaireViewModel>(jobRequestEntity.Contracts.ContractQuestionaire);
                model.ContractQuestionaire = questionaire;
                model.farContractViewModel = GetFarContract(model.ContractGuid);
                model.IsNew = true;
                return(View(model));
            }
            catch (Exception e)
            {
                ModelState.AddModelError(e.ToString(), e.Message);
                return(BadRequest(ModelState));
            }
        }
Ejemplo n.º 8
0
        public IActionResult Add([FromForm] EmployeeBillingRatesViewModel employeeBillingRates)
        {
            try
            {
                if (employeeBillingRates.FileToUpload == null)
                {
                    ModelState.AddModelError("", "Please insert the file.");
                    return(BadRequest(ModelState));
                }

                var isfileValid = _fileService.UploadFileTypeCheck(employeeBillingRates.FileToUpload);
                employeeBillingRates.CreatedOn = CurrentDateTimeHelper.GetCurrentDateTime();
                employeeBillingRates.UpdatedOn = CurrentDateTimeHelper.GetCurrentDateTime();
                employeeBillingRates.CreatedBy = UserHelper.CurrentUserGuid(HttpContext);
                employeeBillingRates.UpdatedBy = UserHelper.CurrentUserGuid(HttpContext);
                employeeBillingRates.IsActive  = true;
                employeeBillingRates.IsDeleted = false;
                var contractNumber       = _contractRefactorService.GetContractNumberById(employeeBillingRates.ContractGuid);
                var contractResourceFile = _contractResourceFileService.GetFilePathByResourceIdAndKeys(Core.Entities.EnumGlobal.ResourceType.EmployeeBillingRates.ToString(), employeeBillingRates.ContractGuid);
                if (contractResourceFile != null && (employeeBillingRates.FileToUpload != null || employeeBillingRates.FileToUpload.Length != 0))
                {
                    var filename = "";
                    if (!isfileValid)
                    {
                        var directoryPath = Path.GetDirectoryName(contractResourceFile.FilePath);
                        filename = _fileService.FilePost($@"{documentRoot}/{contractResourceFile.FilePath}/", employeeBillingRates.FileToUpload);
                        employeeBillingRates.IsCsv = false;
                        filePath = $"{contractResourceFile.FilePath}/{filename}";
                    }
                    else
                    {
                        var files        = _contractRefactorService.GetFileByResourceGuid(employeeBillingRates.ContractGuid, Core.Entities.EnumGlobal.ResourceType.EmployeeBillingRates.ToString());
                        var relativePath = $@"{documentRoot}/{contractResourceFile.FilePath}/";
                        var previousFile = string.Empty;
                        if (files != null)
                        {
                            previousFile = files.UploadFileName;
                        }
                        filename = _fileService.MoveFile(relativePath, previousFile, employeeBillingRates.FileToUpload);
                        employeeBillingRates.IsCsv = true;
                        var fullPath = $@"{relativePath}/{filename}";
                        Helpers.CsvValidationHelper.ChecksValidHeaderAndReadTheFile(fullPath, relativePath, previousFile, (Models.ViewModels.EnumGlobal.UploadMethodName)UploadMethodName.EmployeeBillingRate);
                        filePath = $"{contractResourceFile.FilePath}/{filename}";
                    }
                    employeeBillingRates.FilePath       = filePath;
                    employeeBillingRates.UploadFileName = filename;
                }
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var contractFile = ContractsMapper.MapEmployeeBillingRatesViewModelToContractFiles(employeeBillingRates);
                contractFile.ResourceType = Core.Entities.EnumGlobal.ResourceType.Contract.ToString();
                if (contractResourceFile != null)
                {
                    contractFile.ParentId = contractResourceFile.ContractResourceFileGuid;
                }
                _contractRefactorService.CheckAndInsertContractFile(contractFile);

                //audit log..
                var    contractEntity           = _contractRefactorService.GetContractEntityByContractId(contractFile.ResourceGuid);
                var    additionalInformation    = string.Format("{0} {1} the {2}", User.FindFirst("fullName").Value, CrudTypeForAdditionalLogMessage.Uploaded.ToString(), "Employee Billing Rates File");
                string additionalInformationURl = string.Empty;
                string resource = string.Empty;

                if (contractEntity.ParentContractGuid == Guid.Empty || contractEntity.ParentContractGuid == null)
                {
                    additionalInformationURl = _configuration.GetSection("SiteUrl").Value + ("/Contract/Details/" + contractEntity.ContractGuid);
                    resource = string.Format("{0} </br> Contract No:{1} </br> Project No:{2}  </br> File Name:{3}", "Employee Billing Rates", contractEntity.ContractNumber, contractEntity.ProjectNumber, employeeBillingRates.UploadFileName);
                }
                else
                {
                    additionalInformationURl = _configuration.GetSection("SiteUrl").Value + ("/Project/Details/" + contractEntity.ContractGuid);
                    resource = string.Format("{0} </br> TaskOrder No:{1} </br> Project No:{2}  </br> File Name:{3}", "Employee Billing Rates", contractEntity.ContractNumber, contractEntity.ProjectNumber, employeeBillingRates.UploadFileName);
                }

                AuditLogHandler.InfoLog(_logger, User.FindFirst("fullName").Value, UserHelper.CurrentUserGuid(HttpContext), contractFile, resource, contractFile.ContractResourceFileGuid, UserHelper.GetHostedIp(HttpContext), "File Uploaded", Guid.Empty, "Successful", "", additionalInformation, additionalInformationURl);
                //end of audit log.

                return(Ok(new { status = ResponseStatus.success.ToString(), message = "Successfully Added !!" }));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(ex.ToString(), ex.Message);
                return(BadRequest(ModelState));
            }
        }
Ejemplo n.º 9
0
        private bool SendNotification(Guid resourceId, Guid contractGuid, int currentStage)
        {
            try
            {
                var notificationModel            = new GenericNotificationViewModel();
                var notificationTemplatesDetails = new NotificationTemplatesDetail();
                var userList     = new List <User>();
                var receiverInfo = new User();
                var receiverGuid = Guid.Empty;

                notificationModel.ResourceId              = resourceId;
                notificationModel.RedirectUrl             = _configuration.GetSection("SiteUrl").Value + ("/JobRequest/Detail/" + contractGuid);
                notificationModel.NotificationTemplateKey = Infrastructure.Helpers.FormatHelper.ConcatResourceTypeAndAction
                                                                (EnumGlobal.ResourceType.JobRequest.ToString(), EnumGlobal.CrudType.Notify.ToString());
                notificationModel.CurrentDate     = CurrentDateTimeHelper.GetCurrentDateTime();
                notificationModel.CurrentUserGuid = UserHelper.CurrentUserGuid(HttpContext);
                notificationModel.SendEmail       = true;

                var jobRequestEntity = _jobRequestService.GetDetailsForJobRequestById(contractGuid);
                var model            = ContractsMapper.MapJobRequestToViewModel(jobRequestEntity);

                var keyPersonnels = _contractRefactorService.GetKeyPersonnelByContractGuid(contractGuid);
                if (keyPersonnels?.Any() == true)
                {
                    switch (currentStage)
                    {
                    case (int)JobRequestStatus.ProjectControl:
                        var projectControls = keyPersonnels.FirstOrDefault(x => x.UserRole == ContractUserRole._projectControls);
                        if (projectControls != null)
                        {
                            receiverGuid = projectControls.UserGuid;
                        }
                        break;

                    case (int)JobRequestStatus.ProjectManager:
                        var projectManager = keyPersonnels.FirstOrDefault(x => x.UserRole == ContractUserRole._projectManager);
                        if (projectManager != null)
                        {
                            receiverGuid = projectManager.UserGuid;
                        }
                        break;

                    case (int)JobRequestStatus.Accounting:
                        var accountRepresentative = keyPersonnels.FirstOrDefault(x => x.UserRole == ContractUserRole._accountRepresentative);
                        if (accountRepresentative != null)
                        {
                            receiverGuid = accountRepresentative.UserGuid;
                        }
                        break;
                    }

                    receiverInfo = _userService.GetUserByUserGuid(receiverGuid);
                    if (receiverInfo != null)
                    {
                        userList.Add(receiverInfo);
                        notificationModel.IndividualRecipients = userList;
                    }

                    var keyList = "<ul>";
                    foreach (var person in keyPersonnels)
                    {
                        keyList += "<li>" + person.User.DisplayName + " (" + person.UserRole + ")" + "</li>";
                    }
                    keyList += "</li>";
                    StringBuilder additionalUser = new StringBuilder(keyList);

                    notificationTemplatesDetails.ContractNumber   = model.BasicContractInfo.ContractNumber;
                    notificationTemplatesDetails.AwardingAgency   = model.CustomerInformation.AwardingAgencyOfficeName;
                    notificationTemplatesDetails.FundingAgency    = model.CustomerInformation.FundingAgencyOfficeName;
                    notificationTemplatesDetails.ProjectNumber    = model.BasicContractInfo.ProjectNumber;
                    notificationTemplatesDetails.ContractTitle    = model.BasicContractInfo.ContractTitle;
                    notificationTemplatesDetails.Description      = model.BasicContractInfo.Description;
                    notificationTemplatesDetails.AdditionalUser   = additionalUser.ToString();
                    notificationTemplatesDetails.Status           = "";
                    notificationModel.NotificationTemplatesDetail = notificationTemplatesDetails;
                    _genericNotificationService.AddNotificationMessage(notificationModel);
                    return(true);
                }
                return(false);
            }
            catch (Exception ex)
            {
                var userGuid = UserHelper.CurrentUserGuid(HttpContext);
                EventLogHelper.Error(_eventLogger, new EventLog
                {
                    EventGuid   = Guid.NewGuid(),
                    Action      = "Index",
                    Application = "ESS",
                    EventDate   = DateTime.UtcNow,
                    Message     = ex.Message,
                    Resource    = ResourceType.Contract.ToString(),
                    StackTrace  = ex.StackTrace,
                    UserGuid    = userGuid
                });
                return(false);
            }
        }
Ejemplo n.º 10
0
        public void SendEmailToRespectivePersonnel(int status, Guid contractGuid)
        {
            var jobRequestEntity = _jobRequestService.GetDetailsForJobRequestById(contractGuid);
            var model            = ContractsMapper.MapJobRequestToViewModel(jobRequestEntity);
            var keyPersonnel     = _contractRefactorService.GetKeyPersonnelByContractGuid(contractGuid);

            var param = new { id = contractGuid };
            var link  = RouteUrlHelper.GetAbsoluteAction(_urlHelper, "JobRequest", "Detail", param);
            //var urlLink = new UrlHelper(ControllerContext.RequestContext);
            JobRequestEmailModel emailModel = new JobRequestEmailModel();

            emailModel.ContractNumber = model.BasicContractInfo.ContractNumber;
            emailModel.ProjectNumber  = model.BasicContractInfo.ProjectNumber;
            emailModel.AwardingAgency = model.CustomerInformation.AwardingAgencyOfficeName;
            emailModel.FundingAgency  = model.CustomerInformation.FundingAgencyOfficeName;
            emailModel.ClickableUrl   = link;
            emailModel.Status         = "In Progress";
            string emailTo       = "*****@*****.**";
            string recipientName = string.Empty;
            string subject       = string.Empty;

            Guid notifyTo = UserHelper.CurrentUserGuid(HttpContext);

            var notificationTemplate = _notificationTemplatesService.GetByKey("jobrequest-notify");
            var content  = string.Empty;
            var template = string.Empty;

            if (notificationTemplate != null)
            {
                template = notificationTemplate.Message;
            }



            //for filtering the representative to send email
            switch (status)
            {
            case (int)JobRequestStatus.ContractRepresentative:
                var controlRepresentative = model.KeyPersonnel.ProjectControls;
                if (controlRepresentative != null)
                {
                    notifyTo = controlRepresentative;
                }
                var projectUser = _userService.GetUserByUserGuid(notifyTo);
                if (projectUser != null)
                {
                    //emailTo = contractUser.WorkEmail;
                    recipientName            = projectUser.DisplayName;
                    emailModel.ReceipentName = recipientName;
                    subject = "A new Job Request Form has been submitted for contract: " + emailModel.ContractNumber;
                }
                var conManager = _userService.GetUserByUserGuid(model.KeyPersonnel.ProjectManager);
                emailModel.NotifiedTo = conManager.Firstname + " " + conManager.Lastname;
                var submittedBy = _userService.GetUserByUserGuid(model.KeyPersonnel.ContractRepresentative);
                emailModel.SubmittedBy = submittedBy.Firstname + " " + submittedBy.Lastname;
                break;

            case (int)JobRequestStatus.ProjectControl:
                var projectRepresentative = model.KeyPersonnel.ProjectManager;
                if (projectRepresentative != null)
                {
                    notifyTo = projectRepresentative;
                }
                var managerUser = _userService.GetUserByUserGuid(notifyTo);
                if (managerUser != null)
                {
                    //emailTo = controlUser.WorkEmail;
                    recipientName            = managerUser.DisplayName;
                    emailModel.ReceipentName = recipientName;
                    subject = "A new Job Request Form has been submitted for contract: " + emailModel.ContractNumber;
                }
                var manager = _userService.GetUserByUserGuid(model.KeyPersonnel.ProjectManager);
                emailModel.NotifiedTo = manager.Firstname + " " + manager.Lastname;

                var submittedByProject = _userService.GetUserByUserGuid(model.KeyPersonnel.ProjectControls);
                emailModel.SubmittedBy = submittedByProject.Firstname + " " + submittedByProject.Lastname;
                break;

            case (int)JobRequestStatus.ProjectManager:
                var managerRepresentative = model.KeyPersonnel.AccountingRepresentative;
                if (managerRepresentative != null)
                {
                    notifyTo = managerRepresentative;
                }
                var accountManager = _userService.GetUserByUserGuid(notifyTo);
                if (accountManager != null)
                {
                    //emailTo = projectManager.WorkEmail;
                    recipientName            = accountManager.DisplayName;
                    emailModel.ReceipentName = recipientName;
                    subject = "A new Job Request Form has been submitted for contract: " + emailModel.ContractNumber;
                }
                var submittedByManager = _userService.GetUserByUserGuid(model.KeyPersonnel.ProjectManager);
                emailModel.SubmittedBy = submittedByManager.Firstname + " " + submittedByManager.Lastname;
                break;

            case (int)JobRequestStatus.Accounting:
                var accountUser = _userService.GetUserByUserGuid(notifyTo);
                if (accountUser != null)
                {
                    //emailTo = accountUser.WorkEmail;
                    recipientName            = accountUser.DisplayName;
                    emailModel.ReceipentName = recipientName;
                    subject = "Job Request has been set to done contract: " + emailModel.ContractNumber;
                }
                var submittedByAccount = _userService.GetUserByUserGuid(model.KeyPersonnel.AccountingRepresentative);
                emailModel.SubmittedBy = submittedByAccount.Firstname + " " + submittedByAccount.Lastname;
                emailModel.Status      = "Done";
                break;

            default:
                break;
            }

            content = EmailHelper.GetContentForJobRequestNotify(template, keyPersonnel, emailModel);
            _emailSender.SendEmailAsync(emailTo, recipientName, subject, content);
        }
Ejemplo n.º 11
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.º 12
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));
            }
        }