コード例 #1
0
        public int CreateMessage(TicketMessageServiceModel message)
        {
            var ticketRepo = _unitOfWork.AddRepository <TicketMessageEntityModel>()
                             .GetRepository <TicketMessageEntityModel>();

            var entity = _mapper.Map <TicketMessageEntityModel>(message);

            _dateService.SetDateCreatedNow(ref entity);

            ticketRepo.AddItem(entity);
            _unitOfWork.Save();

            return(entity.Id);
        }
コード例 #2
0
        public IActionResult SendMessage(int ticketId, string message)
        {
            if (message.Length > 1000)
            {
                return(new JsonResult(new { Status = "error", Reason = "Message cannot be over 1000 characters" }));
            }

            int  userId  = int.Parse(_userService.GetUserId(User));
            var  ticket  = _ticketService.GetTicketById(ticketId, true);
            bool isAdmin = _userService.IsUserSignedInAsAdmin(User);

            if (ticket != null)
            {
                if ((isAdmin || ticket.CreatedById.Value == userId) && ticket.TicketStatusId == (int)TicketStatusEnum.TicketStatus.Open)
                {
                    var messageServiceModel = new TicketMessageServiceModel
                    {
                        Message     = message,
                        TicketId    = ticket.Id,
                        CreatedById = userId,
                        DateCreated = DateTime.Now
                    };

                    _ticketService.CreateMessage(messageServiceModel);

                    return(new JsonResult(
                               new
                    {
                        Status = "success",
                        Message = message,
                        Date = DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss"),
                        UserName = ticket.CreatedByUser.Email
                    }));
                }
            }

            return(new JsonResult(new { Status = "error", Reason = "An error occured, please try again later" }));
        }