//[ValidateAntiForgeryToken] public JsonResult CreateEdit(SchemeViewModel scheme) { scheme.CreatedBy = Convert.ToInt32(Session["UserLoginId"]); scheme.UpdatedBy = Convert.ToInt32(Session["UserLoginId"]); Mst_SchemeMaster tblSchemeMaster = new Mst_SchemeMaster(); try { if (scheme.EditID <= 0) { scheme.SchemeId = dd._context.Mst_SchemeMaster.Any() ? dd._context.Mst_SchemeMaster.Max(m => m.SchemeId) + 1 : 1; var data = dd._context.Mst_SchemeMaster.Where(u => u.SchemeName == scheme.SchemeName && u.Status == 1).Select(x => x.SchemeName).FirstOrDefault(); if (data != null) { ModelState.AddModelError("SchemeName", "Scheme Name Already Exists"); return(Json(scheme)); } tblSchemeMaster.SchemeId = scheme.SchemeId; tblSchemeMaster.RecordCreated = DateTime.Now; tblSchemeMaster.RecordCreatedBy = scheme.CreatedBy; dd._context.Mst_SchemeMaster.Add(tblSchemeMaster); } else { tblSchemeMaster = dd._context.Mst_SchemeMaster.Where(x => x.SchemeId == scheme.SchemeId).FirstOrDefault(); } tblSchemeMaster.Product = scheme.Product; tblSchemeMaster.SchemeName = scheme.SchemeName; tblSchemeMaster.SchemeType = scheme.SchemeType; tblSchemeMaster.Frequency = scheme.Frequency; tblSchemeMaster.MinTenure = scheme.MinTenure; tblSchemeMaster.MaxTenure = scheme.MaxTenure; tblSchemeMaster.MinLoanAmount = scheme.MinLoanAmount; tblSchemeMaster.MaxLoanAmount = scheme.MaxLoanAmount; tblSchemeMaster.MinLTVPerc = scheme.MinLTVPerc; tblSchemeMaster.MaxLTVPerc = scheme.MaxLTVPerc; tblSchemeMaster.MinRoiPerc = scheme.MinROIPerc; tblSchemeMaster.MaxRoiPerc = scheme.MaxROIPerc; tblSchemeMaster.GracePeriod = scheme.GracePeriod; tblSchemeMaster.EffectiveRoiPerc = scheme.EffectiveROIPerc; tblSchemeMaster.LockInPeriod = scheme.LockInPeriod; tblSchemeMaster.ProcessingFeeType = scheme.ProcessingFeeType; tblSchemeMaster.ProcessingCharges = scheme.ProcessingCharges; tblSchemeMaster.Status = scheme.Status; tblSchemeMaster.RecordUpdated = DateTime.Now; tblSchemeMaster.RecordUpdatedBy = scheme.UpdatedBy; dd._context.SaveChanges(); int schemeid = dd._context.Mst_SchemeMaster.Max(x => x.SchemeId); if (scheme.Purity == null) { scheme.Purity = (List <int>)Session["PurityData"]; } var getrecord = dd._context.Mst_SchemePurity.Where(x => x.SchemeId == scheme.SchemeId).ToList(); if (getrecord != null) { foreach (var item1 in getrecord) { dd._context.Mst_SchemePurity.Remove(item1); dd._context.SaveChanges(); } } foreach (var item in scheme.Purity) { Mst_SchemePurity tblSchemePurity = new Mst_SchemePurity(); tblSchemePurity.SchemeId = schemeid; tblSchemePurity.PurityId = item; dd._context.Mst_SchemePurity.Add(tblSchemePurity); } dd._context.SaveChanges(); } catch (Exception ex) { throw new Exception(ex.Message); } return(Json(scheme)); }
public void SaveUpdateRecord(SchemeViewModel scheme) { TSchemeMaster_BasicDetails tblSchemeMaster = new TSchemeMaster_BasicDetails(); try { if (scheme.EditID <= 0) { tblSchemeMaster.Product = scheme.Product; tblSchemeMaster.SchemeName = scheme.SchemeName; tblSchemeMaster.SchemeType = scheme.SchemeType; tblSchemeMaster.CalMethod = scheme.Frequency; tblSchemeMaster.Tenure = scheme.MinTenure; tblSchemeMaster.MaxTenure = scheme.MaxTenure; tblSchemeMaster.MinLoanAmt = scheme.MinLoanAmount; tblSchemeMaster.MaxLoanAmt = scheme.MaxLoanAmount; tblSchemeMaster.Ltv = scheme.MinLTVPerc; tblSchemeMaster.MaxLtv = scheme.MaxLTVPerc; tblSchemeMaster.ROI = scheme.MinROIPerc; tblSchemeMaster.MaxRoi = scheme.MaxROIPerc; tblSchemeMaster.GracePeriod = scheme.GracePeriod; tblSchemeMaster.LockInPeriod = scheme.LockInPeriod; tblSchemeMaster.ProChargeType = scheme.ProcessingFeeType; tblSchemeMaster.ProCharge = scheme.ProcessingCharges; tblSchemeMaster.AmtLmtTo = scheme.MaxProcessingCharge; tblSchemeMaster.isActive = scheme.Status; tblSchemeMaster.UpdatedDate = DateTime.Now; tblSchemeMaster.UpdatedBy = scheme.UpdatedBy; tblSchemeMaster.BranchId = Convert.ToInt32(HttpContext.Current.Session["BranchId"]); tblSchemeMaster.CMPId = Convert.ToInt32(HttpContext.Current.Session["CompanyId"]); tblSchemeMaster.FYId = Convert.ToInt32(HttpContext.Current.Session["FinancialYearId"]); tblSchemeMaster.CreatedDate = DateTime.Now; tblSchemeMaster.CreatedBy = scheme.CreatedBy; _context.TSchemeMaster_BasicDetails.Add(tblSchemeMaster); _context.SaveChanges(); //********************************************************************************************** int SchemeId = _context.TSchemeMaster_BasicDetails.Max(x => x.SID); foreach (var p in scheme.SchemeEffectiveROIList) { var effectiverow = new TSchemeMaster_EffectiveROI { SID = SchemeId, NoofDefaultMonths = p.NoofDefaultMonths, EffROI = (decimal)p.EffectiveROIPerc, }; _context.TSchemeMaster_EffectiveROI.Add(effectiverow); _context.SaveChanges(); } //********************************************************************************************** if (scheme.Purity == null) { scheme.Purity = Purity; } var getrecord = _context.Mst_SchemePurity.Where(x => x.SchemeId == scheme.SchemeId).ToList(); if (getrecord != null) { foreach (var item1 in getrecord) { _context.Mst_SchemePurity.Remove(item1); _context.SaveChanges(); } } foreach (var item in scheme.Purity) { Mst_SchemePurity tblSchemePurity = new Mst_SchemePurity(); tblSchemePurity.SchemeId = SchemeId; tblSchemePurity.PurityId = item; _context.Mst_SchemePurity.Add(tblSchemePurity); } _context.SaveChanges(); } else { tblSchemeMaster = _context.TSchemeMaster_BasicDetails.Where(x => x.SID == scheme.SchemeId).FirstOrDefault(); tblSchemeMaster.Product = scheme.Product; tblSchemeMaster.SchemeName = scheme.SchemeName; tblSchemeMaster.SchemeType = scheme.SchemeType; tblSchemeMaster.CalMethod = scheme.Frequency; tblSchemeMaster.Tenure = scheme.MinTenure; tblSchemeMaster.MaxTenure = scheme.MaxTenure; tblSchemeMaster.MinLoanAmt = scheme.MinLoanAmount; tblSchemeMaster.MaxLoanAmt = scheme.MaxLoanAmount; tblSchemeMaster.Ltv = scheme.MinLTVPerc; tblSchemeMaster.MaxLtv = scheme.MaxLTVPerc; tblSchemeMaster.ROI = scheme.MinROIPerc; tblSchemeMaster.MaxRoi = scheme.MaxROIPerc; tblSchemeMaster.GracePeriod = scheme.GracePeriod; tblSchemeMaster.LockInPeriod = scheme.LockInPeriod; tblSchemeMaster.ProChargeType = scheme.ProcessingFeeType; tblSchemeMaster.ProCharge = scheme.ProcessingCharges; tblSchemeMaster.AmtLmtTo = scheme.MaxProcessingCharge; tblSchemeMaster.isActive = scheme.Status; tblSchemeMaster.UpdatedDate = DateTime.Now; tblSchemeMaster.UpdatedBy = scheme.UpdatedBy; tblSchemeMaster.BranchId = Convert.ToInt32(HttpContext.Current.Session["BranchId"]); tblSchemeMaster.CMPId = Convert.ToInt32(HttpContext.Current.Session["CompanyId"]); tblSchemeMaster.FYId = Convert.ToInt32(HttpContext.Current.Session["FinancialYearId"]); _context.SaveChanges(); #region Effective ROI List <TSchemeMaster_EffectiveROI> NewEffectiveROIList = new List <TSchemeMaster_EffectiveROI>(); foreach (var p in scheme.SchemeEffectiveROIList) { var Findobject = _context.TSchemeMaster_EffectiveROI.Where(x => x.ROIID == p.ID && x.SID == scheme.SchemeId).FirstOrDefault(); if (Findobject == null) { var ratetrnnew = new TSchemeMaster_EffectiveROI { SID = scheme.SchemeId, NoofDefaultMonths = p.NoofDefaultMonths, EffROI = (decimal)p.EffectiveROIPerc, }; _context.TSchemeMaster_EffectiveROI.Add(ratetrnnew); } else { Findobject.NoofDefaultMonths = p.NoofDefaultMonths; Findobject.EffROI = (decimal)p.EffectiveROIPerc; } NewEffectiveROIList.Add(Findobject); } #endregion #region Effective ROI details remove //take the loop of table and check from list if found in list then not remove else remove from table itself var trnobjlist = _context.TSchemeMaster_EffectiveROI.Where(x => x.SID == scheme.SchemeId).ToList(); if (trnobjlist != null) { foreach (TSchemeMaster_EffectiveROI item in trnobjlist) { if (NewEffectiveROIList.Contains(item)) { continue; } else { _context.TSchemeMaster_EffectiveROI.Remove(item); } } _context.SaveChanges(); } #endregion Effective ROI details remove //************************************************************************************************************* if (scheme.Purity == null) { scheme.Purity = Purity; } //var getrecord = _context.Mst_SchemePurity.Where(x => x.SchemeId == scheme.SchemeId).ToList(); //if (getrecord != null) //{ // foreach (var item1 in getrecord) // { // _context.Mst_SchemePurity.Remove(item1); // _context.SaveChanges(); // } //} //foreach (var item in scheme.Purity) //{ // Mst_SchemePurity tblSchemePurity = new Mst_SchemePurity(); // tblSchemePurity.SchemeId = scheme.SchemeId; // tblSchemePurity.PurityId = item; // _context.Mst_SchemePurity.Add(tblSchemePurity); //} List <Mst_SchemePurity> NewSchemePurityList = new List <Mst_SchemePurity>(); foreach (var p in scheme.Purity) { var Findobject = _context.Mst_SchemePurity.Where(x => x.SchemeId == scheme.SchemeId && x.PurityId == p).FirstOrDefault(); if (Findobject == null) { var schemepurity = new Mst_SchemePurity { PurityId = p, SchemeId = scheme.SchemeId, }; _context.Mst_SchemePurity.Add(schemepurity); } else { Findobject.SchemeId = scheme.SchemeId; Findobject.PurityId = p; } NewSchemePurityList.Add(Findobject); } #region Effective ROI details remove //take the loop of table and check from list if found in list then not remove else remove from table itself var purityobjlist = _context.Mst_SchemePurity.Where(x => x.SchemeId == scheme.SchemeId).ToList(); if (purityobjlist != null) { foreach (Mst_SchemePurity item in purityobjlist) { if (NewSchemePurityList.Contains(item)) { continue; } else { _context.Mst_SchemePurity.Remove(item); } } _context.SaveChanges(); } #endregion Effective ROI details remove _context.SaveChanges(); } } catch (Exception ex) { throw new Exception(ex.Message); } }