예제 #1
0
        public async Task <ServiceResult <IssueModel> > Update(IssueEditModel model, string userId)
        {
            var issueRes = await GetEntityById(model.Id);

            if (issueRes.IsError)
            {
                return(ServiceResult <IssueModel> .NotFound("Issue not found"));
            }

            var isMember = await IsMember(issueRes.Value.ProjectId, userId);

            if (!isMember)
            {
                return(ServiceResult <IssueModel> .Error(ProjectsConstants.NotAMember));
            }

            issueRes.Value.InjectFrom(model);
            issueRes.Value.MarkUpdated(userId);

            _dbContext.Issues.Update(issueRes.Value);
            var count = await _dbContext.SaveChangesAsync();

            return(count != 1
                ? ServiceResult <IssueModel> .Error("Something went wrong")
                : ServiceResult <IssueModel> .Ok((IssueModel) new IssueModel().InjectFrom(issueRes.Value)));
        }
예제 #2
0
        // GET: /Issue/Edit/issueId
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Issue issue = db.Issues.Find(id);

            if (issue == null)
            {
                return(HttpNotFound());
            }
            var developers = RolesManager.getSelectListByRole("developer");
            var curDev     = db.Users.Find(issue.DeveloperId);

            var model = new IssueEditModel
            {
                Id          = issue.Id,
                Title       = issue.Title,
                Description = issue.Description,
                Developers  = developers,
                Price       = issue.Price,
                ProjectId   = issue.ProjectId
            };

            return(View(model));
        }
예제 #3
0
 public int IssueEdit(IssueEditModel model)
 {
     using (var _uow = _unitOfWorkFactory.Create())
     {
         var Issue = Mapper.Map <DAL.Entities.Issue>(model);
         _uow._Issues.Update(Issue);
         return(Issue.ProjectId);
     }
 }
예제 #4
0
        public async Task <ActionResult> Edit(IssueEditModel issue)
        {
            if (ModelState.IsValid)
            {
                var issueFromDb = await Database.Issues.FindAsync(issue.Id);

                if (issueFromDb != null)
                {
                    if (!issueFromDb.IsSolved)
                    {
                        if (issue.IsSolved &&
                            (String.IsNullOrEmpty(issue.SolutionData) || String.IsNullOrEmpty(issue.SupportUser_Id)))
                        {
                            ModelState.AddModelError("", "Para encerrar o chamado, é necessário colocar a solução do problema e o técnico que resolveu.");
                        }
                        else
                        {
                            issueFromDb.IsSolved            = issue.IsSolved;
                            issueFromDb.ProblemData         = issue.ProblemData;
                            issueFromDb.SolutionData        = issue.SolutionData;
                            issueFromDb.ExpectedAt          = issue.ExpectedAt;
                            issueFromDb.SupportUser_Id      = issue.SupportUser_Id;
                            issueFromDb.UserThatReported_Id = issue.UserThatReported_Id;

                            if (issue.IsSolved)
                            {
                                issueFromDb.ResolvedAt = DateTime.Now;
                            }

                            Database.Entry(issueFromDb).State = EntityState.Modified;
                            await Database.SaveChangesAsync();

                            return(RedirectToAction("Index"));
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("", "Não é possível editar chamados fechados.");
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Não foi encontrado o chamado desejado.");
                }
            }

            var userSupportList = UserList.UserListByRole(Database, "Support", issue.SupportUser_Id);
            var userList        = UserList.UserListByRole(Database, "User", issue.UserThatReported_Id);

            userList = userList.Concat(userSupportList.Where(t => t.Text != "Nenhum")).ToList();

            ViewBag.userSupportList = userSupportList;
            ViewBag.userList        = userList;

            return(View(issue));
        }
예제 #5
0
        public ActionResult Edit(IssueEditModel model)
        {
            if (ModelState.IsValid)
            {
                Issue issue     = db.Issues.Find(model.Id);
                var   developer = db.Users.Find(model.DeveloperId);

                issue.Title       = model.Title;
                issue.Description = model.Description;
                issue.Price       = model.Price;
                issue.DeveloperId = developer.Id;
                issue.Developer   = developer;

                db.Entry(issue).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Details", new { id = issue.Id }));
            }
            var developers = RolesManager.getSelectListByRole("developer");

            model.Developers = developers;


            return(View(model));
        }
예제 #6
0
        public async Task <ActionResult> Edit(int id)
        {
            var issue = await Database.Issues.FindAsync(id);

            if (issue == null)
            {
                return(View("Error"));
            }

            if (issue.IsSolved)
            {
                var error = new Exception("Não é possível editar chamados já resolvidos.");
                return(View("Error", new HandleErrorInfo(error, "IssueController", "Edit")));
            }

            IssueEditModel editIssue = new IssueEditModel()
            {
                Id                  = issue.Id,
                IsSolved            = issue.IsSolved,
                ProblemData         = issue.ProblemData,
                SolutionData        = issue.SolutionData,
                SupportUser_Id      = issue.SupportUser_Id,
                UserThatReported_Id = issue.UserThatReported_Id,
                ExpectedAt          = issue.ExpectedAt
            };

            var userSupportList = UserList.UserListByRole(Database, "Support", editIssue.SupportUser_Id);
            var userList        = UserList.UserListByRole(Database, "User", editIssue.UserThatReported_Id);

            userList = userList.Concat(userSupportList.Where(t => t.Text != "Nenhum")).ToList();

            ViewBag.userSupportList = userSupportList;
            ViewBag.userList        = userList;

            return(View(editIssue));
        }
예제 #7
0
 public async Task <IActionResult> Edit([FromBody] IssueEditModel model) =>
 ModelResult(await _issuesService.Update(model, CurrentUserId));
        public async Task <IActionResult> Edit(IssueEditModel model)
        {
            int ProjectId = _IssueService.IssueEdit(model);

            return(RedirectToAction("Details", "Project", new { Id = ProjectId }));
        }