예제 #1
0
        /// <summary>
        /// Gets the params for the page
        /// </summary>
        /// <param name="skip">number of postings to skip</param>
        /// <param name="show">number to show</param>
        /// <param name="entryDate">Entry Date of search</param>
        /// <param name="interval">Interval of search</param>
        private void TryGetPageParams(ref int skip, ref int show, ref DateTime entryDate, ref int interval)
        {
            skip = InputContext.GetParamIntOrZero("skip", _docDnaSkip);
            show = InputContext.GetParamIntOrZero("show", _docDnaShow);

            if (show > 200)
            {
                show = 200;
            }
            else if (show < 1)
            {
                show = 25;
            }
            if (skip < 0)
            {
                skip = 0;
            }

            //find out which display mode is requested
            interval = 1;
            string intervalText = InputContext.GetParamStringOrEmpty("interval", _docDnaInterval);
            if (intervalText == "week")
            {
                interval = 2;
            }
            else if (intervalText == "month")
            {
                interval = 3;
            }
            if (InputContext.DoesParamExist("date", _docDnaEntryDate))
            {
                string entryDateText = InputContext.GetParamStringOrEmpty("date", _docDnaEntryDate);

                DateRangeValidation dateValidation = new DateRangeValidation();
                DateRangeValidation.ValidationResult isValid;

                DateTime tempEntryDate;

                isValid = ParseDate(entryDateText, out tempEntryDate);
                if (isValid == DateRangeValidation.ValidationResult.VALID)
                {
                    isValid = dateValidation.ValidateDate(tempEntryDate, false);
                }
                else
                {
                    AddErrorXml("invalidparameters", "Illegal date entry (" + isValid.ToString() + ")", null);
                    return;
                }

                if (isValid == DateRangeValidation.ValidationResult.VALID)
                {
                    entryDate = dateValidation.LastStartDate;
                }
                else
                {
                    AddErrorXml("invalidparameters", "Illegal date parameters (" + isValid.ToString() + ")", null);
                    return;
                }
            }
            else
            {
                entryDate = DateTime.Now;
            }

        }
    /// <summary>
    /// This function is where the page gets to create and insert all the objects required
    /// </summary>
    public override void OnPageLoad()
    {
        Context.Items["VirtualUrl"] = "MessageBoardStats";
        string skin = Request.GetParamStringOrEmpty("skin", "skin");

        if (!IsDnaUserAllowed())
        {
            if (skin != "purexml")
            {
                ShowHideControls(false);
                lblError.Text = "Insufficient permissions - Editor Status Required";
            }
            else
            {
                XmlDocument errorDoc = new XmlDocument();
                errorDoc.LoadXml("<ERROR TYPE='invalidcredentials' ERRORMESSAGE = 'Must be an editor or superuser to view messageboard statistics' />");

                //Replace an existing node
                if (_basePage.WholePageBaseXmlNode.SelectSingleNode("/MESSAGEBOARDSTATS") != null)
                {
                    XmlNode messageBoardStatisticsNode = _basePage.WholePageBaseXmlNode.SelectSingleNode("/MESSAGEBOARDSTATS");

                    _basePage.WholePageBaseXmlNode.ReplaceChild(messageBoardStatisticsNode, _basePage.WholePageBaseXmlNode.OwnerDocument.ImportNode(errorDoc.FirstChild, true));
                }
                else
                {
                    _basePage.WholePageBaseXmlNode.FirstChild.AppendChild(_basePage.WholePageBaseXmlNode.OwnerDocument.ImportNode(errorDoc.FirstChild, true));
                }
            }
            return;
        }
        if (!Page.IsPostBack)
        {
            DateTime enteredDate = DateTime.MinValue;

            try
            {
                if (Request.DoesParamExist("date", _docDnaDate))
                {
                    string entryDateText = Request.GetParamStringOrEmpty("date", _docDnaDate);

                    DateRangeValidation dateValidation = new DateRangeValidation();
                    DateRangeValidation.ValidationResult isValid;

                    DateTime tempDate;

                    isValid = MessageBoardStatistics.ParseDate(entryDateText, out tempDate);
                    if (isValid == DateRangeValidation.ValidationResult.VALID)
                    {
                        isValid = dateValidation.ValidateDate(tempDate, true);

                        if (isValid == DateRangeValidation.ValidationResult.FUTURE_STARTDATE)
                        {
                            lblError.Text = "Passed in Date is in the future.";
                            return;
                        }
                        else if (isValid != DateRangeValidation.ValidationResult.VALID)
                        {
                            lblError.Text = "Passed in Date not valid.";
                            return;
                        }
                        enteredDate = tempDate;
                    }
                    else
                    {
                        lblError.Text = "Passed in Date not valid.";
                        return;
                    }
                }
                else
                {
                    //Yesterday
                    enteredDate = DateTime.Now.AddDays(-1).Date;
                }

                entryDate.SelectedDate = enteredDate.Date;
                entryDate.VisibleDate = enteredDate.Date;
            }
            catch (FormatException)
            {
                lblError.Text = "Passed in Date format incorrect. It should be dd/mm/yyyy";
                return;
            }

            if (skin != "purexml")
            {
                GetMessageBoardStatistics(false);

                ShowHideControls(true);
            }
            else
            {
                GetMessageBoardStatistics(true);
            }

            string emailFrom = Request.GetParamStringOrEmpty("emailFrom", "emailFrom address");
            string emailTo = Request.GetParamStringOrEmpty("emailTo", "emailTo address");

            MessageBoardStatistics messageBoardStatistics = new MessageBoardStatistics(_basePage);
            messageBoardStatistics.SendMessageBoardStatsEmail(enteredDate, emailFrom, emailTo);
        }
        else
        {
            ShowHideResultControls(false);
        }

    }
