public async void AutoFill() { if (dataGrid.FormRenderMode == FormMode.EDIT) { return; } if (dataGrid.NetworkType == NetworkMode.Online && !string.IsNullOrEmpty(dataGrid.DataSourceRefId)) { try { MobileDataResponse data = await DataService.Instance.GetDataAsync(dataGrid.DataSourceRefId, 0, 0, dataGrid.Context?.ConvertToParams(), null, null, false, true); if (data != null && data.Data != null && data.Data.Tables.HasLength(2)) { SetValue(data.Data.Tables[1]); } } catch (Exception ex) { EbLog.Error("DataGrid autofill api error : " + ex.Message); } } else if ((dataGrid.NetworkType == NetworkMode.Offline || dataGrid.NetworkType == NetworkMode.Online) && !string.IsNullOrWhiteSpace(dataGrid.OfflineQuery?.Code)) { try { string sql = HelperFunctions.B64ToString(dataGrid.OfflineQuery.Code).TrimEnd(CharConstants.SEMICOLON); List <Param> Param = dataGrid.Context?.ConvertToParams() ?? new List <Param>(); List <DbParameter> dbParameters = new List <DbParameter>(); foreach (Param _p in Param) { dbParameters.Add(new DbParameter { ParameterName = _p.Name, Value = _p.Value, DbType = Convert.ToInt32(_p.Type) }); } EbDataTable dt = App.DataDB.DoQuery(sql, dbParameters.ToArray()); if (dt.Rows.Count > 0) { SetValue(dt); } } catch (Exception ex) { EbLog.Error("DataGrid autofill offline query error : " + ex.Message); } } }
public async void GetBindingData() { try { MobileDataResponse response = await DataService.Instance.GetDataAsync(this.DataSourceRefId, 0, 0, null, null, null, false); if (response.Data != null && response.Data.Tables.HasLength(2)) { InitView(response.Data.Tables[1]); } } catch (Exception ex) { EbLog.Error("Error at [AutoFill] : " + ex.Message); } }
public override string GetDisplayName4DG(object valueMember) { if (IsSimpleSelect || valueMember == null) { return(null); } string strValue = valueMember?.ToString(); EbDataTable dt = null; if (this.NetworkType == NetworkMode.Offline) { dt = GetDataFromLocal(strValue); } else if (this.NetworkType == NetworkMode.Online) { Param param = new Param { Name = this.ValueMember.ColumnName, Type = ((int)this.ValueMember.Type).ToString(), Value = strValue }; try { MobileDataResponse response = DataService.Instance.GetData(this.DataSourceRefId, 1, 0, new List <Param> { param }, null, null, false); if (response.Data != null && response.Data.Tables.HasLength(2)) { dt = response.Data.Tables[1]; } } catch (Exception ex) { EbLog.Info("power select failed to resolve display member from live"); EbLog.Error(ex.Message); } } if (dt != null && dt.Rows.Any()) { return(Convert.ToString(dt.Rows[0][DisplayMember.ColumnName])); } return(null); }
public async Task <EbDataSet> GetDataAsync(string refid) { if (!string.IsNullOrEmpty(refid)) { try { MobileDataResponse response = await DataService.Instance.GetDataFlatAsync(refid); return(response?.Data); } catch (Exception ex) { EbLog.Info("failed to fetch [dashboard] data"); EbLog.Error(ex.Message); } } return(null); }
private async Task <EbDataTable> GetDataFromCloud(List <Param> parameters) { try { MobileDataResponse response = await DataService.Instance.GetDataAsync(this.DataSourceRefId, 1, 0, parameters, null, null, false); if (response.Data != null && response.Data.Tables.HasLength(2)) { return(response.Data.Tables[1]); } } catch (Exception ex) { EbLog.Info("power select failed to resolve display member from live"); EbLog.Error(ex.Message); } return(null); }
public static async Task <string> ValidateFormRendering(EbMobileForm form, Loader loader, EbDataRow context = null) { string failMsg = null; if (!Utils.IsNetworkReady(form.NetworkType)) { failMsg = "Not connected to internet!"; } else if (!string.IsNullOrEmpty(form.RenderValidatorRefId)) { try { if (loader != null) { loader.Message = "Validating..."; } List <Param> cParams = form.GetRenderValidatorParams(context); cParams.Add(new Param { Name = "eb_loc_id", Type = "11", Value = App.Settings.CurrentLocation.LocId.ToString() }); MobileDataResponse data = await DataService.Instance.GetDataAsync(form.RenderValidatorRefId, 0, 0, cParams, null, null, false); if (data.HasData() && data.TryGetFirstRow(1, out EbDataRow row)) { if (bool.TryParse(row[0]?.ToString(), out bool b) && b) { EbLog.Info("Form render validation return true"); } else { failMsg = form.MessageOnFailed; EbLog.Info("Form render validation return false"); } } else { failMsg = "Validation api returned empty data"; EbLog.Info("before render api returned empty row collection"); } } catch (Exception ex) { failMsg = "Exception in validation api: " + ex.Message; EbLog.Error("Error at form render validation api call"); EbLog.Info(ex.Message); } } if (failMsg == null && form.AutoSyncOnLoad && !form.RenderAsFilterDialog) { LocalDBServie service = new LocalDBServie(); if (!App.Settings.SyncInProgress) { App.Settings.SyncInProgress = true; failMsg = await service.PushData(loader); App.Settings.SyncInProgress = false; } else { failMsg = "Internal error. (SyncInProgress is true)"; EbLog.Info("ValidateFormRendering -> SyncInProgress is true"); } } return(failMsg); }