protected override async Task NavigateToFabLink() { if (IsTapped || EbPageHelper.IsShortTap()) { return; } IsTapped = true; Loader msgLoader = EbLayout.GetMessageLoader(); msgLoader.IsVisible = true; msgLoader.Message = "Loading..."; string linkRefID = Visualization.UseLinkSettings ? Visualization.LinkRefId : Visualization.FabLinkRefId; EbMobilePage page = EbPageHelper.GetPage(linkRefID); if (page != null && page.Container is EbMobileForm form) { form.NetworkType = page.NetworkMode; string failMsg = await EbPageHelper.ValidateFormRendering(form, msgLoader, this.ContextRecord); if (failMsg == null) { await App.Navigation.NavigateMasterAsync(new FormRender(page, Visualization, ContextRecord)); } else { await App.Navigation.NavigateMasterAsync(new Redirect(failMsg)); } } msgLoader.IsVisible = false; IsTapped = false; }
public ListRender(EbMobilePage Page, EbDataRow row) { InitializeComponent(); BindingContext = ViewModel = new ListViewModel(Page, row); ViewModel.EbLayout = EbLayout; EbLayout.ShowLoader(); }
public static List <EbMobileForm> GetOfflineForms() { List <EbMobileForm> ls = new List <EbMobileForm>(); var pages = App.Settings.MobilePages ?? new List <MobilePagesWraper>(); foreach (MobilePagesWraper wraper in pages) { EbMobilePage mpage = wraper.GetPage(); if (mpage != null && mpage.Container is EbMobileForm form) { if (string.IsNullOrEmpty(form.WebFormRefId)) { continue; } form.DisplayName = mpage.DisplayName; if (mpage.NetworkMode == NetworkMode.Offline || mpage.NetworkMode == NetworkMode.Mixed) { ls.Add(form); } } } return(ls); }
public async void InitNavigation() { EbMobileSettings settings = App.Settings.CurrentApplication?.AppSettings; IMasterPage master; if (settings != null && !string.IsNullOrEmpty(settings.DashBoardRefId)) { EbMobilePage page = EbPageHelper.GetPage(settings.DashBoardRefId); if (page != null && page.Container is EbMobileDashBoard) { master = new DashBoardRender(page); } else { EbLog.Info("Default application dashboard not found, check object permissions"); master = new Home(); } } else { master = new Home(); } master.UpdateMasterLayout(); await Detail.Navigation.PushAsync((Page)master); }
public static EbMobileForm ResolveDependency(this EbMobileForm sourceForm) { try { EbMobilePage autogenvis = EbPageHelper.GetPage(sourceForm.AutoGenMVRefid); if (autogenvis != null) { string linkref = (autogenvis.Container as EbMobileVisualization).LinkRefId; if (!string.IsNullOrEmpty(linkref)) { EbMobilePage linkpage = EbPageHelper.GetPage(linkref); if (linkpage != null && linkpage.Container is EbMobileVisualization viz) { EbMobilePage innerlink = EbPageHelper.GetPage(viz.LinkRefId); if (innerlink != null && innerlink.Container is EbMobileForm mf) { return(mf); } } } } } catch (Exception ex) { EbLog.Info("Failed to resolve form dependencies"); EbLog.Error(ex.Message); } return(null); }
public FormRenderVMR(EbMobilePage page, EbMobileVisualization source, EbDataRow contextrow) : base(page) { this.Mode = FormMode.REF; context = source; contextRow = contextrow; }
public FormRenderVMPRE(EbMobilePage page, List <EbMobileDataColToControlMap> linkMap, EbDataRow contextrow) : base(page) { this.Mode = FormMode.PREFILL; linkFormParameters = linkMap; Context = contextrow; }
public SignUp() { InitializeComponent(); EbMobilePage page = App.Settings.CurrentSolution.GetSignUpPage(); BindingContext = viewModel = new SignUpViewModel(page); }
public FormRenderVME(EbMobilePage page, int rowid) : base(page) { Mode = FormMode.EDIT; RowId = rowid; SubmitButtonText = "Save Changes"; IsEditButtonVisible = true; IsSaveButtonVisible = false; }
public LinkedListRender(EbMobilePage page, EbMobileVisualization context, EbDataRow row) { InitializeComponent(); BindingContext = ViewModel = new LinkedListViewModel(page, context, row); ViewModel.EbLayout = EbLayout; this.DrawContextHeader(row, context); EbLayout.ShowLoader(); }
public static async Task <EbPageRenderer> GetRenderer(EbMobilePage page) { EbPageRenderer renderor = new EbPageRenderer(); EbMobileContainer container = page.Container; try { if (container is EbMobileForm mobileForm) { mobileForm.NetworkType = page.NetworkMode; renderor.Message = await ValidateFormRendering(mobileForm, null); renderor.IsReady = renderor.Message == null; renderor.Renderer = new FormRender(page); } else if (container is EbMobileVisualization viz) { if (viz.Type == MobileVisualizationType.Dynamic) { renderor.Renderer = new ListRender(page); } else { renderor.Renderer = new StaticListRender(page); } } else if (container is EbMobileDashBoard) { renderor.Renderer = new DashBoardRender(page); } else if (container is EbMobileDashBoard) { renderor.Renderer = new PdfRender(page); } else { renderor.Message = "Inavlid container type"; renderor.IsReady = false; } } catch (Exception ex) { EbLog.Error(ex.Message); renderor.IsReady = false; renderor.Message = "Unable to load page"; } if (renderor.Renderer != null) { renderor.IsReady = true; } return(renderor); }
private async Task EditButtonClicked() { EbMobilePage page = EbPageHelper.GetPage(Context.SourceFormRefId); if (page != null) { int id = Convert.ToInt32(ContextRecord["id"]); if (id != 0) { FormRender Renderer = new FormRender(page, id); await App.Navigation.NavigateMasterAsync(Renderer); } } }
private EbMobilePage DeserializeJsonPage() { EbMobilePage mpage = null; try { string regexed = EbSerializers.JsonToNETSTD(this.Json); mpage = EbSerializers.Json_Deserialize <EbMobilePage>(regexed); } catch (Exception ex) { EbLog.Info("DeserializeJsonPage error inside pagewrapper"); EbLog.Error(ex.Message); } return(mpage); }
public static ContentPage GetPageByContainer(EbMobilePage page) { ContentPage renderer = null; try { switch (page.Container) { case EbMobileForm f: renderer = new FormRender(page); break; case EbMobileVisualization v: if (v.Type == MobileVisualizationType.Dynamic) { renderer = new ListRender(page); } else { renderer = new StaticListRender(page); } break; case EbMobileDashBoard d: renderer = new DashBoardRender(page); break; case EbMobilePdf p: renderer = new PdfRender(page); break; default: EbLog.Error("inavlid container type"); break; } } catch (Exception ex) { EbLog.Error(ex.Message); } return(renderer); }
private async Task ResolveRedirection(EbNFLink link) { if (string.IsNullOrEmpty(link.LinkRefId)) { EbLog.Info("Intentaction link type is page but linkrefid null"); return; } EbMobilePage page = EbPageHelper.GetPage(link.LinkRefId); if (page != null) { EbLog.Info("Intentaction page rendering :" + page.DisplayName); ContentPage renderer = EbPageHelper.GetPageByContainer(page); await App.Navigation.NavigateMasterAsync(renderer); } else { EbLog.Info("Intentaction page not found for linkrefid:" + link.LinkRefId); } }
public FormRenderVME(EbMobilePage page, int rowId, WebformData data) : base(page) { Mode = FormMode.EDIT; RowId = rowId; webFormData = data; }
public static ContentPage ResolveByContext(EbMobileVisualization vis, EbDataRow row, EbMobilePage page) { ContentPage renderer = null; EbMobileContainer container = page.Container; try { if (container is EbMobileForm form) { if (vis.FormMode == WebFormDVModes.New_Mode) { string msg = GetFormRenderInvalidateMsg(page.NetworkMode); if (msg != null && !form.RenderAsFilterDialog) { renderer = new Redirect(msg, MessageType.disconnected); } else { renderer = new FormRender(page, vis.LinkFormParameters, row); } } else { EbMobileDataColToControlMap map = vis.FormId; if (map == null) { EbLog.Info("form id must be set"); throw new Exception("Form rendering exited! due to null value for 'FormId'"); } else { int id = Convert.ToInt32(row[map.ColumnName]); if (id <= 0) { EbLog.Info($"formid has invalid value {id}, switching to new mode"); renderer = new FormRender(page, vis.LinkFormParameters, row); } else { EbLog.Info($"formid has value {id}, rendering edit mode"); renderer = new FormRender(page, id); } } } } else if (container is EbMobileVisualization) { renderer = new LinkedListRender(page, vis, row); } else if (container is EbMobileDashBoard) { renderer = new DashBoardRender(page); } } catch (Exception ex) { EbLog.Error(ex.Message); } return(renderer); }
public ListViewModel(EbMobilePage page) : base(page) { }
public ListViewModel(EbMobilePage page, EbDataRow row) : base(page) { this.ContextRecord = row; }
//new mode public FormRender(EbMobilePage page) { InitializeComponent(); BindingContext = viewModel = new FormRenderViewModel(page); }
public StaticListRender(EbMobilePage page) { InitializeComponent(); BindingContext = viewModel = new StaticListViewModel(page); }
//prefill/new mode public FormRender(EbMobilePage page, List <EbMobileDataColToControlMap> linkMap, EbDataRow contextRow) { InitializeComponent(); BindingContext = viewModel = new FormRenderVMPRE(page, linkMap, contextRow); }
public LinkedListViewModel(EbMobilePage page, EbMobileVisualization context, EbDataRow row) : base(page) { this.Context = context; this.ContextRecord = row; }
public PdfRender(EbMobilePage page) { InitializeComponent(); Renderer = new PdfRenderViewModel(page); this.BindingContext = Renderer; }
public PdfRenderViewModel(EbMobilePage page) : base(page) { }
//reference mode public FormRender(EbMobilePage page, EbMobileVisualization context, EbDataRow contextRow) { InitializeComponent(); BindingContext = viewModel = new FormRenderVMR(page, context, contextRow); }
public DynamicBaseViewModel(EbMobilePage page) { this.Page = page; this.PageTitle = page.DisplayName; this.NetworkType = page.NetworkMode; }
//edit public FormRender(EbMobilePage page, int rowId, WebformData data) { InitializeComponent(); BindingContext = viewModel = new FormRenderVME(page, rowId, data); }
public DashBoardRender(EbMobilePage Page) { InitializeComponent(); BindingContext = viewModel = new DashBoardRenderViewModel(Page); }
private async Task <bool> GetLatestAutoId(List <AppData> Applications) { List <EbMobileAutoIdData> autoIdData = new List <EbMobileAutoIdData>(); try { foreach (AppData app in Applications) { foreach (MobilePagesWraper mobPageWrap in app.MobilePages) { EbMobilePage page = mobPageWrap.GetPage(); if (page.Container is EbMobileForm form) { EbMobileAutoId autoId = (EbMobileAutoId)form.ChildControls.Find(e => e is EbMobileAutoId); if (autoId != null && !string.IsNullOrWhiteSpace(form.TableName)) { string query = autoId.PrefixExpr?.GetCode(); if (!string.IsNullOrWhiteSpace(query) && page.NetworkMode == NetworkMode.Offline) { EbDataTable dt = App.DataDB.DoQuery(query); if (dt.Rows.Count > 0) { autoIdData.Add(new EbMobileAutoIdData() { Table = form.TableName, Column = autoId.Name, Prefix = dt.Rows[0][0]?.ToString() }); } } } } } } if (autoIdData.Count > 0) { RestRequest request = new RestRequest(ApiConstants.PULL_LATEST_AUTOID, Method.POST); RestClient client = new RestClient(App.Settings.RootUrl) { Timeout = ApiConstants.TIMEOUT_IMPORT }; request.AddParameter("data", JsonConvert.SerializeObject(autoIdData)); request.AddHeader(AppConst.BTOKEN, App.Settings.BToken); request.AddHeader(AppConst.RTOKEN, App.Settings.RToken); IRestResponse response = await client.ExecuteAsync(request); if (response.IsSuccessful) { EbDataSet ds = new EbDataSet(); EbMobileAutoIdDataResponse resp = JsonConvert.DeserializeObject <EbMobileAutoIdDataResponse>(response.Content); ds.Tables.Add(resp.OfflineData); DBService.Current.ImportData(ds); EbLog.Info("GetLatestAutoId success"); return(true); } else { EbLog.Warning("GetLatestAutoId failed"); } } } catch (Exception ex) { EbLog.Error("Error in GetLatestAutoId: " + ex.Message); } return(autoIdData.Count > 0 ? false : true); }