Beispiel #1
0
        public async Task HandleCallbackAsync(App app, HttpContext httpContext)
        {
            var request = httpContext.Request;

            var status = request.Form["MessageStatus"].ToString();

            var reference       = request.Query["reference"].ToString();
            var referenceNumber = request.Query["reference_number"].ToString();

            var result = default(SmsResult);

            switch (status)
            {
            case "sent":
                result = SmsResult.Sent;
                break;

            case "delivered":
                result = SmsResult.Delivered;
                break;

            case "failed":
            case "undelivered":
                result = SmsResult.Failed;
                break;
            }

            if (result != SmsResult.Unknown)
            {
                await smsCallback.HandleCallbackAsync(reference, referenceNumber, result, httpContext.RequestAborted);
            }
        }
Beispiel #2
0
        public async Task HandleCallbackAsync(App app, HttpContext httpContext)
        {
            var status = await messageBirdClient.ParseStatusAsync(httpContext);

            if (status.Reference != null)
            {
                var result = default(SmsResult);

                switch (status.Status)
                {
                    case MessageBirdStatus.Delivered:
                        result = SmsResult.Delivered;
                        break;
                    case MessageBirdStatus.Delivery_Failed:
                        result = SmsResult.Failed;
                        break;
                    case MessageBirdStatus.Sent:
                        result = SmsResult.Sent;
                        break;
                }

                if (result != SmsResult.Unknown)
                {
                    await smsCallback.HandleCallbackAsync(status.Recipient, status.Reference, result, httpContext.RequestAborted);
                }
            }
        }