Esempio n. 1
0
 public IActionResult UpdateSprint([FromRoute] Guid project_id, [FromRoute] Guid sprint_id, [FromBody] SprintUpdateM model)
 {
     try
     {
         JwtClaimM jwt_claim = _jwtAuth.GetClaims(Request);
         _permission.EnsureProjectManager(jwt_claim.UserId, project_id);
         _sprint.EnsureExisted(project_id, sprint_id);
         return(Ok(_sprint.UpdateSprint(sprint_id, model)));
     }
     catch (Exception e)
     {
         return(GetError(e));
     }
 }
Esempio n. 2
0
        public SprintDM UpdateSprint(Guid sprint_id, SprintUpdateM model)
        {
            try
            {
                IList <StageEnum> stages;
                if (model.Approvals == null)
                {
                    stages = new List <StageEnum> {
                        StageEnum.Planning, StageEnum.Coding
                    };
                }
                else
                {
                    stages = Enum.GetValues(typeof(StageEnum)).Cast <StageEnum>().OrderBy(s => s).ToList();
                    for (int i = 2; i < stages.Count; i++)
                    {
                        if (!model.Approvals.Any(s => s.Equals(stages[i])))
                        {
                            stages.Remove(stages[i]);
                            i--;
                        }
                    }
                }

                Sprint sprint = _sprint.GetOne(sprint_id);
                sprint.StartDate = model.StartDate != null ? model.StartDate : sprint.StartDate;
                sprint.EndDate   = model.EndDate != null ? model.EndDate : sprint.EndDate;
                IList <Approval> approvals = _approval.GetAll(a => a.SprintId.Equals(sprint_id));
                _approval.DeleteAll(approvals);
                SaveChanges();
                foreach (var stage in stages)
                {
                    _approval.Add(new Approval
                    {
                        SprintId  = sprint_id,
                        StageCode = stage
                    });
                }
                SaveChanges();

                return(new SprintDM
                {
                    Approvals = stages.Select(s => new Stage
                    {
                        StageCode = s,
                        Name = s.ToString()
                    }).ToList(),
                    Stage = new Stage
                    {
                        Name = sprint.StageCode.ToString(),
                        StageCode = sprint.StageCode
                    },
                    EndDate = sprint.EndDate,
                    Id = sprint.Id,
                    No = sprint.No,
                    StartDate = sprint.StartDate
                });
            }
            catch (Exception e)
            {
                throw e is RequestException ? e : _errorHandler.WriteLog("An error occurred while update a sprint!",
                                                                         e, DateTime.Now, "Server", "Service_Sprint_UpdateSprint");
            }
        }