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