Ejemplo n.º 1
0
        public ActionResult Create()
        {
            var issueEditViewModel = new IssueEditViewModel()
            {
                Issue = new IssueDTO()
            };

            var projectNameList = projectFacade.GetProjects
                                      (new ProjectFilter {
                Owner = User.Identity.Name
            })
                                  .Select(y => y.Name).ToList();

            List <SelectListItem> sel = new List <SelectListItem>();

            foreach (string entry in projectNameList)
            {
                sel.Add(new SelectListItem {
                    Text = entry
                });
            }

            ViewBag.ListOfProjects = sel;
            ViewBag.CurrentPerson  = personFacade.GetPeople
                                         (new PersonFilter {
                Email = User.Identity.Name
            }).First();
            return(View(issueEditViewModel));
        }
Ejemplo n.º 2
0
 public ActionResult Edit(IssueEditViewModel model)
 {
     if (ModelState.IsValid)
     {
         if (model.Issue.State == IssueState.SOLVED)
         {
             model.Issue.DateSolved = DateTime.Now;
         }
         notificationFacade.CreateNotification(new NotificationDTO
         {
             PersonRecipientId = model.Issue.OwnerId,
             Body = string.Format("{0} changed the state of your issue \"{1}\" to {2}",
                                  personFacade.GetPeople(new PersonFilter
             {
                 Email = User.Identity.Name
             }).First().Name,
                                  model.Issue.Name,
                                  model.Issue.State),
             CreationTime = DateTime.Now,
             Seen         = false
         });
         issueFacade.UpdateIssue(model.Issue);
         return(RedirectToAction("Issues"));
     }
     return(View(model));
 }
Ejemplo n.º 3
0
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            //get issue
            var issue = await _db.Issues.GetAsync(id.Value);

            if (issue == null)
            {
                return(HttpNotFound());
            }

            var possibleTransitions = _transitionService.GetTransitions(issue);

            var model = new IssueEditViewModel
            {
                Issue       = issue,
                Transitions = possibleTransitions
            };

            return(View(model));
        }
Ejemplo n.º 4
0
        public ActionResult Edit([Bind(Include = "Code,Name,Type,Description,AssigneeId,ProjectId")] IssueEditViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                ViewBag.AssigneeId = new SelectList(loadProjectUsersAsUserEmailViewModel(viewModel.ProjectId), "Id", "Email", viewModel.AssigneeId);
                ViewBag.ProjectId  = new SelectList(_projectService.GetProjectsForUser(getLoggedUser().Id), "Id", "Title", viewModel.ProjectId);
                return(View(viewModel));
            }
            var code = IssueCode.Parse(viewModel.Code);

            if (code == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var projectTemp = _projectService.GetProject(viewModel.ProjectId);

            if (!projectTemp.Users.Any(u => u.Id == getLoggedUser().Id))
            {
                TempData["ErrorInvalidProject"] = Locale.IssueStrings.ErrorMessageInvalidProjectEdit;
                return(RedirectToAction("Edit", "Issues", new { id = viewModel.Code }));
            }

            // create a new entity
            var entityNew = _issueService.GetNewEntityForEditing(code.ProjectCode, code.IssueNumber);

            entityNew.Reporter = null;
            entityNew.Assignee = null;
            entityNew.State    = null;
            entityNew.Comments = null;
            entityNew.Project  = null;

            // in case the project was changed
            if (viewModel.ProjectId != entityNew.ProjectId)
            {
                entityNew.ProjectCreatedAt = projectTemp.CreatedAt;
            }
            // map viewModel to the entity
            entityNew = Mapper.Map(viewModel, entityNew);

            if (viewModel.AssigneeId == null)
            {
                entityNew.AssigneeId = null;
            }

            // change CreatedAt
            entityNew.CreatedAt = DateTime.Now;
            // save the entity
            _issueService.Add(entityNew);

            return(RedirectToAction("Details", new { id = entityNew.Code }));
        }
Ejemplo n.º 5
0
        private void SetModelSelectListItems(IssueEditViewModel model)
        {
            model.Regions = Enum.GetNames(typeof(RegionType))
                            .Select(r => new SelectListItem
            {
                Text = r, Value = r
            })
                            .ToList();

            model.IssueTypes = Enum.GetNames(typeof(IssueType))
                               .Select(i => new SelectListItem
            {
                Text  = (Enum.Parse <IssueType>(i)).ToFriendlyName(),
                Value = i
            });
        }
Ejemplo n.º 6
0
        public async Task <ActionResult> Edit(Issue issue)
        {
            if (issue != null && ModelState.IsValid)
            {
                _db.Issues.Update(issue);
                await _db.SaveAsync();

                return(RedirectToAction("Index"));
            }
            var transitions = _transitionService.GetTransitions(issue);
            var model       = new IssueEditViewModel
            {
                Issue       = issue,
                Transitions = transitions
            };

            return(View(model));
        }
Ejemplo n.º 7
0
        public ActionResult Create(IssueEditViewModel model)
        {
            model.Issue.OwnerId = personFacade
                                  .GetPeople(new PersonFilter {
                Email = model.Issue.OwnerEmail
            })
                                  .First().Id;
            model.Issue.ProjectId = projectFacade
                                    .GetProjects(new ProjectFilter {
                Name = model.Issue.ProjectName
            })
                                    .First().Id;
            if (ModelState.IsValid)
            {
                model.Issue.State = IssueState.NEW;
                issueFacade.CreateIssue(model.Issue);
                return(RedirectToAction("Issues"));
            }

            var projectNameList = projectFacade.GetProjects
                                      (new ProjectFilter {
                Owner = User.Identity.Name
            })
                                  .Select(y => y.Name).ToList();

            List <SelectListItem> sel = new List <SelectListItem>();

            foreach (string entry in projectNameList)
            {
                sel.Add(new SelectListItem {
                    Text = entry
                });
            }

            ViewBag.ListOfProjects = sel;
            ViewBag.CurrentPerson  = personFacade.GetPeople
                                         (new PersonFilter {
                Email = User.Identity.Name
            }).First();
            return(View(model));
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> Edit(int id, IssueEditViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                this.SetModelSelectListItems(model);
                return(this.View(model));
            }

            var manager = await this.UserManager.GetUserAsync(User);

            var isUpdated = await this.managerIssues.UpdateAsync(
                manager, model.Id, model.Title, model.Description,
                model.Region, model.Type, model.AddressStreet, model.PictureFile);

            if (!isUpdated)
            {
                return(this.RedirectToAction("Details", "Issue", new { id, Area = "" })
                       .WithDanger(string.Empty, CantEditIssueForAnotherRegion));
            }

            return(this.RedirectToAction("Details", "Issue", new { id, Area = "" })
                   .WithSuccess(string.Empty, IssueUpdateSuccess));
        }