Example #1
0
        private async Task <JsonResponse> Invoke(Isop.Client.Transfer.Method method, Dictionary <string, string> form, Func <Request.Configure, Request.Configure> action)
        {
            var uri = new Uri(BasePath);
            var url = uri.Scheme + "://" + uri.Host + (uri.IsDefaultPort ? "" : ":" + uri.Port);

            return(await JsonClient.Request(new Request(url + method.Url, r => action(r.Post().Form(form)))));
        }
Example #2
0
        public Task<ViewModels.IReceiveResult> Invoke(Root root, Method method, ViewModels.IReceiveResult result)
        {
            result.Result = "";
            try
            {
                var parsed = Build.Controller(method.ClassName)
                               .Action(method.Name)
                               .Parameters(method.Parameters.ToDictionary(p => p.Name, p => p.Value));
                var returned = parsed.Invoke();

                foreach (var yielded in returned)
                {
                    result.Result += yielded;
                }
            }
            catch (TypeConversionFailedException ex)
            {
                var errorObject = new TypeConversionFailed
                {
                    Message = ex.Message,
                    Argument = ex.Argument,
                    TargetType = ex.TargetType.ToString(),
                    Value = ex.Value
                };
                result.Errors = new[] { errorObject };
            }
            catch (MissingArgumentException ex)
            {
                result.Errors = ex.Arguments
                    .Select(a => new MissingArgument { Message = ex.Message, Argument = a })
                    .ToArray();
            }
            return Task.FromResult(result);
        }
Example #3
0
 public async Task<JsonResponse> Invoke(Root root, Method method, Func<Request.Configure, Request.Configure> action)
 {
     var form = method.Parameters.ToDictionary(p => p.Name, p => p.Value);
     foreach (var global in root.GlobalParameters)
     {
         if (!form.ContainsKey(global.Name))
         {
             form.Add(global.Name, global.Value);
         }
     }
     return await Invoke(method, form, action);
 }
Example #4
0
 public MethodViewModel(Isop.Client.Transfer.Method m)
 {
     Method     = m;
     Parameters = m.Parameters.Select(p => new ParamViewModel(p)).ToArray();
 }