public async Task <IActionResult> Post(string authorization, ReplyCreateParameters parameters) { var reply = await _replyService.Create(parameters); if (reply == null) { return(Ok(new ReplyCreateResult())); } if (parameters.Files != null) { reply.Files = new List <StorageViewResult>(); foreach (var item in parameters.Files) { item.TicketId = reply.TicketId; var file = await _storageService.Create(reply.Id, item); var path = _pathGenerator.Generate(file.Id); await _fileStorage.Save(path, item.Bytes); reply.Files.Add(file); } } return(Ok(reply)); }
public async Task <ReplyCreateResult> Create(ReplyCreateParameters parameters) { var ticket = await _dbContext.Tickets.FirstOrDefaultAsync(p => p.Id == parameters.TicketId); var client = await _dbContext.Clients.FirstOrDefaultAsync(c => c.Id == parameters.ClientId); var staff = await _dbContext.Staff.FirstOrDefaultAsync(e => e.Id == parameters.StaffId); if (ticket == null || client == null) { return(null); } var result = await _dbContext.Replies.AddAsync(new Reply() { CreateDateTime = DateTime.Now, Content = parameters.Content, Client = client, Employee = staff, Ticket = ticket, SenderType = parameters.SenderType }); await _dbContext.SaveChangesAsync(); var reply = result.Entity; return(new ReplyCreateResult() { Id = reply.Id, CreateDateTime = DateTime.Now.Date, Content = parameters.Content, ClientName = client.Name, StaffMemberName = staff?.Name, StaffMemberEmail = staff?.Email, TicketId = ticket.Id, }); }