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
                });
            }
        }
Example #2
0
        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());
        }