public void SaveRecord(ChargeViewModel chargeViewModel) { tbl_GLChargeMaster_BasicInfo tblCharge = new tbl_GLChargeMaster_BasicInfo(); tbl_GLChargeMaster_Details tblChargeDetails = new tbl_GLChargeMaster_Details(); tblCharge.ChargeName = chargeViewModel.ChargeName; tblCharge.ReferenceDate = chargeViewModel.ReferenceDate; tblCharge.Status = chargeViewModel.Status; tblCharge.BranchID = Convert.ToInt32(HttpContext.Current.Session["BranchId"]); tblCharge.CMPId = Convert.ToInt32(HttpContext.Current.Session["CompanyId"]); tblCharge.FYID = Convert.ToInt32(HttpContext.Current.Session["FinancialYearId"]); tblCharge.CreatedDate = DateTime.Now; tblCharge.CreatedBy = chargeViewModel.CreatedBy; tblCharge.UpdatedDate = DateTime.Now; tblCharge.UpdatedBy = chargeViewModel.UpdatedBy; _context.tbl_GLChargeMaster_BasicInfo.Add(tblCharge); _context.SaveChanges(); int CID = _context.tbl_GLChargeMaster_BasicInfo.Max(x => x.CID); //save the data in Charge Details table foreach (var p in chargeViewModel.chargeDetailsCollection) { var chargetrn = new tbl_GLChargeMaster_Details { CID = CID, LoanAmtFrom = p.LoanAmountGreaterthan, LoanAmtTo = p.LoanAmountLessthan, Charges = p.ChargeAmount, ChargeType = p.ChargeType, }; _context.tbl_GLChargeMaster_Details.Add(chargetrn); _context.SaveChanges(); } }
public void UpdateRecord(ChargeViewModel chargeViewModel) { var chargeObj = _context.tbl_GLChargeMaster_BasicInfo.Where(x => x.CID == chargeViewModel.ID).FirstOrDefault(); //update the data in charge table chargeObj.ChargeName = chargeViewModel.ChargeName; chargeObj.ReferenceDate = chargeViewModel.ReferenceDate; chargeObj.Status = chargeViewModel.Status; chargeObj.UpdatedBy = chargeViewModel.UpdatedBy; chargeObj.UpdatedDate = DateTime.Now; chargeObj.BranchID = Convert.ToInt32(HttpContext.Current.Session["BranchId"]); chargeObj.CMPId = Convert.ToInt32(HttpContext.Current.Session["CompanyId"]); chargeObj.FYID = Convert.ToInt32(HttpContext.Current.Session["FinancialYearId"]); List <tbl_GLChargeMaster_Details> NewChargeDetailsList = new List <tbl_GLChargeMaster_Details>(); //update the data in Charge Details table foreach (var p in chargeViewModel.chargeDetailsCollection) { var FindChargebject = _context.tbl_GLChargeMaster_Details.Where(x => x.ID == p.ID && x.CID == chargeViewModel.ID).FirstOrDefault(); if (FindChargebject == null) { var chargetrnnew = new tbl_GLChargeMaster_Details { CID = chargeViewModel.ID, LoanAmtFrom = p.LoanAmountGreaterthan, LoanAmtTo = p.LoanAmountLessthan, Charges = p.ChargeAmount, ChargeType = p.ChargeType, }; _context.tbl_GLChargeMaster_Details.Add(chargetrnnew); } else { FindChargebject.LoanAmtFrom = p.LoanAmountGreaterthan; FindChargebject.LoanAmtTo = p.LoanAmountLessthan; FindChargebject.Charges = p.ChargeAmount; FindChargebject.ChargeType = p.ChargeType; } 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 = _context.tbl_GLChargeMaster_Details.Where(x => x.CID == chargeViewModel.ID).ToList(); if (chargetrnobjlist != null) { foreach (tbl_GLChargeMaster_Details item in chargetrnobjlist) { if (NewChargeDetailsList.Contains(item)) { continue; } else { _context.tbl_GLChargeMaster_Details.Remove(item); } } _context.SaveChanges(); } #endregion }