protected void btnCheckOut_Click(object sender, EventArgs e)
    {
        // Ensure version before check-out
        using (CMSActionContext context = new CMSActionContext())
        {
            context.AllowAsyncActions = false;

            // Save first
            if (!SaveData())
            {
                return;
            }
        }

        try
        {
            SiteManagerFunctions.CheckOutWebPartLayout(layoutId);
        }
        catch (Exception ex)
        {
            lblError.Text    = GetString("WebPartLayout.ErrorCheckout") + ": " + ex.Message;
            lblError.Visible = true;
            return;
        }

        URLHelper.Redirect(URLHelper.AddParameterToUrl(URLHelper.Url.AbsoluteUri, "saved", "1"));
    }
示例#2
0
    /// <summary>
    /// Check out.
    /// </summary>
    protected void btnCheckOut_Click(object sender, EventArgs e)
    {
        // Ensure version before check-out
        using (CMSActionContext context = new CMSActionContext())
        {
            context.AllowAsyncActions = false;

            SetCurrentLayout(false, true);
        }

        try
        {
            WebPartInfo wpi = WebPartInfoProvider.GetWebPartInfo(webPart.WebPartType);
            if (wpi != null)
            {
                WebPartLayoutInfo wpli = WebPartLayoutInfoProvider.GetWebPartLayoutInfo(wpi.WebPartName, LayoutCodeName);
                if (wpli != null)
                {
                    SiteManagerFunctions.CheckOutWebPartLayout(wpli.WebPartLayoutID);
                }
            }
        }
        catch (Exception ex)
        {
            this.lblError.Text    = GetString("WebPartLayout.ErrorCheckout") + ": " + ex.Message;
            this.lblError.Visible = true;
            return;
        }

        SetCheckPanel(null);
    }
示例#3
0
    /// <summary>
    /// Check in.
    /// </summary>
    protected void btnCheckIn_Click(object sender, EventArgs e)
    {
        try
        {
            WebPartInfo wpi = WebPartInfoProvider.GetWebPartInfo(webPart.WebPartType);
            if (wpi != null)
            {
                WebPartLayoutInfo wpli = WebPartLayoutInfoProvider.GetWebPartLayoutInfo(wpi.WebPartName, LayoutCodeName);
                if (wpli != null)
                {
                    SiteManagerFunctions.CheckInWebPartLayout(wpli.WebPartLayoutID);
                    etaCode.ReadOnly = false;
                    etaCode.Enabled  = true;
                    etaCSS.ReadOnly  = false;
                    etaCSS.Enabled   = true;
                }
            }
        }
        catch (Exception ex)
        {
            this.lblError.Text    = GetString("WebPartLayout.ErrorCheckin") + ": " + ex.Message;
            this.lblError.Visible = true;
            return;
        }


        SetCheckPanel(null);
    }
示例#4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string siteName = CMSContext.CurrentSiteName;

        // Check enabled servers
        if (!ServerInfoProvider.IsEnabledServer(CMSContext.CurrentSiteID))
        {
            lblInfo.Text = GetString("ObjectStaging.NoEnabledServer");
        }
        else
        {
            // Check logging
            bool somethingLogged = false;

            // Site object tasks
            if (SettingsKeyProvider.GetBoolValue(siteName + ".CMSStagingLogObjectChanges"))
            {
                somethingLogged = true;
            }

            // Global object tasks
            if (SettingsKeyProvider.GetBoolValue("CMSStagingLogObjectChanges"))
            {
                somethingLogged = true;
            }

            // Document tasks
            if (SettingsKeyProvider.GetBoolValue(siteName + ".CMSStagingLogChanges"))
            {
                somethingLogged = true;
            }

            // Data tasks
            if (SettingsKeyProvider.GetBoolValue("CMSStagingLogDataChanges"))
            {
                somethingLogged = true;
            }

            if (somethingLogged)
            {
                // Check DLL required for for staging
                if (SiteManagerFunctions.CheckStagingDLL())
                {
                    URLHelper.Redirect("Frameset.aspx");
                }

                lblInfo.Text = GetString("ObjectStaging.RenameDll");
            }
            else
            {
                lblInfo.Text = GetString("AllTasks.TaskSeparator");
            }
        }
    }
示例#5
0
 private void CheckIn()
 {
     try
     {
         SiteManagerFunctions.CheckInTransformation(transformationId);
         URLHelper.Redirect(URLHelper.Url.AbsoluteUri);
     }
     catch (Exception ex)
     {
         ShowError(string.Concat(GetString("Transformation.ErrorCheckin"), ": ", ex.Message));
     }
 }
