Esempio n. 1
0
        protected override async Task <Action <AsyncCodeActivityContext> > ExecuteAsync(AsyncCodeActivityContext context, CancellationToken cancellationToken)
        {
            // Object Container: Use objectContainer.Get<T>() to retrieve objects from the scope
            var objectContainer = context.GetFromContext <IObjectContainer>(TwilioApiScope.ParentContainerPropertyTag);

            // Inputs
            var to              = To.Get(context);
            var mediaurl        = MediaUrl.Get(context);
            var from            = From.Get(context);
            var quality         = Quality.Get(context);
            var storemedia      = StoreMedia.Get(context);
            var minutestosend   = MinutesToSend.Get(context);
            var sipauthusername = SipAuthUsername.Get(context);
            var sipauthpassword = SipAuthPassword.Get(context);
            var statuscallback  = StatusCallback.Get(context);
            var twilioQuality   = quality == FaxQuality.Fine ? FaxResource.QualityEnum.Fine :
                                  quality == FaxQuality.SuperFine ? FaxResource.QualityEnum.Superfine :
                                  FaxResource.QualityEnum.Standard;
            var statusCallbackUri = statuscallback != null ? new Uri(statuscallback) : null;
            var sent = await FaxWrappers.SendFaxAsync(objectContainer.Get <ITwilioRestClient>(), from, to, new Uri(mediaurl),
                                                      twilioQuality, sipauthusername, sipauthpassword, statusCallbackUri, storemedia, minutestosend);

            // Outputs
            return((ctx) => {
                Fax.Set(ctx, sent);
            });
        }