public async Task <bool> UpdateIssueAsync(UpdateIssueModel updateIssueModel)
        {
            if (_context.Issues.Any(issue => issue.Id == updateIssueModel.IssueId))
            {
                try
                {
                    //https://stackoverflow.com/questions/36144178/asp-net-web-api-controller-update-row

                    var updateIssue = _context.Issues.FirstOrDefault(x => x.Id == updateIssueModel.IssueId);

                    if (updateIssue != null)
                    {
                        updateIssue.IssueUserId        = updateIssueModel.IssueUserId;
                        updateIssue.IssueUserFirstName = updateIssueModel.IssueUserFirstName;
                        updateIssue.Customer           = updateIssueModel.CustomerName;
                        updateIssue.ActivityStatus     = updateIssueModel.ActiveStatus;
                        updateIssue.FinishedStatus     = updateIssueModel.FinishedStatus;
                        updateIssue.CurrentStatus      = updateIssueModel.CurrentStatusDecider(updateIssueModel.ActiveStatus, updateIssueModel.FinishedStatus);
                        updateIssue.EditedDate         = updateIssueModel.EditedDateTime();
                        await _context.SaveChangesAsync();
                    }


                    return(true);
                }
                catch
                {
                }
            }

            return(false);
        }
 public async Task <IActionResult> IssueUpdateAsync([FromBody] UpdateIssueModel updateIssueModel)
 {
     if (_identity.ValidateAccessRights(IdentityRequest()))
     {
         if (await _identity.UpdateIssueAsync(updateIssueModel))
         {
             return(new OkResult());
         }
         return(new BadRequestResult());
     }
     return(new UnauthorizedResult());
 }
예제 #3
0
        public async Task <HttpResponseMessage> Update(UpdateIssueModel model, int projectId)
        {
            if (!ModelState.IsValid)
            {
                return(InvalidModelState(ModelState));
            }

            var issue = DB.Issues.Where(a => a.Id == model.Id && a.ProjectId == projectId).FirstOrDefault();

            if (issue == null)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound, "Can't find issue/bug ticket."));
            }



            using (var context = DB)
            {
                using (var dbTrans = context.Database.BeginTransaction())
                {
                    try
                    {
                        issue.Title          = model.Title;
                        issue.Description    = model.Description;
                        issue.PriorityId     = model.PriorityId;
                        issue.LastUpdateDate = DateTime.UtcNow;
                        issue.UpdatedBy      = this.CurrentUserId;
                        issue.StartDate      = model.StartDate;
                        issue.EndDate        = model.EndDate;

                        await DB.SaveChangesAsync();

                        if (model.AssingTo > 0)
                        {
                            var assignedPerson = context.IssueAssignments.Where(a => a.IssueId == issue.Id).FirstOrDefault();

                            if (assignedPerson != null && assignedPerson.UserId != model.AssingTo)
                            {
                                assignedPerson.UserId = model.AssingTo;
                            }
                            else if (assignedPerson == null)
                            {
                                context.IssueAssignments.Add(new IssueAssignment()
                                {
                                    IssueId = issue.Id,
                                    UserId  = model.AssingTo
                                });
                            }

                            await context.SaveChangesAsync();
                        }

                        dbTrans.Commit();
                    }
                    catch (DbEntityValidationException e)
                    {
                        dbTrans.Rollback();
                        throw new Exception("Error while creating entry", e);
                    }
                }
            }

            return(StatusOk());
        }