Example #1
0
        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));
        }
Example #2
0
        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,
            });
        }