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)); }
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)); }
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)); }
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 })); }
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 }); }
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)); }
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)); }
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)); }