コード例 #1
0
 //====================================================================================================
 /// <summary>
 /// Return a portal object read from the Db based on the portal guid argument
 /// </summary>
 /// <param name="cp"></param>
 /// <param name="portalRecordGuid"></param>
 /// <returns></returns>
 public portalDataClass loadPortalFromDb(CPBaseClass CP, string selectSqlCriteria )
 {
     portalDataClass portal = new portalDataClass();
     portal.featureList = new Dictionary<string, portalFeatureDataClass>();
     try
     {
         //portalFeatureDataClass firstFeature = null;
         CPCSBaseClass csMan = CP.CSNew();
         CPCSBaseClass csFeature = CP.CSNew();
         string defaultConfigJson;
         if (!csMan.Open("portals", selectSqlCriteria,"id"))
         {
             //
             // create demo portal
             //
             csMan.Close();
             portal.name = "Empty";
             portal.guid = "";
             portal.id = 0;
             portal.featureList = new Dictionary<string, portalFeatureDataClass>();
             portalFeatureDataClass feature = new portalFeatureDataClass();
             feature.addonId = 0;
             feature.dataContentId = 0;
             feature.guid = "";
             feature.heading = "Sample";
             feature.id = 0;
             feature.name = "Demo";
             feature.parentFeatureId = 0;
             feature.sortOrder = "";
         }
         else
         {
             //
             // load portal
             //
             portal.name = csMan.GetText("name");
             portal.guid = csMan.GetText("ccguid");
             portal.id = csMan.GetInteger("id");
             int portalDefaultFeatureId = csMan.GetInteger("defaultFeatureId");
             defaultConfigJson = csMan.GetText("defaultConfigJson");
             csMan.Close();
             //
             // load portal links
             //
             portal.linkedPortals = new List<portalDataClass>();
             string sql = "select p.id,p.ccguid,p.name from ccPortals p left join ccPortalLinks l on l.toPortalId=p.id where l.fromPortalId=" + portal.id;
             if (csMan.OpenSQL(sql))
             {
                 do
                 {
                     portalDataClass linkedPortal = new portalDataClass();
                     linkedPortal.id = csMan.GetInteger("id");
                     //linkedPortal.guid = csMan.GetText( "ccguid");
                     //if (string.IsNullOrEmpty(linkedPortal.guid))
                     //{
                     //    linkedPortal.guid = CP.Utils.CreateGuid();
                     //    CP.Db.ExecuteSQL("update ccPortals set ccguid='"+linkedPortal.guid+"' where id=" + csMan.GetInteger("id"));
                     //}
                     linkedPortal.name = csMan.GetText("name");
                     portal.linkedPortals.Add( linkedPortal);
                     csMan.GoNext();
                 } while (csMan.OK());
             }
             csMan.Close();
             //
             // load features
             //
             if (!csFeature.Open("portal features", "portalid=" + portal.id, "sortOrder", true ))
             {
                 //
                 // no features found, load default portal features
                 //
                 csFeature.Close();
                 if (string.IsNullOrEmpty(defaultConfigJson))
                 {
                     //
                     // no default, fake a tab
                     //
                     portal.featureList = new Dictionary<string, portalFeatureDataClass>();
                     portalFeatureDataClass feature = new portalFeatureDataClass();
                     feature.addonId = 0;
                     feature.dataContentId = 0;
                     feature.guid = "";
                     feature.heading = "Sample";
                     feature.id = 0;
                     feature.name = "Demo";
                     feature.parentFeatureId = 0;
                     feature.sortOrder = "";
                     feature.addPadding = false;
                 }
                 else
                 {
                     //
                     // load default and save to Db
                     //
                     System.Web.Script.Serialization.JavaScriptSerializer msJson = new System.Web.Script.Serialization.JavaScriptSerializer();
                     //string configJson = msJson.Serialize(portal);
                     portal = msJson.Deserialize<portalDataClass>(defaultConfigJson);
                     savePortalToDb(CP, portal);
                     //
                     if (!string.IsNullOrEmpty(portal.defaultFeature.guid))
                     {
                         if (csFeature.Open("portal features", "ccguid=" + CP.Db.EncodeSQLText(portal.defaultFeature.guid)))
                         {
                             portal.defaultFeature = loadPortalFeatureFromCs(CP, csFeature);
                         }
                         csFeature.Close();
                     }
                 }
             }
             else
             {
                 //
                 // load features from Db
                 //
                 CPCSBaseClass cs2 = CP.CSNew();
                 do
                 {
                     portalFeatureDataClass feature = loadPortalFeatureFromCs(CP, csFeature);
                     portal.featureList.Add(csFeature.GetText("ccguid"), feature);
                     if (portal.defaultFeature == null)
                     {
                         portal.defaultFeature = feature;
                     }
                     if (portalDefaultFeatureId == feature.id)
                     {
                         portal.defaultFeature = feature;
                     }
                     csFeature.GoNext();
                 } while (csFeature.OK());
                 csFeature.Close();
             }
         }
     }
     catch (Exception ex)
     {
         CP.Site.ErrorReport(ex, "exception in loadPortal");
     }
     return portal;
 }