示例#6
0
 private void UndoCheckOut()
 {
     try
     {
         SiteManagerFunctions.UndoCheckOutTransformation(transformationId);
         URLHelper.Redirect(URLHelper.Url.AbsoluteUri);
     }
     catch (Exception ex)
     {
         lblError.Text    = string.Concat(GetString("Transformation.ErrorUndoCheckout"), ": ", ex.Message);
         lblError.Visible = true;
     }
 }
    protected void Page_Load(object sender, EventArgs e)
    {
        CurrentMaster.Title.TitleText  = ResHelper.GetString("socialnetworking.linkedin.accesstoken");
        CurrentMaster.Title.TitleImage = GetImageUrl("Others/LinkedIn/linkedin.png");

        string txtToken       = QueryHelper.GetString("txtToken", String.Empty);
        string consumerKey    = QueryHelper.GetString("apiKey", String.Empty);
        string consumerSecret = QueryHelper.GetString("apiSecret", String.Empty);
        string oauthToken     = QueryHelper.GetString("oauth_token", String.Empty);
        string error          = QueryHelper.GetString("oauth_problem", String.Empty);
        Dictionary <string, string> tokens = null;

        // Check Social networking DLL and settings
        if (!SiteManagerFunctions.CheckSocialNetworkingDLL())
        {
            lblStatus.Text = ResHelper.GetString("socialnetworking.renameddll");
        }
        else if ((String.IsNullOrEmpty(consumerKey) || String.IsNullOrEmpty(consumerSecret)) && String.IsNullOrEmpty(oauthToken) && String.IsNullOrEmpty(error))
        {
            lblStatus.Text = ResHelper.GetString("socialnetworking.linkedin.apisettingsmissing");
        }
        else
        {
            // If access denied
            if (error.EqualsCSafe("user_refused"))
            {
                // Close the window
                StringBuilder script = new StringBuilder("if(wopener.setAccessTokenToTextBox){ CloseDialog(); }");

                ScriptHelper.RegisterStartupScript(Page, typeof(string), "TokenScript", ScriptHelper.GetScript(script.ToString()));
            }
            else
            {
                // Authenticate and retrieve tokens
                tokens = LinkedInProvider.Authorize(txtToken);
                if (tokens.Count != 0)
                {
                    // Return access token values and close the window
                    StringBuilder script = new StringBuilder("if(wopener.setAccessTokenToTextBox){ wopener.setAccessTokenToTextBox('")
                                           .AppendFormat("{0}', '{1}', '{2}'); CloseDialog(); }}", txtToken, tokens["AccessToken"], tokens["AccessTokenSecret"]);
                    ScriptHelper.RegisterStartupScript(Page, typeof(string), "TokenScript", ScriptHelper.GetScript(script.ToString()));
                }
                else
                {
                    // Error occured while communicating with LinkedIn
                    lblStatus.Text = ResHelper.GetString("socialnetworking.authorizationerror");
                }
            }
        }
    }
    protected void btnCheckIn_Click(object sender, EventArgs e)
    {
        try
        {
            SiteManagerFunctions.CheckInWebPartLayout(layoutId);
        }
        catch (Exception ex)
        {
            lblError.Text    = GetString("WebPartLayout.ErrorCheckin") + ": " + ex.Message;
            lblError.Visible = true;
            return;
        }

        URLHelper.Redirect(URLHelper.Url.AbsoluteUri);
    }
示例#9
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Check enabled servers
        if (!ServerInfoProvider.IsEnabledServer(CMSContext.CurrentSiteID))
        {
            ShowInformation(GetString("ObjectStaging.NoEnabledServer"));
        }
        else
        {
            // Check DLL required for for staging
            if (SiteManagerFunctions.CheckStagingDLL())
            {
                URLHelper.Redirect("Frameset.aspx");
            }

            ShowInformation(GetString("ObjectStaging.RenameDll"));
        }
    }
示例#10
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Check enabled servers
        if (!ServerInfoProvider.IsEnabledServer(CMSContext.CurrentSiteID))
        {
            lblInfo.Text = GetString("ObjectStaging.NoEnabledServer");
        }
        else if (SettingsKeyProvider.GetBoolValue("CMSStagingLogDataChanges"))
        {
            // Check DLL required for for staging
            if (SiteManagerFunctions.CheckStagingDLL())
            {
                URLHelper.Redirect("Frameset.aspx");
            }

            lblInfo.Text = GetString("ObjectStaging.RenameDll");
        }
        else
        {
            lblInfo.Text = GetString("DataStaging.TaskSeparator");
        }
    }
示例#11
0
    private void ProcessTransformations(int classId, string className)
    {
        // Get the transformations
        DataSet transformationsDS = TransformationInfoProvider.GetTransformations(classId);

        if (!DataHelper.DataSourceIsEmpty(transformationsDS))
        {
            foreach (DataRow transformationRow in transformationsDS.Tables[0].Rows)
            {
                // Get the type
                string type = ValidationHelper.GetString(transformationRow["TransformationType"], "ascx");
                TransformationTypeEnum transformationType = TransformationInfoProvider.GetTransformationTypeEnum(type);

                // Only export ASCX transformations
                if (transformationType == TransformationTypeEnum.Ascx)
                {
                    string transformationName = ValidationHelper.GetString(transformationRow["TransformationName"], "");
                    string transformationCode = ValidationHelper.GetString(transformationRow["TransformationCode"], "");

                    int    checkedOutByUserId    = ValidationHelper.GetInteger(transformationRow["TransformationCheckedOutByUserID"], 0);
                    string checkedOutMachineName = ValidationHelper.GetString(transformationRow["TransformationCheckedOutMachineName"], "");

                    if ((checkedOutByUserId == 0) || (checkedOutMachineName.ToLower() != HTTPHelper.MachineName.ToLower()))
                    {
                        string filename = TransformationInfoProvider.GetTransformationUrl(className + "." + transformationName, null, TransformationTypeEnum.Ascx);

                        // Prepare the code
                        string code = transformationCode;
                        code = TransformationInfoProvider.AddTransformationDirectives(code, true);

                        SiteManagerFunctions.SaveCodeFile(filename, code);
                    }
                }
            }
        }
    }
示例#12
0
    private void CheckOut()
    {
        // Ensure version before check-out
        using (CMSActionContext context = new CMSActionContext())
        {
            context.AllowAsyncActions = false;

            // Validate and save the transformation
            if (ValidateAndSave())
            {
                return;
            }
        }

        try
        {
            SiteManagerFunctions.CheckOutTransformation(transformationId);
            URLHelper.Redirect(URLHelper.AddParameterToUrl(URLHelper.Url.AbsoluteUri, "saved", "1"));
        }
        catch (Exception ex)
        {
            ShowError(string.Concat(GetString("Transformation.ErrorCheckout"), ": ", ex.Message));
        }
    }
示例#13
0
    /// <summary>
    /// Actions handler.
    /// </summary>
    protected void HeaderActions_ActionPerformed(object sender, CommandEventArgs e)
    {
        switch (e.CommandName.ToLower())
        {
        case "save":
        {
            SaveLayout();

            // Reload header actions
            InitializeHeaderActions();
            this.CurrentMaster.HeaderActions.ReloadData();
        }
        break;

        case "checkout":
        {
            // Ensure version before check-out
            using (CMSActionContext context = new CMSActionContext())
            {
                context.AllowAsyncActions = false;

                // Save first
                if (!SaveLayout())
                {
                    return;
                }
            }

            try
            {
                SiteManagerFunctions.CheckOutTemplateLayout(templateId);
            }
            catch (Exception ex)
            {
                this.lblError.Text    = GetString("Layout.ErrorCheckout") + ": " + ex.Message;
                this.lblError.Visible = true;
                return;
            }

            URLHelper.Redirect(URLHelper.Url.AbsoluteUri);
        }
        break;

        case "checkin":
        {
            // Check in the layout
            try
            {
                SiteManagerFunctions.CheckInTemplateLayout(templateId);
            }
            catch (Exception ex)
            {
                this.lblError.Text    = GetString("Layout.ErrorCheckin") + ": " + ex.Message;
                this.lblError.Visible = true;
                return;
            }

            URLHelper.Redirect(URLHelper.Url.AbsoluteUri);
        }
        break;

        case "undocheckout":
        {
            // Undo the checkout
            try
            {
                SiteManagerFunctions.UndoCheckOutTemplateLayout(templateId);
            }
            catch (Exception ex)
            {
                this.lblError.Text    = GetString("Layout.ErrorUndoCheckout") + ": " + ex.Message;
                this.lblError.Visible = true;
                return;
            }

            URLHelper.Redirect(URLHelper.Url.AbsoluteUri);
        }
        break;
        }
    }
示例#14
0
    /// <summary>
    /// Actions handler.
    /// </summary>
    protected void HeaderActions_ActionPerformed(object sender, CommandEventArgs e)
    {
        string url = null;

        switch (e.CommandName.ToLower())
        {
        case "save":

            if (li != null)
            {
                url = "PageLayout_Edit.aspx";
            }
            else
            {
                url = "PageLayout_Frameset.aspx";
            }
            if (SaveLayout())
            {
                URLHelper.Redirect(url + "?layoutid=" + layoutId + "&saved=1");
            }
            else
            {
                lblInfo.Visible = false;
            }
            break;

        case "checkout":

            // Ensure version before check-out
            using (CMSActionContext context = new CMSActionContext())
            {
                context.AllowAsyncActions = false;

                // Save first
                if (!SaveLayout())
                {
                    return;
                }
            }

            try
            {
                SiteManagerFunctions.CheckOutLayout(li.LayoutId);
            }
            catch (Exception ex)
            {
                this.lblError.Text    = GetString("Layout.ErrorCheckout") + ": " + ex.Message;
                this.lblError.Visible = true;
                return;
            }

            url = URLHelper.AddParameterToUrl(URLHelper.Url.AbsoluteUri, "saved", "1");
            URLHelper.Redirect(url);
            break;

        case "checkin":

            try
            {
                SiteManagerFunctions.CheckInLayout(li.LayoutId);
            }
            catch (Exception ex)
            {
                this.lblError.Text    = GetString("Layout.ErrorCheckin") + ": " + ex.Message;
                this.lblError.Visible = true;
                return;
            }

            URLHelper.Redirect(URLHelper.Url.AbsoluteUri);
            break;

        case "undocheckout":

            try
            {
                SiteManagerFunctions.UndoCheckOutLayout(li.LayoutId);
            }
            catch (Exception ex)
            {
                this.lblError.Text    = GetString("Layout.ErrorUndoCheckout") + ": " + ex.Message;
                this.lblError.Visible = true;
                return;
            }

            URLHelper.Redirect(URLHelper.Url.AbsoluteUri);
            break;
        }
    }
示例#15
0
    protected void btnSaveAll_Click(object sender, EventArgs e)
    {
        try
        {
            // Save all the document transformations
            DataSet ds = DataClassInfoProvider.GetAllDataClass();
            if (!DataHelper.DataSourceIsEmpty(ds))
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    int    classId        = ValidationHelper.GetInteger(dr["ClassID"], 0);
                    string className      = ValidationHelper.GetString(dr["ClassName"], "");
                    bool   isDocumentType = ValidationHelper.GetBoolean(dr["ClassIsDocumentType"], false);

                    if (isDocumentType)
                    {
                        ProcessTransformations(classId, className);
                    }
                }
            }

            // Save all the custom table transformations
            ds = DataClassInfoProvider.GetCustomTableClasses(null, null, 0, "ClassID,ClassName,ClassIsCustomTable");
            if (!DataHelper.DataSourceIsEmpty(ds))
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    int    classId       = ValidationHelper.GetInteger(dr["ClassID"], 0);
                    string className     = ValidationHelper.GetString(dr["ClassName"], "");
                    bool   isCustomTable = ValidationHelper.GetBoolean(dr["ClassIsCustomTable"], false);

                    if (isCustomTable)
                    {
                        ProcessTransformations(classId, className);
                    }
                }
            }

            // Save all the layouts
            ds = LayoutInfoProvider.GetAllLayouts();
            if (!DataHelper.DataSourceIsEmpty(ds))
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    string layoutName = ValidationHelper.GetString(dr["LayoutCodeName"], "");
                    string layoutCode = ValidationHelper.GetString(dr["LayoutCode"], "");

                    int    checkedOutByUserId    = ValidationHelper.GetInteger(dr["LayoutCheckedOutByUserID"], 0);
                    string checkedOutMachineName = ValidationHelper.GetString(dr["LayoutCheckedOutMachineName"], "");

                    if ((checkedOutByUserId == 0) || (checkedOutMachineName.ToLower() != HTTPHelper.MachineName.ToLower()))
                    {
                        string filename = LayoutInfoProvider.GetLayoutUrl(layoutName, null);

                        // Prepare the code
                        string code = layoutCode;
                        code = LayoutInfoProvider.AddLayoutDirectives(code);

                        SiteManagerFunctions.SaveCodeFile(filename, code);
                    }
                }
            }

            // Save all the page template layouts
            ds = PageTemplateInfoProvider.GetAllTemplates();
            if (!DataHelper.DataSourceIsEmpty(ds))
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    string templateName   = ValidationHelper.GetString(dr["PageTemplateCodeName"], "");
                    string templateLayout = ValidationHelper.GetString(dr["PageTemplateLayout"], "");
                    bool   isReusable     = ValidationHelper.GetBoolean(dr["PageTemplateIsReusable"], false);

                    int    checkedOutByUserId    = ValidationHelper.GetInteger(dr["PageTemplateLayoutCheckedOutByUserID"], 0);
                    string checkedOutMachineName = ValidationHelper.GetString(dr["PageTemplateLayoutCheckedOutMachineName"], "");
                    bool   isPortalTemplate      = ValidationHelper.GetBoolean(dr["PageTemplateIsPortal"], false);
                    string pageTemplateType      = ValidationHelper.GetString(dr["PageTemplateType"], "");
                    bool   isDashboard           = pageTemplateType.Equals(PageTemplateInfoProvider.GetPageTemplateTypeCode(PageTemplateTypeEnum.Dashboard));

                    if ((isPortalTemplate || isDashboard) && !String.IsNullOrEmpty(templateLayout) && ((checkedOutByUserId == 0) || (checkedOutMachineName.ToLower() != HTTPHelper.MachineName.ToLower())))
                    {
                        string filename = null;
                        if (isReusable)
                        {
                            filename = PageTemplateInfoProvider.GetLayoutUrl(templateName, null);
                        }
                        else
                        {
                            filename = PageTemplateInfoProvider.GetAdhocLayoutUrl(templateName, null);
                        }

                        // Prepare the code
                        string code = templateLayout;
                        code = LayoutInfoProvider.AddLayoutDirectives(code);

                        SiteManagerFunctions.SaveCodeFile(filename, code);
                    }
                }
            }

            // Save all the web part layouts
            ds = WebPartLayoutInfoProvider.GetWebPartLayouts(null, null);
            if (!DataHelper.DataSourceIsEmpty(ds))
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    string webPartLayoutCodeName = ValidationHelper.GetString(dr["WebPartLayoutCodeName"], "");
                    string webPartLayoutCode     = ValidationHelper.GetString(dr["WebPartLayoutCode"], "");

                    WebPartInfo wpi = WebPartInfoProvider.GetWebPartInfo(ValidationHelper.GetInteger(dr["WebPartLayoutWebPartID"], 0));

                    if (wpi != null)
                    {
                        int    checkedOutByUserId    = ValidationHelper.GetInteger(dr["WebPartLayoutCheckedOutByUserID"], 0);
                        string checkedOutMachineName = ValidationHelper.GetString(dr["WebPartLayoutCheckedOutMachineName"], "");

                        if (!String.IsNullOrEmpty(webPartLayoutCode) && ((checkedOutByUserId == 0) || (checkedOutMachineName.ToLower() != HTTPHelper.MachineName.ToLower())))
                        {
                            // Get layout filename
                            string filename = WebPartLayoutInfoProvider.GetWebPartLayoutUrl(wpi.WebPartName, webPartLayoutCodeName, "");
                            // Get path to the code file
                            string codeFilePath = URLHelper.GetVirtualPath(filename) + ".cs";

                            // Get path to the original code behind file
                            string originalCodeFilePath = String.Empty;
                            if (codeFileRegex.IsMatch(webPartLayoutCode, 0))
                            {
                                originalCodeFilePath = codeFileRegex.Match(webPartLayoutCode).Result("$1");
                            }

                            // Get original class name
                            string originalClassName = String.Empty;
                            if (inheritsRegex.IsMatch(webPartLayoutCode))
                            {
                                originalClassName = inheritsRegex.Match(webPartLayoutCode).Result("$1");
                            }

                            if (codeFileRegex.IsMatch(webPartLayoutCode))
                            {
                                webPartLayoutCode = codeFileRegex.Replace(webPartLayoutCode, "CodeFile=\"" + codeFilePath + "\"");
                            }

                            if (inheritsRegex.IsMatch(webPartLayoutCode))
                            {
                                webPartLayoutCode = inheritsRegex.Replace(webPartLayoutCode, "Inherits=\"$1_Web_Deployment\"");
                            }

                            // Read original codefile and change classname
                            string codeFileCode = String.Empty;
                            if (!String.IsNullOrEmpty(originalCodeFilePath) && FileHelper.FileExists(originalCodeFilePath))
                            {
                                codeFileCode = File.ReadAllText(Server.MapPath(originalCodeFilePath));
                                codeFileCode = codeFileCode.Replace(originalClassName, originalClassName + "_Web_Deployment");

                                // Save code file
                                SiteManagerFunctions.SaveCodeFile(filename, webPartLayoutCode);

                                // Save code behind file
                                SiteManagerFunctions.SaveCodeFile(codeFilePath, codeFileCode);
                            }
                        }
                    }
                }
            }

            lblResult.Text = GetString("Deployment.ObjectsSaved");
        }
        catch (Exception ex)
        {
            CMS.EventLog.EventLogProvider ep = new CMS.EventLog.EventLogProvider();
            ep.LogEvent("System deployment", "E", ex);

            lblError.Visible = true;
            lblError.Text    = ex.Message;
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        CurrentMaster.Title.TitleText  = ResHelper.GetString("socialnetworking.googleplus.accesstoken");
        CurrentMaster.Title.TitleImage = GetImageUrl("Others/GooglePlus/googleplus.png");

        string accessToken = null, refreshToken = null;
        Dictionary <string, string> tokens = null;
        string clientID       = Request.QueryString["token_client_id"];
        string clientSecret   = Request.QueryString["token_client_secret"];
        string txtToken       = null;
        string txtTokenSecret = null;
        string error          = Request.QueryString["error"];
        string state          = Request.QueryString["state"];

        // Check Social networking DLL and settings
        if (!SiteManagerFunctions.CheckSocialNetworkingDLL())
        {
            lblStatus.Text = ResHelper.GetString("socialnetworking.renameddll");
        }
        else if (String.IsNullOrEmpty(state) && (String.IsNullOrEmpty(clientID) || String.IsNullOrEmpty(clientSecret)))
        {
            lblStatus.Text = ResHelper.GetString("socialnetworking.googleplus.apisettingsmissing");
        }
        else
        {
            // If access denied
            if (error.EqualsCSafe("access_denied"))
            {
                // Close the window
                StringBuilder script = new StringBuilder("if(wopener.setAccessTokenToTextBox){CloseDialog();}");

                ScriptHelper.RegisterStartupScript(Page, typeof(string), "TokenScript", ScriptHelper.GetScript(script.ToString()));
            }
            else
            {
                // If this is OAuth callback -> get clientID and clientSecret from state
                if (state != null)
                {
                    foreach (string s in state.Split(new string[1] {
                        "&"
                    }, StringSplitOptions.None))
                    {
                        if (s.StartsWithCSafe("token_client_id="))
                        {
                            clientID = s.Substring(16);
                        }

                        if (s.StartsWithCSafe("token_client_secret="))
                        {
                            clientSecret = s.Substring(20);
                        }
                    }
                }

                // Authenticate and retrieve tokens
                tokens = GooglePlusProvider.Authorize(clientID, clientSecret);
                if (tokens.Count > 0)
                {
                    accessToken  = tokens["AccessToken"];
                    refreshToken = tokens["RefreshToken"];

                    if (!String.IsNullOrEmpty(accessToken))
                    {
                        // Extract txtToken values from state
                        txtToken       = null;
                        txtTokenSecret = null;
                        string[] stateParams = state.Split(new string[1] {
                            "&"
                        }, StringSplitOptions.None);
                        foreach (string s in stateParams)
                        {
                            if (s.StartsWithCSafe("txtToken="))
                            {
                                txtToken = s.Substring(9);
                            }

                            if (s.StartsWithCSafe("txtTokenSecret="))
                            {
                                txtTokenSecret = s.Substring(15);
                            }
                        }

                        // Return access token values and close the window
                        StringBuilder script = new StringBuilder("if(wopener.setAccessTokenToTextBox){wopener.setAccessTokenToTextBox('");
                        script.Append(txtToken);
                        script.Append("', '");
                        script.Append(accessToken);
                        script.Append("', '");
                        script.Append(txtTokenSecret);
                        script.Append("', '");
                        script.Append(refreshToken);
                        script.Append("');");
                        script.Append("CloseDialog();}");
                        ScriptHelper.RegisterStartupScript(Page, typeof(string), "TokenScript", ScriptHelper.GetScript(script.ToString()));
                    }
                }
                else
                {
                    // There was an error somewhere
                    lblStatus.Text = ResHelper.GetString("socialnetworking.authorizationerror");
                }
            }
        }
    }
