public async Task <IActionResult> Create([Bind("Id,ShortDescription,Description,Priority,Urgency")] IssueEntity issueEntity) { if (ModelState.IsValid) { var user = await _context.Users.FirstOrDefaultAsync(u => u.Login == User.Identity.Name); issueEntity.CreatedBy = user; issueEntity.CreationDate = DateTime.Now; issueEntity.Status = IssueStatuses.New; var newRecord = new IssueTransitionEntity { Command = TransitionCommands.Enter, Issue = issueEntity, MadeBy = user, TransitionDate = DateTime.Now, Comment = "Issue Created" }; _context.Add(issueEntity); _context.Add(newRecord); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["CreatedById"] = new SelectList(_context.Users, "Id", "FirstName", issueEntity.CreatedById); return(View(issueEntity)); }
public async Task <IActionResult> Edit(int id, [Bind("Id,ShortDescription,Description,Priority,Urgency")] IssueEntity issueEntity, string comment, TransitionCommands command = TransitionCommands.Save) { var currerntEntity = await _context.Issues.FirstOrDefaultAsync(i => i.Id == id); if (id != issueEntity.Id || currerntEntity == null) { return(NotFound()); } if (ModelState.IsValid) { var user = await _context.Users.FirstOrDefaultAsync(u => u.Login == User.Identity.Name); var record = new IssueTransitionEntity { MadeBy = user, Command = command, Issue = currerntEntity, TransitionDate = DateTime.Now, Comment = comment }; _context.Add(record); currerntEntity.ShortDescription = issueEntity.ShortDescription; currerntEntity.Description = issueEntity.Description; currerntEntity.Priority = issueEntity.Priority; currerntEntity.Urgency = issueEntity.Urgency; currerntEntity.ChangeState(command); _context.Update(currerntEntity); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewBag.PossibleActions = issueEntity.GetPossibleActions(); return(View(issueEntity)); }