コード例 #2
0
 //====================================================================================================
 /// <summary>
 /// create a feature list box
 /// </summary>
 /// <param name="CP"></param>
 /// <param name="feature"></param>
 /// <returns></returns>
 string getFeatureList(CPBaseClass CP, portalDataClass portal,  portalFeatureDataClass feature, string frameRqs )
 {
     string returnBody = "";
     string items = "";
     string qs;
     try
     {
         string activeNavHeading;
         activeNavHeading = feature.heading;
         formSimpleClass content = new formSimpleClass();
         foreach (KeyValuePair<string, portalFeatureDataClass> kvp in portal.featureList)
         {
             portalFeatureDataClass liFeature = kvp.Value;
             if ((liFeature.parentFeatureId == feature.id) && (liFeature.parentFeatureId != 0))
             {
                 string featureHeading = liFeature.heading;
                 if (string.IsNullOrEmpty(featureHeading))
                 {
                     featureHeading = liFeature.name;
                 }
                 if (liFeature.dataContentId != 0)
                 {
                     qs = frameRqs;
                     qs = CP.Utils.ModifyQueryString(qs, "addonid", "", false);
                     qs = CP.Utils.ModifyQueryString(qs, rnDstFeatureGuid, "", false);
                     qs = CP.Utils.ModifyQueryString(qs, "cid", liFeature.dataContentId.ToString());
                     items += "<li><a target=\"_blank\" href=\"?" + qs + "\">" + featureHeading + "</a></li>";
                 }
                 else
                 {
                     qs = frameRqs;
                     qs = CP.Utils.ModifyQueryString(qs, rnDstFeatureGuid, liFeature.guid);
                     items += "<li><a href=\"?" + qs + "\">" + featureHeading + "</a></li>";
                 }
             }
         }
         content.title = feature.heading;
         content.body = "<ul class=\"afwButtonList\">" + items + "</ul>";
         returnBody = content.getHtml(CP);
     }
     catch (Exception ex)
     {
         CP.Site.ErrorReport(ex, "adminFramework.portalClass.getFeatureList exception");
     }
     return returnBody;
 }
コード例 #3
0
 //====================================================================================================
 /// <summary>
 /// load a feature from the current row of a contentSet
 /// </summary>
 /// <param name="CP"></param>
 /// <param name="csFeature"></param>
 /// <returns></returns>
 public portalFeatureDataClass loadPortalFeatureFromCs(CPBaseClass CP, CPCSBaseClass csFeature)
 {
     portalFeatureDataClass feature = new portalFeatureDataClass();
     try
     {
         CPCSBaseClass cs2 = CP.CSNew();
         //
         feature.id = csFeature.GetInteger("id");
         feature.name = csFeature.GetText("name");
         feature.heading = csFeature.GetText("heading");
         feature.sortOrder = csFeature.GetText("sortOrder");
         feature.addPadding = csFeature.GetBoolean("addPadding");
         if (string.IsNullOrEmpty(feature.heading))
         {
             feature.heading = feature.name;
         }
         feature.guid = csFeature.GetText("ccguid");
         if (string.IsNullOrEmpty(feature.guid))
         {
             feature.guid = CP.Utils.CreateGuid();
             csFeature.SetField("ccguid", feature.guid);
         }
         //
         feature.addonId = csFeature.GetInteger("addonId");
         if (feature.addonId != 0)
         {
             if (cs2.Open("add-ons", "id=" + feature.addonId))
             {
                 feature.addonGuid = cs2.GetText("ccguid");
                 if (string.IsNullOrEmpty(feature.addonGuid))
                 {
                     feature.addonGuid = CP.Utils.CreateGuid();
                     cs2.SetField("ccguid", feature.addonGuid);
                 }
             }
             cs2.Close();
         }
         //
         feature.dataContentId = csFeature.GetInteger("dataContentId");
         if (feature.dataContentId != 0)
         {
             if (cs2.Open("content", "id=" + feature.dataContentId))
             {
                 feature.dataContentGuid = cs2.GetText("ccguid");
                 if (string.IsNullOrEmpty(feature.dataContentGuid))
                 {
                     feature.dataContentGuid = CP.Utils.CreateGuid();
                     cs2.SetField("ccguild", feature.dataContentGuid);
                 }
             }
             cs2.Close();
         }
         //
         feature.parentFeatureId = csFeature.GetInteger("parentFeatureId");
         if (feature.parentFeatureId != 0)
         {
             if (cs2.Open("portal features", "id=" + feature.parentFeatureId))
             {
                 feature.parentFeatureGuid = cs2.GetText("ccguid");
                 if (string.IsNullOrEmpty(feature.parentFeatureGuid))
                 {
                     feature.parentFeatureGuid = CP.Utils.CreateGuid();
                     cs2.SetField("ccguid", feature.parentFeatureGuid);
                 }
             }
             cs2.Close();
         }
         //
     }
     catch (Exception ex)
     {
         CP.Site.ErrorReport(ex, "exception in loadPortal");
     }
     return feature;
 }