private void processData(IEnumerable <BCJ.AnalysisItem> items, DataOP op, BCJ.ProjectDetail projectDetail) { if (items == null) { return; } foreach (var item in items) { item.ProjectDetailId = projectDetail.Id; item.Total = decimal.Multiply(Convert.ToDecimal(item.Quantity), item.Revenue); if (DataOP.AddNew == op) { _analysisItemRepository.Add(item); } else if (DataOP.EDIT == op) { _analysisItemRepository.Update(item); } else if (DataOP.DEL == op) { var requestItem = _analysisItemRepository.GetById(item.Id); _analysisItemRepository.Delete(requestItem); } } }
protected override void TakeFormAction() { if (CurrentActivity().CurrAction.FormDataProcessing.IsSaveRequestData) { if (WorkflowInstance.ProjectDetail != null) { BCJ.ProjectDetail projectDetail = WorkflowInstance.ProjectDetail; bool isUpdate = false; if (RequestHeader.Id > 0) { var project = _projectDetailRepository.GetByRequestHeader(RequestHeader.Id); if (project != null) { project.CapexCategoryId = projectDetail.CapexCategoryId; project.ProjectName = projectDetail.ProjectName; project.Reference = projectDetail.Reference; project.CoporationBranch = projectDetail.CoporationBranch; project.WhatToDo = projectDetail.WhatToDo; project.WhyToDo = projectDetail.WhyToDo; project.TotalAmount = projectDetail.TotalAmount; project.Arrangement = projectDetail.Arrangement; project.EstimateCapex = projectDetail.EstimateCapex; project.IncrementalNetContribution = projectDetail.IncrementalNetContribution; project.IncrementalNetEbita = projectDetail.IncrementalNetEbita; project.PaybackYear = projectDetail.PaybackYear; project.OutlineBenefit = projectDetail.OutlineBenefit; project.Commencement = projectDetail.Commencement; project.Completion = projectDetail.Completion; project.Alternative = projectDetail.Alternative; project.OutlineRisk = projectDetail.OutlineRisk; project.CapitalRequired = projectDetail.CapitalRequired; _projectDetailRepository.Update(project); isUpdate = true; } } if (!isUpdate) { WorkflowInstance.ProjectDetail.RequestHeader = RequestHeader; _projectDetailRepository.Add(projectDetail); _dataField.Add("BCJId", projectDetail.Id); } // Process transaction data for request items processData(WorkflowInstance.AddRequestItems, DataOP.AddNew, projectDetail); processData(WorkflowInstance.EditRequestItems, DataOP.EDIT, projectDetail); processData(WorkflowInstance.DelRequestItems, DataOP.DEL, projectDetail); processData(WorkflowInstance.AddAnalysisItems, DataOP.AddNew, projectDetail); processData(WorkflowInstance.EditAnalysisItems, DataOP.EDIT, projectDetail); processData(WorkflowInstance.DelAnalysisItems, DataOP.DEL, projectDetail); // PO Processing processData(WorkflowInstance.AddPurchaseOrderItems, DataOP.AddNew, RequestHeader.Id); processData(WorkflowInstance.EditPurchaseOrderItems, DataOP.EDIT, RequestHeader.Id); processData(WorkflowInstance.DelPurchaseOrderItems, DataOP.DEL, RequestHeader.Id); //_dataField.Add("CorpBranch", projectDetail.CoporationBranch); } else { throw new Exception("Project detail have no instance"); } } }