Beispiel #1
0
        public async Task <Dictionary <string, object> > HandleRequest(ExternalTask externalTask, Dictionary <string, object> resultVariables)
        {
            SendEmailDescriptor content = new SendEmailDescriptor()
            {
                to = new MailAddress()
                {
                    Email = externalTask.Variables["email_to"].Value.ToString(), Name = externalTask.Variables["name_to"].Value.ToString()
                },
                from = new MailAddress()
                {
                    Email = externalTask.Variables["email_from"].Value.ToString(), Name = externalTask.Variables["name_from"].Value.ToString()
                },
                subject     = externalTask.Variables["subject"].Value.ToString(),
                htmlContent = externalTask.Variables["htmlContent"].Value.ToString(),
                textContent = externalTask.Variables["textContent"].Value.ToString()
            };

            StringContent stringContent = new StringContent(JsonConvert.SerializeObject(content), System.Text.Encoding.UTF8, "application/json");

            HandleRequestContext a = new HandleRequestContext(_httpClient);

            resultVariables = await a.Post(resultVariables, "/email", stringContent);

            return(resultVariables);
        }
        public async Task <Dictionary <string, object> > HandleRequest(ExternalTask externalTask, Dictionary <string, object> resultVariables)
        {
            double lat = externalTask.Variables.ContainsKey("latitude") ? Double.Parse(externalTask.Variables["latitude"].Value.ToString(), System.Globalization.NumberStyles.Number) : 0;
            double lon = externalTask.Variables.ContainsKey("longitude") ? Double.Parse(externalTask.Variables["longitude"].Value.ToString(), System.Globalization.NumberStyles.Number) : 0;

            HttpResponseMessage response = new HttpResponseMessage();

            HandleRequestContext a = new HandleRequestContext(_httpClient);
            string result          = await a.Get(resultVariables, "/weather/" + lat + "/" + lon);

            Forecast forecast = JsonConvert.DeserializeObject <Forecast>(result);
            Dictionary <string, object> rv = new Dictionary <string, object>()
            {
                { "weather_temp", forecast.Currently.Temperature },
                { "weather_summary", forecast.Currently.Summary }
            };

            return(rv);
        }
Beispiel #3
0
        public async Task <Dictionary <string, object> > HandleRequest(ExternalTask externalTask, Dictionary <string, object> resultVariables)
        {
            string action     = externalTask.Variables.ContainsKey("Action") ? externalTask.Variables["Action"].Value.ToString() : null;
            string table      = externalTask.Variables.ContainsKey("Table") ? externalTask.Variables["Table"].Value.ToString() : null;
            string primaryKey = externalTask.Variables.ContainsKey("PrimaryKey") ? externalTask.Variables["PrimaryKey"].Value.ToString() : null;
            string data       = externalTask.Variables.ContainsKey("Data") ? externalTask.Variables["Data"].Value.ToString() : null;

            DataDescriptor descriptor = new DataDescriptor()
            {
                Table_Name = table,
                PrimaryKey = primaryKey,
                Data       = data != null?JsonConvert.DeserializeObject <IDictionary <string, JToken> >(data) : null
            };

            StringContent stringContent = new StringContent(JsonConvert.SerializeObject(descriptor), System.Text.Encoding.UTF8, "application/json");


            HttpResponseMessage response = new HttpResponseMessage();

            HandleRequestContext a = new HandleRequestContext(_httpClient);

            switch (action)
            {
            case "GET":
                string result = await a.Get(resultVariables, Postfix + "/" + descriptor.Table_Name + "/" + descriptor.PrimaryKey);

                resultVariables = JsonConvert.DeserializeObject <Dictionary <string, object> >(result);
                break;

            case "POST":
                resultVariables = await a.Post(resultVariables, Postfix, stringContent);

                break;

            case "PUT":
                resultVariables = await a.Put(resultVariables, Postfix, stringContent);

                break;
            }

            return(resultVariables);
        }
Beispiel #4
0
        /// <summary>
        ///
        /// </summary>
        /// <see cref="IHttpModule.HandleRequest(IHttpRequestContext)" />
        public IHttpModuleHandleRequestResult HandleRequest(IHttpRequestContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            HttpModuleHandleRequestResult result = new HttpModuleHandleRequestResult();

            result.RequestContext = context;

            try
            {
                BeforeHandleRequestContext beforeHandleCtx = new BeforeHandleRequestContext();
                {
                    beforeHandleCtx.Http = context;
                    beforeHandleCtx.InvokeAfterHandleRequest = true;
                    beforeHandleCtx.InvokeHandleRequest      = true;

                    this.OnBeforeHandleRequest(beforeHandleCtx);
                }

                HandleRequestContext handleCtx = new HandleRequestContext();
                bool requestWasHandled         = false;
                {
                    handleCtx.Http = context;
                    handleCtx.InvokeAfterHandleRequest = beforeHandleCtx.InvokeAfterHandleRequest;

                    if (beforeHandleCtx.InvokeHandleRequest)
                    {
                        this.OnHandleRequest(handleCtx);
                        requestWasHandled = true;
                    }
                }

                if (handleCtx.InvokeAfterHandleRequest)
                {
                    AfterHandleRequestContext afterHandleCtx = new AfterHandleRequestContext();
                    afterHandleCtx.RequestWasHandled = requestWasHandled;
                    {
                        afterHandleCtx.Http = context;

                        this.OnAfterHandleRequest(afterHandleCtx);
                    }
                }

                result.Errors = new Exception[0];
            }
            catch (Exception ex)
            {
                AggregateException aggEx = ex as AggregateException;
                if (aggEx == null)
                {
                    aggEx = new AggregateException(new Exception[] { ex });
                }

                result.Errors = CollectionHelper.AsArray(aggEx.Flatten().InnerExceptions);
            }

            return(result);
        }