public async Task <GhasedakSendResponse> SendAsync(GhasedakOutgoingBulkMessageRequest message, GhasedakOptions options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } if (string.IsNullOrWhiteSpace(options.PrivateKey)) { throw new ArgumentNullException(nameof(options.PrivateKey)); } var serializer = new JsonSerializer <GhasedakSendResponse>(); var inlineMessage = message.MapToInlineGhasedakOutgoingBulkMessageRequest(); inlineMessage.SignWith(options.PrivateKey); var content = inlineMessage.CreateContent(); var httpResponse = await _httpClient.PostAsync("/api/v5.0/message/post", content); await CheckSuccessStatusCodeAndThrowIfUnsuccessful(httpResponse); var ghasedakResponseString = await httpResponse.Content.ReadAsStringAsync(); var ghasedakResponse = serializer.DeserializeFromString(ghasedakResponseString); return(ghasedakResponse); }
internal static InlineGhasedakOutgoingBulkMessageRequest MapToInlineGhasedakOutgoingBulkMessageRequest( this GhasedakOutgoingBulkMessageRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } return(new InlineGhasedakOutgoingBulkMessageRequest { Date = request.Date.ToGhasedakFormatDateString(), Uid = request.Uid, Sid = request.Sid, ChannelType = request.ChannelType, Content = request.Content, MessageType = request.MessageType, Priority = request.Priority, ExpirationTime = request.ExpirationTime?.ToGhasedakFormatDateString(), Messages = request.Messages.ToInlineGhasedakContentBulkMessage() }); }
public async Task <GhasedakSendResponse> SendAsync(GhasedakOutgoingBulkMessageRequest message, string privateKey) { return(await SendAsync(message, new GhasedakOptions { PrivateKey = privateKey })); }