internal CallContext CalculateCostCentersTotal(int idSAPData, CallContext callContext) { SAPDataCostCenterTotalBL sapDataCostCenterTotalBL = new SAPDataCostCenterTotalBL(); List <Expense> listGroupExpense = LoadExpenseGroupByIdSAPData(idSAPData); List <KeyValue> listKeyValueCostCenter = new KeyValueBL().GetAllKeyValueByKeyTypeIntCode("CostCenter"); List <SAPDataCostCenterTotal> listTotal = new List <SAPDataCostCenterTotal>(); List <SAPDataCostCenterTotal> listSAPDataCostCenterTotal_IDS = this.dbContext.SAPDataCostCenterTotals.Where(s => s.idSAPData == idSAPData).Select(s => s).ToList(); sapDataCostCenterTotalBL.EntityDelete <SAPDataCostCenterTotalBL>(listSAPDataCostCenterTotal_IDS, callContext); foreach (KeyValue costCenter in listKeyValueCostCenter) { SAPDataCostCenterTotal total = new SAPDataCostCenterTotal(); total.idCostCenter = costCenter.idKeyValue; total.idSAPData = idSAPData; total.Total_MH = listGroupExpense.Where(s => s.CostCenter.idKeyValue == costCenter.idKeyValue).Sum(s => s.ExpenseValue_MH); listTotal.Add(total); } callContext = sapDataCostCenterTotalBL.EntitySave <SAPDataCostCenterTotal>(listTotal, callContext); return(callContext); }
public CallContext SAPDataDelete(List <int> listSelectedIDs, CallContext resultContext) { try { resultContext.ResultCode = ETEMEnums.ResultEnum.Error; List <SAPData> listSAPDatas = new List <SAPData>(); List <SAPDataExpense> listSAPDataExpenses = new List <SAPDataExpense>(); List <SAPDataQuantity> listSAPDataQuantities = new List <SAPDataQuantity>(); List <SAPDataCostCenterTotal> listSAPDataCostCenterTotals = new List <SAPDataCostCenterTotal>(); listSAPDatas = (from sd in this.dbContext.SAPDatas where listSelectedIDs.Contains(sd.idSAPData) select sd).ToList(); listSAPDataExpenses = (from sde in this.dbContext.SAPDataExpenses where listSelectedIDs.Contains(sde.idSAPData) select sde).ToList(); listSAPDataQuantities = (from sdq in this.dbContext.SAPDataQuantities where listSelectedIDs.Contains(sdq.idSAPData) select sdq).ToList(); listSAPDataCostCenterTotals = (from sdcct in this.dbContext.SAPDataCostCenterTotals where listSelectedIDs.Contains(sdcct.idSAPData) select sdcct).ToList(); CallContext deleteContext = new CallContext(); deleteContext = resultContext; deleteContext = new SAPDataCostCenterTotalBL().EntityDelete <SAPDataCostCenterTotal>(listSAPDataCostCenterTotals, deleteContext); if (deleteContext.ResultCode == ETEMEnums.ResultEnum.Success) { deleteContext = new SAPDataQuantityBL().EntityDelete <SAPDataQuantity>(listSAPDataQuantities, deleteContext); if (deleteContext.ResultCode == ETEMEnums.ResultEnum.Success) { deleteContext = new SAPDataExpensesBL().EntityDelete <SAPDataExpense>(listSAPDataExpenses, deleteContext); if (deleteContext.ResultCode == ETEMEnums.ResultEnum.Success) { deleteContext = base.EntityDelete <SAPData>(listSAPDatas, deleteContext); if (deleteContext.ResultCode == ETEMEnums.ResultEnum.Success) { resultContext.ResultCode = ETEMEnums.ResultEnum.Success; resultContext.Message = "Selected rows `SAP Data by Cost Centers` and their expenses and quantities have been deleted successfully!"; } else { resultContext.ResultCode = ETEMEnums.ResultEnum.Error; resultContext.Message = "Error delete selected rows `SAP Data by Cost Centers` and their expenses and quantities!"; } } else { resultContext.ResultCode = ETEMEnums.ResultEnum.Error; resultContext.Message = "Error delete `Expenses by Cost Centers` for selected rows `SAP Data by Cost Centers`!"; } } else { resultContext.ResultCode = ETEMEnums.ResultEnum.Error; resultContext.Message = "Error delete `Quantities by Cost Centers` for selected rows `SAP Data by Cost Centers`!"; } } else { resultContext.ResultCode = ETEMEnums.ResultEnum.Error; resultContext.Message = "Error delete `Totals by Cost Centers` for selected rows `SAP Data by Cost Centers`!"; } } catch (Exception ex) { resultContext.Message = "Error delete selected rows `SAP Data by Cost Centers` and their expenses and quantities!"; BaseHelper.Log("Error delete entities `SAPData`, IDs - (" + string.Join(",", listSelectedIDs.ToArray()) + ")!"); BaseHelper.Log(ex.Message); BaseHelper.Log(ex.StackTrace); } return(resultContext); }