Exemple #1
0
    void RenderSiteMap()
    {
        DivGraphs.Visible = true;
        IEnumerable <SiteMap> siteMap = Select <SiteMap>(PXSelectOrderBy <SiteMap, OrderBy <Asc <SiteMap.screenID> > > .Select(new PXGraph()));

        IList <string>        lookup = ToLookup(siteMap);
        IEnumerable <SiteMap> hidden = GetHiddenScreens(lookup);

        HtmlTableBuilder b = new HtmlTableBuilder();

        b.Table = TableGraphs;

        foreach (SiteMap rowSiteMap in Concat(siteMap, hidden))
        {
            b.AddRow();

            b.AddCellHref(rowSiteMap.ScreenID, rowSiteMap.Url);
            b.AddCell(rowSiteMap.Graphtype);

            bool isTypeFound = false;
            if (!String.IsNullOrEmpty(rowSiteMap.Graphtype))
            {
                Type t = BuildManager.GetType(rowSiteMap.Graphtype, false);
                if (t != null)
                {
                    try
                    {
                        string apiGraphName = ServiceManager.GetGraphNameFromType(t);
                        isTypeFound = true;

                        try
                        {
                            //WsdlSchemaBuilder.CreateGraph(t);

                            //Activator.CreateInstance(t);
                            string graphUrl = GetUrl("graph", apiGraphName);
                            b.AddCellHref("Graph" + apiGraphName, graphUrl);
                        }
                        catch
                        {
                            b.AddCell("Graph" + apiGraphName + " - login?");
                        }
                    }
                    catch (ArgumentException) {}
                    catch (KeyNotFoundException) { }
                }
            }
            if (!isTypeFound)
            {
                b.AddCell(null);
                b.Row.Style.Add("display", "none");
            }



            b.AddCell(rowSiteMap.Title);
        }
    }
Exemple #2
0
    void RenderGraph(string id)
    {
        DivGraph.Visible      = true;
        HeaderGraph.InnerText = "Graph" + id + " members";
        HtmlTableBuilder viewsBuilder = new HtmlTableBuilder();

        viewsBuilder.Table = TableGraphViews;


        Type    t = ServiceManager.GetGraphType(id);
        PXGraph g;

        try
        {
            g = (PXGraph)PXGraph.CreateInstance(t);
        }
        catch
        {
            if (this.Context.User.Identity.IsAuthenticated)
            {
                throw;
            }

            PX.Export.Authentication.FormsAuthenticationModule.RedirectToLoginPage();
            return;
        }

        #region views
        MemberInfo[] views = ServiceManager.GetViews(t);
        foreach (FieldInfo view in views)
        {
            viewsBuilder.AddRow();
            viewsBuilder.AddCell("View" + view.Name);

            PXView v     = g.Views[view.Name];
            Type[] items = v.GetItemTypes();

            viewsBuilder.AddCell(null);

            foreach (Type row in items)
            {
                try
                {
                    string    apiName = ServiceManager.GetTableNameFromType(row);
                    HyperLink h       = new HyperLink();
                    h.NavigateUrl = GetUrl("row", apiName);
                    h.Text        = "[" + apiName + "]";
                    viewsBuilder.Cell.Controls.Add(h);
                    continue;
                }
                catch
                {
                }

                HyperLink hyperLink = new HyperLink();
                hyperLink.Text = row.Name;
                viewsBuilder.Cell.Controls.Add(hyperLink);
            }
            string strParams             = "";
            List <PXViewParameter> pinfo = v.EnumParameters();

            List <string> list = new List <string>();
            foreach (PXViewParameter p in pinfo)
            {
                string opt = "";

                string type = GetParamTypeName(g, p);
                if (p.Bql != null && p.Bql.HasDefault)
                {
                    opt = "opt ";
                }


                list.Add(String.Format("{0}{1} {2}", opt, type, p.Name));
            }
            //var parameters = v.GetParameterNames();


            if (pinfo.Count > 0)
            {
                strParams = "(" + String.Join(", ", list.ToArray()) + ")";
            }

            viewsBuilder.AddCell(strParams);
        }
        #endregion

        #region actions
        HtmlTableBuilder actionsBuilder = new HtmlTableBuilder();
        actionsBuilder.Table = TableGraphActions;

        string[] actions = ServiceManager.GetActions(t);
        foreach (string action in actions)
        {
            actionsBuilder.AddRow();
            actionsBuilder.AddCell("Action" + action);
            PXAction a     = g.Actions[action];
            Type     r     = a.GetRowType();
            string   table = ServiceManager.GetTableNameFromType(r);

            actionsBuilder.AddCell(table);
        }

        #endregion
    }
Exemple #3
0
    void RenderRow(string id)
    {
        DivMembers.Visible      = true;
        HeaderMembers.InnerText = String.Format("Row{0} members", id);
        HtmlTableBuilder b = new HtmlTableBuilder();

        b.Table = TableMembers;


        Type    table = ServiceManager.GetTableType(id);
        PXGraph g     = new PXGraph();
        PXCache cache = g.Caches[table];
        bool    isOdd = false;

        foreach (string field in cache.Fields)
        {
            ApiFieldInfo f = ApiFieldInfo.Create(cache, field);
            if (f == null)
            {
                continue;
            }



            b.AddRow();
            isOdd = !isOdd;
            if (isOdd)
            {
                b.Row.Style.Add("background-color", "white");
            }
            b.AddCell(field);

            string descr = "";

            PXFieldState state = (PXFieldState)cache.GetStateExt(null, field);
            if (state != null)
            {
                StringBuilder doc = new StringBuilder();
                if (state.PrimaryKey)
                {
                    doc.Append("PrimaryKey ");
                }
                if (state.PrimaryKey)
                {
                    b.Cell.Style.Add("font-weight", "bold");
                }
                if (state.Required == true)
                {
                    doc.Append("Required ");
                }
                if (!state.Enabled)
                {
                    doc.Append("NotEnabled ");
                }
                if (!state.Enabled)
                {
                    b.Cell.Style.Add("font-style", "italic");
                }
                if (state.IsReadOnly)
                {
                    doc.Append("IsReadOnly ");
                }
                //if (f.Visible) doc.Append("Visible ");
                doc.Append(f.Visibility + " ");
                descr = doc.ToString();
            }
            b.AddCell(f.DataType.Name);

            b.AddCell(descr);
            b.AddCell(state == null? "" :state.DisplayName);

            b.AddCell(Customization.RuntimeUtils.GetDacFieldAttributes(table, field));
        }
    }