public override async Task RunExampleAsync()
        {
            GetSentSmsDeliveryReports client = new GetSentSmsDeliveryReports(BASIC_AUTH_CONFIGURATION);

            GetSentSmsDeliveryReportsExecuteContext context = new GetSentSmsDeliveryReportsExecuteContext
            {
                BulkId    = null,
                MessageId = null,
                Limit     = 10
            };

            SMSReportResponse response = await client.ExecuteAsync(context);

            if (!response.Results.Any())
            {
                Console.WriteLine("No reports to display.");
                return;
            }

            foreach (SMSReport log in response.Results)
            {
                Console.WriteLine("-------------------------------");
                Console.WriteLine("Message ID: " + log.MessageId);
                Console.WriteLine("Sent at: " + log.SentAt);
                Console.WriteLine("Receiver: " + log.To);
                Console.WriteLine("Status: " + log.Status.Name);
                Console.WriteLine("Price: " + log.Price.PricePerMessage + " " + log.Price.Currency);
            }
            Console.WriteLine("-------------------------------");
        }
        protected static void PrintFirstReportDetails(SMSReportResponse response)
        {
            SMSReport report = response.Results[0];

            Console.WriteLine("-------------------------------");
            Console.WriteLine("Message ID: " + report.MessageId);
            Console.WriteLine("Sent at: " + report.SentAt.ToLocalTime());
            Console.WriteLine("Receiver: " + report.To);
            Console.WriteLine("Status: " + report.Status.Name);
            Console.WriteLine("Price: " + report.Price.PricePerMessage + " " + report.Price.Currency);
            Console.WriteLine("-------------------------------");
        }
        protected static async Task <SMSReportResponse> GetSmsReportAsync(string messageId)
        {
            Console.WriteLine("-------------------------------");
            Console.WriteLine("Fetching report...");

            GetSentSmsDeliveryReports reportsClient         = new GetSentSmsDeliveryReports(BASIC_AUTH_CONFIGURATION);
            GetSentSmsDeliveryReportsExecuteContext context = new GetSentSmsDeliveryReportsExecuteContext
            {
                MessageId = messageId
            };
            SMSReportResponse response = await reportsClient.ExecuteAsync(context);

            if (!response.Results.Any())
            {
                Console.WriteLine("No report to fetch.");
                return(new SMSReportResponse());
            }
            Console.WriteLine("Fetching report complete.");

            PrintFirstReportDetails(response);

            return(response);
        }