public static ListView Refresh(this ListView listView, IList <object> newItemList, OutputFieldMetadata outputField, MyFormHandler myFormHandler, Dictionary <string, FormMetadata> allFormsMetadata) { var outputFieldProperty = outputField.CustomProperties.GetCustomProperty <IEnumerable <OutputFieldMetadata> >("columns"); var adapter = new ListCustomAdapter <object>(newItemList.ToList(), outputFieldProperty, myFormHandler); listView.Adapter = adapter; return(listView); }
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>()); }
public static ListView IntializeListView(this IList <object> itemList, OutputFieldMetadata outputField, MyFormHandler myFormHandler) { var listView = new ListView(Application.Context); var outputFieldProperty = outputField.CustomProperties.GetCustomProperty <IEnumerable <OutputFieldMetadata> >("columns"); var adapter = new ListCustomAdapter <object>(itemList.ToList(), outputFieldProperty, myFormHandler); listView.Adapter = adapter; return(listView); }
public ListCustomAdapter(List <T> objectList, IEnumerable <OutputFieldMetadata> outputFieldProperty, MyFormHandler myFormHandler) { this.ObjectList = objectList; this.OutputFieldProperty = outputFieldProperty; this.MyFormHandler = myFormHandler; }