private static Tax getEntityByModel(TaxModel model) { if (model == null) return null; Tax entity = new Tax(); if (model.Id == 0) { entity.CreateBy = AuthenticationHelper.UserId; entity.CreateDate = DateTime.Now; entity.CompanyId = AuthenticationHelper.CompanyId.Value; } else { entity.CreateBy = model.CreateBy; entity.CreateDate = model.CreateDate; entity.CompanyId = model.CompanyId; } entity.EndDate = model.EndDate; entity.Id = model.Id; entity.SOBId = model.SOBId; entity.StartDate = model.StartDate; entity.TaxName = model.TaxName; entity.UpdateBy = AuthenticationHelper.UserId; entity.UpdateDate = DateTime.Now; return entity; }
public static void Update(TaxModel model) { //tax ko entity mai lia Tax entity = getEntityByModel(model); string result = string.Empty; if (entity.IsValid()) { //edit mode ya new mode? if (model.Id > 0) result = service.Update(entity); else result = service.Insert(entity); if (!string.IsNullOrEmpty(result)) { //database se tax ki detail uthai IList<TaxDetailModel> taxDetail = getTaxDetailByTaxId(result); //koi row delete tou nai ki detail mai //database se utha kar check kia //new detail aur db detail //k count ko match kar k if (taxDetail.Count() > model.TaxDetails.Count()) { //agar detail delete ki hai tou //unko uthaya jo delete ki hain var toBeDeleted = taxDetail.Take(taxDetail.Count() - model.TaxDetails.Count()); foreach (var item in toBeDeleted) { //ek ek kar k delete kia detail ko detailService.Delete(item.Id.ToString(), AuthenticationHelper.CompanyId.Value); } //delete karne k bd db se detail utha li. taxDetail = getTaxDetailByTaxId(result); } //tax detail ki loop chalai foreach (var detailModel in model.TaxDetails) { //detail ki entity li TaxDetail detailEntity = getEntityByModel(detailModel); if (detailEntity.IsValid()) { //tax id dali detailEntity.TaxId = Convert.ToInt64(result); //detail mai koi data para hua tou nai hai //agar hai tou usko update kar do if (taxDetail.Count() > 0) { //entity ki id banai detailEntity.Id = taxDetail.FirstOrDefault().Id; //detail se remove ki wo id. //magar aisa q kia ye samajh nai aya??? taxDetail.Remove(taxDetail.FirstOrDefault(rec => rec.Id == detailEntity.Id)); //entity update kar di. detailService.Update(detailEntity); } else //nai tou insert detailService.Insert(detailEntity); } } } } }
public ActionResult Create() { TaxModel model = new TaxModel(); model.SOBId = SessionHelper.SOBId; model.TaxDetails = new List<TaxDetailModel>(); SessionHelper.Tax = model; return View("Edit", model); }