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>()); }
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); } }
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")); }
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 }); }