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