public bool InsertData(ChargeViewModel chargeViewModel) { bool retVal = false; chargeViewModel.CreatedBy = Convert.ToInt32(Session["UserLoginId"]); chargeViewModel.UpdatedBy = Convert.ToInt32(Session["UserLoginId"]); Mst_Charge tblCharge = new Mst_Charge(); Mst_ChargeDetails tblChargeDetails = new Mst_ChargeDetails(); try { tblCharge.Chg_Name = chargeViewModel.ChargeName; tblCharge.Chg_ReferenceDate = chargeViewModel.ReferenceDate; tblCharge.Chg_Status = chargeViewModel.Status; tblCharge.Chg_RecordCreated = DateTime.Now; tblCharge.Chg_RecordCreatedBy = chargeViewModel.CreatedBy; tblCharge.Chg_RecordUpdated = DateTime.Now; tblCharge.Chg_RecordUpdatedBy = chargeViewModel.UpdatedBy; dd._context.Mst_Charge.Add(tblCharge); dd._context.SaveChanges(); int PID = dd._context.Mst_Charge.Max(x => x.Chg_Id); //save the data in Charge Details table foreach (var p in chargeViewModel.chargeDetailsCollection) { var chargetrn = new Mst_ChargeDetails { Chgd_ChgRefId = PID, Chgd_LoanAmountGreater = p.LoanAmountGreaterthan, Chgd_LoanAmountLess = p.LoanAmountLessthan, Chgd_ChargesAmt = p.ChargeAmount, Chgd_ChargeType = p.ChargeType, Chg_RecordCreatedBy = Convert.ToInt32(Session["UserLoginId"]), Chg_RecordCreated = DateTime.Now, Chg_RecordUpdatedBy = Convert.ToInt32(Session["UserLoginId"]), Chg_RecordUpdated = DateTime.Now, }; dd._context.Mst_ChargeDetails.Add(chargetrn); dd._context.SaveChanges(); } retVal = true; } catch (Exception ex) { throw ex; } return(retVal); }
public bool UpdateData(ChargeViewModel chargeViewModel) { bool retVal = false; try { var chargeObj = dd._context.Mst_Charge.Where(x => x.Chg_Id == chargeViewModel.ID).FirstOrDefault(); //update the data in charge table chargeObj.Chg_Name = chargeViewModel.ChargeName; chargeObj.Chg_ReferenceDate = chargeViewModel.ReferenceDate; chargeObj.Chg_Status = chargeViewModel.Status; chargeObj.Chg_RecordUpdatedBy = Convert.ToInt32(Session["UserLoginId"]); chargeObj.Chg_RecordUpdated = DateTime.Now; List <Mst_ChargeDetails> NewChargeDetailsList = new List <Mst_ChargeDetails>(); //update the data in Charge Details table foreach (var p in chargeViewModel.chargeDetailsCollection) { var FindChargebject = dd._context.Mst_ChargeDetails.Where(x => x.Chgd_Id == p.ID && x.Chgd_ChgRefId == chargeViewModel.ID).FirstOrDefault(); if (FindChargebject == null) { var chargetrnnew = new Mst_ChargeDetails { Chgd_ChgRefId = chargeViewModel.ID, Chgd_LoanAmountGreater = p.LoanAmountGreaterthan, Chgd_LoanAmountLess = p.LoanAmountLessthan, Chgd_ChargesAmt = p.ChargeAmount, Chgd_ChargeType = p.ChargeType, Chg_RecordCreatedBy = Convert.ToInt32(Session["UserLoginId"]), Chg_RecordCreated = DateTime.Now, Chg_RecordUpdatedBy = Convert.ToInt32(Session["UserLoginId"]), Chg_RecordUpdated = DateTime.Now }; dd._context.Mst_ChargeDetails.Add(chargetrnnew); } else { FindChargebject.Chgd_LoanAmountGreater = p.LoanAmountGreaterthan; FindChargebject.Chgd_LoanAmountLess = p.LoanAmountLessthan; FindChargebject.Chgd_ChargesAmt = p.ChargeAmount; FindChargebject.Chgd_ChargeType = p.ChargeType; FindChargebject.Chg_RecordUpdatedBy = Convert.ToInt32(Session["UserLoginId"]); FindChargebject.Chg_RecordUpdated = DateTime.Now; } NewChargeDetailsList.Add(FindChargebject); } #region charge details remove //take the loop of table and check from list if found in list then not remove else remove from table itself var chargetrnobjlist = dd._context.Mst_ChargeDetails.Where(x => x.Chgd_ChgRefId == chargeViewModel.ID).ToList(); if (chargetrnobjlist != null) { foreach (Mst_ChargeDetails item in chargetrnobjlist) { if (NewChargeDetailsList.Contains(item)) { continue; } else { dd._context.Mst_ChargeDetails.Remove(item); } } dd._context.SaveChanges(); } #endregion charge trn remove retVal = true; } catch (Exception ex) { throw ex; } return(retVal); }