예제 #3
0
        /// <summary>
        /// Gets the params for the page
        /// </summary>
        /// <param name="entryDate">Entry Date</param>
        /// <param name="emailFrom">Email from entry</param>
        /// <param name="emailTo">Email to entry</param>
        private void TryGetPageParams(ref DateTime entryDate, ref string emailFrom, ref string emailTo)
        {
            if (InputContext.DoesParamExist("date", _docDnaEntryDate))
            {
                string entryDateText = InputContext.GetParamStringOrEmpty("date", _docDnaEntryDate);

                DateRangeValidation dateValidation = new DateRangeValidation();
                DateRangeValidation.ValidationResult isValid;

                DateTime tempEntryDate;

                isValid = ParseDate(entryDateText, out tempEntryDate);
                if (isValid == DateRangeValidation.ValidationResult.VALID)
                {
                    isValid = dateValidation.ValidateDate(tempEntryDate, false);
                }
                else
                {
                    AddErrorXml("invalidparameters", "Illegal date entry (" + isValid.ToString() + ")", null);
                    return;
                }

                if (isValid == DateRangeValidation.ValidationResult.VALID)
                {
                    entryDate = dateValidation.LastStartDate;
                }
                else
                {
                    AddErrorXml("invalidparameters", "Illegal date parameters (" + isValid.ToString() + ")", null);
                    return;
                }
            }
            else
            {
                entryDate = DateTime.Now.AddDays(-1).Date;
            }
            if (InputContext.DoesParamExist("emailFrom", _docDnaEmailFrom) && InputContext.DoesParamExist("emailTo", _docDnaEmailTo))
            {
                emailFrom = InputContext.GetParamStringOrEmpty("emailFrom", _docDnaEmailFrom);
                emailTo = InputContext.GetParamStringOrEmpty("emailTo", _docDnaEmailTo);
            }
        }
예제 #4
0
    /// <summary>
    /// This function is where the page gets to create and insert all the objects required
    /// </summary>
    public override void OnPageLoad()
    {
        Context.Items["VirtualUrl"] = "StatisticsReport";
        string skin = Request.GetParamStringOrEmpty("skin", "skin");
        string skParam = Request.GetParamStringOrEmpty("_sk", "skin");

        if (!IsDnaUserAllowed())
        {
            ShowHideControls(false);
            DisplayError("PermissionsError", "Insufficient permissions - Editor Status Required");
            return;
        }
        if (!Page.IsPostBack)
        {
            int passedInShow = Request.GetParamIntOrZero("show", "show");
            if (passedInShow == 0)
            {
                _show = _basePage.GetSiteOptionValueInt("ArticleSearch", "DefaultShow");
            }
            else if (passedInShow > 200)
            {
                _show = 200;
            }
            else
            {
                _show = passedInShow;
            }

            int passedInSkip = Request.GetParamIntOrZero("skip", "skip");
            _skip = passedInSkip;

            DateTime enteredDate = DateTime.MinValue;

            try
            {
                if (Request.DoesParamExist("date", _docDnaDate))
                {
                    string entryDateText = Request.GetParamStringOrEmpty("date", _docDnaDate);

                    DateRangeValidation dateValidation = new DateRangeValidation();
                    DateRangeValidation.ValidationResult isValid;

                    DateTime tempDate;

                    isValid = StatisticsReport.ParseDate(entryDateText, out tempDate);
                    if (isValid == DateRangeValidation.ValidationResult.VALID)
                    {
                        isValid = dateValidation.ValidateDate(tempDate, true);

                        if (isValid == DateRangeValidation.ValidationResult.FUTURE_STARTDATE)
                        {
                            DisplayError("DateError", "Passed in Date is in the future.");
                            return;
                        }
                        else if (isValid != DateRangeValidation.ValidationResult.VALID)
                        {
                            DisplayError("DateError", "Passed in Date not valid.");
                            return;
                        }
                        enteredDate = tempDate;
                    }
                    else
                    {
                        DisplayError("DateError", "Passed in Date not valid.");
                        return;
                    }
                }
                else
                {
                    enteredDate = DateTime.Now;
                }

                entryDate.SelectedDate = enteredDate.Date;
                entryDate.VisibleDate = enteredDate.Date;
            }
            catch (FormatException)
            {
                DisplayError("DateError", "Passed in Date format incorrect. It should be yyyy/mm/dd");
                return;
            }
            interval.SelectedValue = "1";
            if (Request.DoesParamExist("interval", _docDnaInterval))
            {
                string intervalText = Request.GetParamStringOrEmpty("interval", _docDnaInterval);
                if (intervalText == "week")
                {
                    interval.SelectedValue = "2";
                }
                else if (intervalText == "month")
                {
                    interval.SelectedValue = "3";
                }

            }

            if (skin == "purexml" || skParam == "purexml")
            {
                GetStatisticsReport(true);
            }
            else
            {
                GetStatisticsReport(false);
                ShowHideControls(true);
            }
        }
        else
        {
            ShowHideResultControls(false);
        }

    }