Example #1
0
        public async Task <IEnumerable <MessagesViewModel> > Handle(CreateMessagesCommand request, CancellationToken cancellationToken)
        {
            if (!request.Messages.Any())
            {
                throw new ApplicationException("Atleast on Message should be available in the request");
            }

            var postMessagesRequest = new PostMessagesRequest
            {
                Records = (from msg in request.Messages
                           select new PostMessagesRequest.Record
                {
                    Fields = new MessageField
                    {
                        Id = msg.Id,
                        Summary = msg.Title,
                        Message = msg.Text,
                        ReceivedAt = msg.ReceivedAt
                    }
                }).ToArray()
            };

            var response = await _airtableApiClient.CreateMessagesAsync(postMessagesRequest, cancellationToken);

            return(response.Records.Select(record => _mapper.Map <MessagesViewModel>(record)));
        }
Example #2
0
 public async Task <MessagesResponse> CreateMessagesAsync(PostMessagesRequest request, CancellationToken cancellationToken)
 {
     return(await QueryAsync <MessagesResponse>(HttpMethod.Post, $"/Messages", cancellationToken, body : request).ConfigureAwait(false));
 }