Пример #1
0
        public IActionResult GetDetailList(Guid id, string searchValue, int pageSize, int skip, int take, string sortField, string dir)
        {
            try
            {
                var model = _revenueRecognitionService.DetailList(id, searchValue, pageSize, skip, take, sortField, dir);
                var count = _revenueRecognitionService.DetailListCount(id, searchValue);

                List <RevenueRecognitionViewModel> result = new List <RevenueRecognitionViewModel>();
                foreach (var item in model)
                {
                    var mapping = _mapper.Map <RevenueRecognitionViewModel>(item);

                    var extensionEntityList = _revenueRecognitionService.GetContractExtension(mapping.RevenueRecognizationGuid);

                    var extensionModelList = _mapper.Map <List <RevenueContractExtensionViewModel> >(extensionEntityList);

                    var obligationEntityList = _revenueRecognitionService.GetPerformanceObligation(mapping.RevenueRecognizationGuid);

                    var obligationModelList = _mapper.Map <List <RevenuePerformanceObligationViewModel> >(obligationEntityList);

                    mapping.ListRevenuePerformanceObligation = obligationModelList;

                    mapping.ListContractExtension = extensionModelList;

                    result.Add(mapping);
                }
                return(Ok(new { result, count = count }));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(BadRequest(ModelState));
            }
        }
        public IActionResult Add([FromBody] ContractModificationViewModel contractModificationModel)
        {
            try
            {
                List <string> filePath = new List <string>();


                string validation = validateModel(contractModificationModel);
                if (validation != YesNoStatus.Yes.ToString())
                {
                    ModelState.AddModelError("", validation);
                    return(BadRequest(ModelState));
                }

                if (ModelState.IsValid)
                {
                    Guid id = Guid.NewGuid();
                    contractModificationModel.ContractModificationGuid = id;
                    contractModificationModel.CreatedOn   = CurrentDateTimeHelper.GetCurrentDateTime();
                    contractModificationModel.CreatedBy   = UserHelper.CurrentUserGuid(HttpContext);
                    contractModificationModel.UpdatedOn   = CurrentDateTimeHelper.GetCurrentDateTime();
                    contractModificationModel.UpdatedBy   = UserHelper.CurrentUserGuid(HttpContext);
                    contractModificationModel.IsActive    = true;
                    contractModificationModel.IsDeleted   = false;
                    contractModificationModel.AwardAmount = contractModificationModel.AwardAmount ?? 0;

                    if (!ModelState.IsValid)
                    {
                        return(BadRequest(ModelState));
                    }
                    var contractId              = _contractService.GetContractIdByProjectId(contractModificationModel.ContractGuid);
                    var parentContractNumber    = _contractService.GetContractNumberById(contractId);
                    var taskOrderContractNumber = _contractService.GetContractNumberById(contractModificationModel.ContractGuid);
                    var taskModificationEntity  = _mapper.Map <ContractModification>(contractModificationModel);
                    taskModificationEntity.IsTaskModification = true;

                    //added task modification through contract modification
                    _contractModificationService.Add(taskModificationEntity);

                    //audit log..
                    var additionalInformation    = string.Format("{0} {1} the {2}", User.FindFirst("fullName").Value, CrudTypeForAdditionalLogMessage.Added.ToString(), "Task Order Mod");
                    var additionalInformationURl = _configuration.GetSection("SiteUrl").Value + ("/Project/Details/" + taskModificationEntity.ContractGuid);
                    var resource = string.Format("{0} </br> Mod No:{1} </br> Mod Title:{2}", "Task Order Mod", taskModificationEntity.ModificationNumber, taskModificationEntity.ModificationTitle);
                    AuditLogHandler.InfoLog(_logger, User.FindFirst("fullName").Value, UserHelper.CurrentUserGuid(HttpContext), taskModificationEntity, resource, taskModificationEntity.ContractModificationGuid, UserHelper.GetHostedIp(HttpContext), "Taskorder Mod Added", Guid.Empty, "Successful", "", additionalInformationURl, additionalInformationURl);
                    //end of log..

                    bool istriggered = false;
                    var  revenueGuid = SaveAndNotifyRevenueRepresentative(taskModificationEntity);
                    if (revenueGuid != Guid.Empty)
                    {
                        istriggered = true;
                    }

                    bool isViewHistory = false;

                    var historyCount = _revenueRecognitionService.DetailListCount(taskModificationEntity.ContractGuid, "");
                    if (historyCount > 0)
                    {
                        isViewHistory = true;
                    }

                    //get file info..
                    var contractResourceFile = _contractResourceFileService.GetFilePathByResourceIdAndKeys(ContractResourceFileKey.ContractModification.ToString(), contractModificationModel.ContractGuid);

                    var jsonObject = new
                    {
                        status       = ResponseStatus.success.ToString(),
                        message      = "Successfully Added !!",
                        revenueGuid  = revenueGuid,
                        viewHistory  = isViewHistory,
                        istriggered  = istriggered,
                        contractGuid = taskModificationEntity.ContractGuid,
                        resourceId   = taskModificationEntity.ContractModificationGuid,
                        uploadPath   = contractResourceFile.FilePath,
                        parentId     = contractResourceFile.ContractResourceFileGuid
                    };

                    return(Ok(jsonObject));
                }
                else
                {
                    return(BadRequest(ModelState));
                }
            }
            catch (ArgumentException ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(BadRequestFormatter.BadRequest(this, ex));
            }
            catch (Exception e)
            {
                ModelState.AddModelError("", e.Message);
                return(BadRequestFormatter.BadRequest(this, e));
            }
        }