Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }