//==================================================================================================== /// <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; }
//==================================================================================================== /// <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; }
//==================================================================================================== /// <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; }