示例#17
0
    /// <summary>
    /// Actions handler.
    /// </summary>
    protected void HeaderActions_ActionPerformed(object sender, CommandEventArgs e)
    {
        switch (e.CommandName)
        {
        case "save":

            Save();
            break;

        case "checkout":

            // Ensure version before check-out
            using (CMSActionContext context = new CMSActionContext())
            {
                context.AllowAsyncActions = false;

                if (!Save())
                {
                    return;
                }
            }

            try
            {
                SiteManagerFunctions.CheckOutStylesheet(cssStylesheetId);
            }
            catch (Exception ex)
            {
                ShowInformation(string.Concat(GetString("CssStylesheet.ErrorCheckout"), ": ", ex.Message));
                return;
            }

            string url = URLHelper.AddParameterToUrl(URLHelper.Url.AbsoluteUri, "saved", "1");

            // In case of dialog mode use javascript redirection to ensure script are rendered correctly
            if (DialogMode)
            {
                ScriptHelper.RegisterStartupScript(this, typeof(string), "PageRedirect", "window.location.replace('" + url + "');", true);
            }
            else
            {
                URLHelper.Redirect(url);
            }
            break;

        case "checkin":

            try
            {
                SiteManagerFunctions.CheckInStylesheet(cssStylesheetId);
            }
            catch (Exception ex)
            {
                ShowError(string.Concat(GetString("CssStylesheet.ErrorCheckin"), ": ", ex.Message));
                return;
            }

            URLHelper.Redirect(URLHelper.Url.AbsoluteUri);
            break;

        case "undocheckout":

            try
            {
                SiteManagerFunctions.UndoCheckOutStylesheet(cssStylesheetId);
            }
            catch (Exception ex)
            {
                ShowError(string.Concat(GetString("CssStylesheet.ErrorUndoCheckout"), ": ", ex.Message));
                return;
            }

            URLHelper.Redirect(URLHelper.Url.AbsoluteUri);
            break;
        }
    }
    /// <summary>
    /// Initializes the control properties
    /// </summary>
    protected void SetupControl()
    {
        if (this.StopProcessing)
        {
            // Do not process
        }
        else
        {
            string apiKey      = SettingsKeyProvider.GetStringValue(CMSContext.CurrentSiteName + ".CMSGooglePlusClientID");
            string apiSecret   = SettingsKeyProvider.GetStringValue(CMSContext.CurrentSiteName + ".CMSGooglePlusClientSecret");
            string accessToken = SettingsKeyProvider.GetStringValue(CMSContext.CurrentSiteName + ".CMSGooglePlusAccessToken");

            // Check Social networking DLL and settings
            if (!SiteManagerFunctions.CheckSocialNetworkingDLL())
            {
                // Error label is displayed in Design mode when Dll is renamed
                if (CMSContext.ViewMode == ViewModeEnum.Design)
                {
                    lblError.Text    = GetString("socialnetworking.renameddll");
                    lblError.Visible = true;
                }
                else
                {
                    Visible = false;
                }
            }
            else if (String.IsNullOrEmpty(apiKey) || String.IsNullOrEmpty(apiSecret) || String.IsNullOrEmpty(accessToken))
            {
                // Error label is displayed in Design mode when missing settings
                if (CMSContext.ViewMode == ViewModeEnum.Design)
                {
                    string pathToSettings = SocialNetworkingHelper.GetPathToGooglePlusSettings();

                    lblError.Text    = String.Format(GetString("socialnetworking.googleplus.allsettingsmissing"), pathToSettings);
                    lblError.Visible = true;
                }
                else
                {
                    Visible = false;
                }
            }
            else
            {
                // Process ID - it can be URL
                string showID = ExtractUserID(FeedID);

                // Fetch data from Google+
                GooglePlusPerson          profile    = GooglePlusProvider.GetProfileInfo(showID);
                List <GooglePlusActivity> activities = GooglePlusProvider.GetActivities(showID, NumberOfActivities);

                if (profile != null)
                {
                    // Build code for plugin
                    StringBuilder sb = new StringBuilder();
                    sb.Append("<div class=\"gpaf-plugin\"><div class=\"gpaf-doc\" style=\"width: ");
                    sb.Append(Width);
                    sb.Append("px; height: ");
                    sb.Append(Height);
                    sb.Append("px; border: 1px solid ");
                    sb.Append(BorderColor);
                    sb.Append("; position: relative; background-color: ");
                    sb.Append(ShellBackgroundColor);
                    sb.Append("\"><div style=\"margin: 15px;\">");

                    // Build plugin header
                    sb.Append("<div class=\"gpaf-header\">");

                    sb.Append("<table><tr><td style=\"vertical-align: center;\">");
                    sb.Append("<a href=\"");
                    sb.Append(profile.URL);
                    sb.Append("\">");
                    sb.Append("<img src=\"");
                    string imageURL = profile.ImageURL.Remove(profile.ImageURL.Length - 2) + "40";
                    sb.Append(imageURL);
                    sb.Append("\" alt=\"");
                    sb.Append(profile.DisplayName);
                    sb.Append("\" style=\"float: left; border: none;\" />");
                    sb.Append("</a>");
                    sb.Append("</td>");

                    sb.Append("<td style=\"vertical-align: center; padding-left: 10px;\">");
                    sb.Append("<a href=\"");
                    sb.Append(profile.URL);
                    sb.Append("\" style=\"text-decoration: none; font-size: 25px; color: ");
                    sb.Append(ShellTextColor);
                    sb.Append(";\">");
                    sb.Append(profile.DisplayName);
                    sb.Append("</a>");
                    sb.Append("</td></tr></table>");

                    sb.Append("</div>");

                    // Insert section separator
                    sb.Append("<div class=\"gpaf-doc-separator\" style=\"height: 15px; margin-top: 15px; width: 100%; border-top: 1px solid ");
                    sb.Append(BorderColor);
                    sb.Append(";\"></div>");

                    // Build plugin body
                    sb.Append("<div class=\"gpaf-body\" style=\"height: ");
                    sb.Append(Height - 164);
                    sb.Append("px; overflow: ");
                    sb.Append((Scrollbar) ? "auto" : "hidden");
                    sb.Append(";\">");

                    int counting = 1;
                    foreach (GooglePlusActivity s in activities)
                    {
                        sb.Append("<div class=\"gpaf-activity\" style=\"color: ");
                        sb.Append(ActivityTextColor);
                        sb.Append("\">");
                        sb.Append("<div class=\"gpaf-activity-text\">");
                        sb.Append(s.Content);
                        sb.Append("</div>");
                        sb.Append("<div class=\"gpaf-activity-footer\" style=\"color: ");
                        sb.Append(ActivityFooterTextColor);
                        sb.Append("; font-size: 13px; margin-top: 3px;\">");
                        sb.Append(s.Published);
                        sb.Append("</div>");
                        sb.Append("</div>");

                        // Insert activity separator
                        if (counting < activities.Count)
                        {
                            sb.Append("<div class=\"gpaf-body-separator\" style=\"height: 10px; margin-top: 5px; width: 100%; border-top: 1px dashed ");
                            sb.Append(BorderColor);
                            sb.Append(";\"></div>");
                            counting++;
                        }
                    }
                    sb.Append("</div></div>");

                    // Insert section separator
                    sb.Append("<div style=\"margin: 15px; position: absolute; bottom: 0px; left: 0px; width: ");
                    sb.Append(Width - 30);
                    sb.Append("px;\">");
                    sb.Append("<div class=\"gpaf-doc-separator\" style=\"height: 15px; margin-top: 15px; width: 100%; border-top: 1px solid ");
                    sb.Append(BorderColor);
                    sb.Append(";\"></div>");

                    // Build plugin footer
                    sb.Append("<div class=\"gpaf-footer\">");
                    sb.Append("<a href=\"https://plus.google.com\">");
                    sb.Append("<img src=\"https://ssl.gstatic.com/images/icons/gplus-32.png\" alt=\"\" style=\"float: left; border: none;\" />");
                    sb.Append("</a>");

                    sb.Append("<div class=\"gpaf-footer-text\" style=\"text-align: left; margin-left: 50px;\">");
                    sb.Append("<table style=\"height: 32px;\"><tr><td style=\"vertical-align: center;\">");
                    sb.Append("<a href=\"");
                    sb.Append(profile.URL);
                    sb.Append("\" style=\"text-decoration: none; font-size: 12px; color: ");
                    sb.Append(ShellTextColor);
                    sb.Append(";\">");
                    sb.Append(ResHelper.GetString("socialnetworking.viewfullprofile"));
                    sb.Append("</a>");
                    sb.Append("</td></tr></table>");
                    sb.Append("</div>");

                    sb.Append("<div style=\"clear: both;\"></div>");
                    sb.Append("</div>");

                    // Close open divs and finish plugin
                    sb.Append("</div></div></div>");
                    ltlPluginCode.Text = sb.ToString();
                }
            }
        }
    }