Beispiel #1
0
        public static IEnumerable <object> GetTypeaheadSource <T>(this object source,
                                                                  MyFormHandler myFormHandler,
                                                                  TypeaheadRequest <T> request = null)
        {
            if (source is IEnumerable <object> )
            {
                return(source.CastTObject <IEnumerable <object> >());
            }
            if (request != null)
            {
                var list = new Dictionary <string, object> {
                    { "query", request.Query }, { "ids", request.Ids }
                };
                var obj = JsonConvert.SerializeObject(list);

                var dataSource  = source.ToString();
                var formRequest = new InvokeForm.Request
                {
                    Form             = dataSource,
                    InputFieldValues = obj
                };

                try
                {
                    var result = Task.Run(
                        () => myFormHandler.InvokeFormAsync(new[] { formRequest }));

                    var response = result.Result;

                    var typeahead = response[0].Data.CastTObject <TypeaheadResponse <object> >();

                    if (typeahead != null)
                    {
                        return(typeahead.Items);
                    }
                }
                catch (AggregateException ex)
                {
                    ex.ThrowInnerException();
                }
            }
            return(new List <object>());
        }
Beispiel #2
0
        private async Task <InvokeForm.Response> HandleFormAsync(FormMetadata formMetadata, List <FormInputManager> inputsManager, object obj)
        {
            try
            {
                var request = new InvokeForm.Request
                {
                    Form             = formMetadata.Id,
                    InputFieldValues = obj
                };
                // run on form posting events
                EventsManager.OnFormPostingEvent(formMetadata, inputsManager);

                object resultData = null;
                if (this.UiMetadataWebApi != null)
                {
                    var result = await this.InvokeFormAsync(new[] { request });

                    if (result != null)
                    {
                        resultData = result[0].Data;
                    }
                }
                else
                {
                    var response = await this.Mediator.Send(request);

                    resultData = response.Data;
                }

                // run on response received events
                EventsManager.OnResponseReceivedEvent(formMetadata, inputsManager, resultData);

                return(new InvokeForm.Response
                {
                    Data = resultData
                });
            }
            catch (Exception ex)
            {
                this.ShowToast(ex.Message);
                return(null);
            }
        }
Beispiel #3
0
        public async Task <FileResult> ExportToExcel(string form, string field)
        {
            var urlDecode = this.Request.Query.ToJObject();

            var request = new InvokeForm.Request
            {
                Form             = form,
                InputFieldValues = urlDecode
            };
            var data = await this.mediator.Send(request);

            var metadata = this.Metadata(form);

            var filename = $"{form}-{DateTime.Today:dd.MM.yyyy}";

            var excelFile = new
                            ExcelEngine(new AppExcelColumnRenderer())
                            .BuildExcelFile(data.Data, metadata, field);

            return(this.File(excelFile.Data, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename + ".xlsx"));
        }
Beispiel #4
0
        public async Task <InvokeForm.Response> HandleFormAsync(FormMetadata formMetadata, List <FormInputManager> inputsManager)
        {
            var obj     = this.GetFormValues(inputsManager);
            var request = new InvokeForm.Request
            {
                Form             = formMetadata.Id,
                InputFieldValues = obj
            };

            // run on form posting events
            EventsManager.OnFormPostingEvent(formMetadata, inputsManager);

            object resultData = null;

            if (this.UiMetadataWebApi != null)
            {
                var result = await this.InvokeFormAsync(new[] { request });

                if (result != null)
                {
                    resultData = result[0].Data;
                }
            }
            else
            {
                var response = await this.Mediator.Send(request);

                resultData = response.Data;
            }

            // run on response received events
            EventsManager.OnResponseReceivedEvent(formMetadata, inputsManager, resultData);

            return(new InvokeForm.Response
            {
                Data = resultData
            });
        }