public async Task <Response <int> > UpdateProductionMilestone(ProductionMilestonesVM model) { try { int userId = _user.GetCurrentUser().User_ID; var prodList = await(from pm in _context.ProductionMilestone from md in _context.MilestoneDepartment.Where(x => x.Milestone_Department_ID == pm.Milestone_Department_ID) from wpm in _context.WorkflowPhaseMilestone.Where(x => x.Milestone_ID == md.Milestone_ID) from ph in _context.ProductPhase.Where(x => x.Product_Phase_ID == wpm.Phase_ID) from d in _context.Department.Where(x => x.Department_ID == md.Department_ID) from du in _context.DepartmentUsers.Where(x => x.Department_ID == d.Department_ID) where du.User_ID == userId && pm.Production_ID == model.Production_ID select pm).ToListAsync(); foreach (var item in prodList) { var localItem = model.ProductionMilestones.Where(x => x.ProdMilestoneItem.Milestone_Department_ID == item.Milestone_Department_ID).FirstOrDefault(); if (item.Comments != localItem.ProdMilestoneItem.Comments || item.Status_ID != localItem.ProdMilestoneItem.Status_ID) { item.Comments = localItem.ProdMilestoneItem.Comments; item.Status_ID = localItem.ProdMilestoneItem.Status_ID; item.Modified_By = _user.GetCurrentUser().User_Name; item.Modified_Date = DateTime.Now; if (localItem.ProdMilestoneItem.Status_ID == 1 && localItem.ProdMilestoneItem.ActualDate == null) { item.ActualDate = DateTime.Now; } } } var res = await _context.SaveChangesAsync(); CheckAndUpdateStatus(model.Production_ID); return(new Response <int>() { IsSuccess = true, Model = res }); } catch (Exception ex) { _log.Error(ex, _user.GetCurrentUser().User_Name); return(new Response <int>() { IsSuccess = false, Message = ex.Message }); } }
public async Task <ActionResult> UpdateProjectMilestone([FromBody] ProductionMilestonesVM model) { if (ModelState.IsValid) { try { await _repository.UpdateProductionMilestone(model); return(Ok()); } catch (Exception ex) { if (ex.GetType().FullName == "Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException") { return(NotFound()); } return(BadRequest()); } } return(BadRequest()); }