public IActionResult Edit(Discount model) { if (ValidateDiscount(model) || model.DiscountId is 0) { return(BadRequest(model)); } var cur = _db.Discounts.First(d => d.DiscountId == model.DiscountId); var props = cur.GetType().GetProperties(); var toUpd = new Discount(); foreach (var prop in props) { var curVal = prop.GetValue(cur); if (prop.Name is "DiscountId" || prop.Name is "Code") { prop.SetValue(toUpd, curVal); continue; } var modVal = prop.GetValue(model); prop.SetValue(toUpd, modVal != curVal ? modVal : curVal); } _db.EditDiscount(toUpd); return(Redirect("/Discount/Index")); }