示例#1
0
        public async Task <IActionResult> CreateJournal(int ticketId, [FromBody] JournalCreateDto journalCreate)
        {
            Ticket ticket = await _repo.GetTicket(ticketId);

            if (ticket == null)
            {
                return(BadRequest(new { error = "Ticket not Found" }));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var createdAt = DateTime.Now;

            var createdById = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            User createdBy = await _userRepo.GetUser(createdById);

            var journal = new Journal
            {
                Entry     = journalCreate.Entry,
                Ticket    = ticket,
                CreatedBy = createdBy,
                CreatedAt = createdAt
            };

            _repo.AddJournal(journal);

            if (await _repo.Save())
            {
                var journalToReturn = _mapper.Map <JournalDetailDto>(journal);

                return(CreatedAtRoute("GetJournal", new { controller = "Tickets", ticketId = ticket.Id, id = journal.Id }, journalToReturn));
            }


            return(BadRequest(new { error = "Error Creating Journal" }));
        }