private IDocumentEntity GetTemplateFolderTree(Guid masterFolderGuid, string resourceType, Guid resourceId, string pathPrefixName)
        {
            var structureApplied = _documentManagementService.HasDefaultStructure(resourceType, resourceId);
            var contract         = _contractsService.GetContractEntityByContractId(resourceId);

            if (!structureApplied && contract != null)
            {
                var masterData = _folderStructureMasterService.GetActive("ESSWeb", resourceType);
                if (masterData.Count() > 0)
                {
                    var templateFolders = _folderStructureFolderService.GetFolderTree(masterData.SingleOrDefault().FolderStructureMasterGuid);
                    _documentManagementService.ManageDefaultStructure(resourceId.ToString(), contract.ContractNumber, templateFolders, resourceType, resourceId, UserHelper.CurrentUserGuid(HttpContext));
                }
            }
            var folders = _documentManagementService.GetFolderByMasterFolderGuid(masterFolderGuid, resourceType, resourceId);

            return(folders);
        }
Beispiel #2
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));
            }
        }
Beispiel #3
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));
            }
        }