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