public async Task <IHttpActionResult> UpdateProperty(OrderTemplateDetail viewModel) { try { ensureSeq(ref viewModel); var row = db.OrderTemplateDetails.FirstOrDefault(x => x.TemplateCode == viewModel.TemplateCode && x.ProductCode == viewModel.ProductCode); //update row.ProductCode = viewModel.ProductCode; row.TemplateCode = viewModel.TemplateCode; var runningOrder = db.OrderTemplateDetails.Where(x => x.Seq >= viewModel.Seq && x.TemplateCode == viewModel.TemplateCode && x.ProductCode != viewModel.ProductCode).OrderBy(x => x.Seq).ToList(); var continueSeq = viewModel.Seq; foreach (var r in runningOrder) { continueSeq++; r.Seq = continueSeq; } await db.SaveChangesAsync(); return(Json(result)); } catch (DbEntityValidationException ex) { base.ErrorLog(string.Empty, ex); } catch (Exception ex) { base.ErrorLog(string.Empty, ex); } return(Json(result)); }
private void ensureSeq(ref OrderTemplateDetail viewModel) { if (viewModel.Seq == null || viewModel.Seq == 0) { var latest = db.OrderTemplateDetails.OrderByDescending(x => x.Seq).FirstOrDefault(); if (latest != null && latest.Seq.HasValue) { viewModel.Seq = latest.Seq.Value; } else { viewModel.Seq = 1; } } }