public void AppTaskLanguage_Every_Property_Has_Get_Set_Test()
        {
            int val1 = 45;

            appTaskLanguage.AppTaskLanguageID = val1;
            Assert.AreEqual(val1, appTaskLanguage.AppTaskLanguageID);
            int val2 = 45;

            appTaskLanguage.AppTaskID = val2;
            Assert.AreEqual(val2, appTaskLanguage.AppTaskID);
            LanguageEnum val3 = (LanguageEnum)3;

            appTaskLanguage.Language = val3;
            Assert.AreEqual(val3, appTaskLanguage.Language);
            string val4 = "Some text";

            appTaskLanguage.StatusText = val4;
            Assert.AreEqual(val4, appTaskLanguage.StatusText);
            string val5 = "Some text";

            appTaskLanguage.ErrorText = val5;
            Assert.AreEqual(val5, appTaskLanguage.ErrorText);
            TranslationStatusEnum val6 = (TranslationStatusEnum)3;

            appTaskLanguage.TranslationStatus = val6;
            Assert.AreEqual(val6, appTaskLanguage.TranslationStatus);
            DateTime val7 = new DateTime(2010, 3, 4);

            appTaskLanguage.LastUpdateDate_UTC = val7;
            Assert.AreEqual(val7, appTaskLanguage.LastUpdateDate_UTC);
            int val8 = 45;

            appTaskLanguage.LastUpdateContactTVItemID = val8;
            Assert.AreEqual(val8, appTaskLanguage.LastUpdateContactTVItemID);
            bool val9 = true;

            appTaskLanguage.HasErrors = val9;
            Assert.AreEqual(val9, appTaskLanguage.HasErrors);
            IEnumerable <ValidationResult> val30 = new List <ValidationResult>()
            {
                new ValidationResult("First CSSPError Message")
            }.AsEnumerable();

            appTaskLanguage.ValidationResults = val30;
            Assert.AreEqual(val30, appTaskLanguage.ValidationResults);
        }
        public void SpillLanguage_Every_Property_Has_Get_Set_Test()
        {
            int val1 = 45;

            spillLanguage.SpillLanguageID = val1;
            Assert.AreEqual(val1, spillLanguage.SpillLanguageID);
            int val2 = 45;

            spillLanguage.SpillID = val2;
            Assert.AreEqual(val2, spillLanguage.SpillID);
            LanguageEnum val3 = (LanguageEnum)3;

            spillLanguage.Language = val3;
            Assert.AreEqual(val3, spillLanguage.Language);
            string val4 = "Some text";

            spillLanguage.SpillComment = val4;
            Assert.AreEqual(val4, spillLanguage.SpillComment);
            TranslationStatusEnum val5 = (TranslationStatusEnum)3;

            spillLanguage.TranslationStatus = val5;
            Assert.AreEqual(val5, spillLanguage.TranslationStatus);
            DateTime val6 = new DateTime(2010, 3, 4);

            spillLanguage.LastUpdateDate_UTC = val6;
            Assert.AreEqual(val6, spillLanguage.LastUpdateDate_UTC);
            int val7 = 45;

            spillLanguage.LastUpdateContactTVItemID = val7;
            Assert.AreEqual(val7, spillLanguage.LastUpdateContactTVItemID);
            bool val8 = true;

            spillLanguage.HasErrors = val8;
            Assert.AreEqual(val8, spillLanguage.HasErrors);
            IEnumerable <ValidationResult> val27 = new List <ValidationResult>()
            {
                new ValidationResult("First CSSPError Message")
            }.AsEnumerable();

            spillLanguage.ValidationResults = val27;
            Assert.AreEqual(val27, spillLanguage.ValidationResults);
        }
    protected object gridElem_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        // For all actions
        if (sourceName.EndsWith("action", StringComparison.OrdinalIgnoreCase))
        {
            var img = sender as CMSGridActionButton;
            if (img != null)
            {
                img.Enabled = !IsRunningThread();
            }
        }

        switch (sourceName.ToLowerInvariant())
        {
        case "resubmitaction":
        case "processaction":
        case "cancelaction":
            var img = sender as CMSGridActionButton;
            if (img != null)
            {
                img.Enabled &= modifyAllowed;

                var gvr = parameter as GridViewRow;
                if (gvr == null)
                {
                    return(img);
                }

                var drv = gvr.DataItem as DataRowView;
                if (drv == null)
                {
                    return(img);
                }

                var status = (TranslationStatusEnum)ValidationHelper.GetInteger(drv["SubmissionStatus"], 0);

                switch (sourceName.ToLowerInvariant())
                {
                case "resubmitaction":
                    img.Enabled &= modifyAllowed && ((status == TranslationStatusEnum.WaitingForTranslation) || (status == TranslationStatusEnum.SubmissionError));
                    break;

                case "processaction":
                    img.Enabled &= modifyAllowed && ((status == TranslationStatusEnum.TranslationReady) || (status == TranslationStatusEnum.TranslationCompleted) || (status == TranslationStatusEnum.ProcessingError));
                    break;

                case "cancelaction":
                    var service = TranslationServiceInfoProvider.GetTranslationServiceInfo(ValidationHelper.GetInteger(drv["SubmissionServiceID"], 0));
                    if (service != null)
                    {
                        bool serviceSupportsCancel = service.TranslationServiceSupportsCancel;

                        img.Enabled &= modifyAllowed && (status == TranslationStatusEnum.WaitingForTranslation) && serviceSupportsCancel;

                        if (!serviceSupportsCancel)
                        {
                            // Display tooltip for disabled cancel
                            img.ToolTip = String.Format(GetString("translationservice.cancelnotsupported"), service.TranslationServiceDisplayName);
                        }
                    }
                    break;
                }
            }
            return(img);

        case "submissionstatus":
            TranslationStatusEnum submissionstatus = (TranslationStatusEnum)ValidationHelper.GetInteger(parameter, 0);
            return(TranslationServiceHelper.GetFormattedStatusString(submissionstatus));

        case "submissionprice":
            string price    = GetString("general.notavailable");
            double priceVal = ValidationHelper.GetDouble(parameter, -1);
            if (priceVal >= 0)
            {
                price = priceVal.ToString();
            }
            return(price);

        case "submissiontargetculture":
        {
            string[] cultureCodes = ValidationHelper.GetString(parameter, "").Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);

            StringBuilder sb = new StringBuilder();

            int count   = cultureCodes.Length;
            int counter = 0;
            foreach (var cultureCode in cultureCodes)
            {
                // Limit cultures list
                if (counter == 5)
                {
                    sb.Append("&nbsp;");
                    sb.AppendFormat(ResHelper.GetString("translationservices.submissionnamesuffix"), count - 5);
                    break;
                }
                // Separate cultures by comma
                if (counter > 0)
                {
                    sb.Append(",&nbsp;");
                }

                var culture = CultureInfoProvider.GetCultureInfo(cultureCode);
                if (culture == null)
                {
                    continue;
                }

                sb.AppendFormat("<span title=\"{0}\"><img class=\"cms-icon-80\" src=\"{1}\" alt=\"{2}\" />&nbsp;{3}</span>", HTMLHelper.EncodeForHtmlAttribute(culture.CultureName), UIHelper.GetFlagIconUrl(null, culture.CultureCode, "16x16"), HTMLHelper.EncodeForHtmlAttribute(culture.CultureName), HTMLHelper.HTMLEncode(culture.CultureShortName));
                ++counter;
            }

            return(sb.ToString());
        }
        }

        return(parameter);
    }
Exemplo n.º 4
0
    protected object gridElem_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        switch (sourceName.ToLowerCSafe())
        {
        case "resubmitaction":
        case "processaction":
        case "cancelaction":
            CMSGridActionButton img = sender as CMSGridActionButton;
            if (img != null)
            {
                img.Enabled = modifyAllowed;

                GridViewRow gvr = parameter as GridViewRow;
                if (gvr == null)
                {
                    return(img);
                }

                DataRowView drv = gvr.DataItem as DataRowView;
                if (drv == null)
                {
                    return(img);
                }

                TranslationStatusEnum status = (TranslationStatusEnum)ValidationHelper.GetInteger(drv["SubmissionStatus"], 0);
                switch (sourceName.ToLowerCSafe())
                {
                case "resubmitaction":
                    img.Enabled = modifyAllowed && ((status == TranslationStatusEnum.WaitingForTranslation) || (status == TranslationStatusEnum.SubmissionError));
                    break;

                case "processaction":
                    img.Enabled = modifyAllowed && ((status == TranslationStatusEnum.TranslationReady) || (status == TranslationStatusEnum.TranslationCompleted) || (status == TranslationStatusEnum.ProcessingError));
                    break;

                case "cancelaction":
                    TranslationServiceInfo service = TranslationServiceInfoProvider.GetTranslationServiceInfo(ValidationHelper.GetInteger(drv["SubmissionServiceID"], 0));
                    if (service != null)
                    {
                        bool serviceSupportsCancel = service.TranslationServiceSupportsCancel;

                        img.Enabled = modifyAllowed && (status == TranslationStatusEnum.WaitingForTranslation) && serviceSupportsCancel;

                        if (!serviceSupportsCancel)
                        {
                            // Display tooltip for disabled cancel
                            img.ToolTip = String.Format(GetString("translationservice.cancelnotsupported"), service.TranslationServiceDisplayName);
                        }
                    }
                    break;
                }
            }
            return(img);

        case "submissionstatus":
            TranslationStatusEnum submissionstatus = (TranslationStatusEnum)ValidationHelper.GetInteger(parameter, 0);
            return(TranslationServiceHelper.GetFormattedStatusString(submissionstatus));

        case "submissionprice":
            string price    = GetString("general.notavailable");
            double priceVal = ValidationHelper.GetDouble(parameter, -1);
            if (priceVal >= 0)
            {
                price = priceVal.ToString();
            }
            return(price);
        }
        return(parameter);
    }
Exemplo n.º 5
0
    public override void ReloadData()
    {
        // Hide control for one culture version
        if ((DataSource == null) || DataHelper.DataSourceIsEmpty(SiteCultures) || (SiteCultures.Tables[0].Rows.Count <= 1))
        {
            Visible = false;
        }
        else
        {
            // Check the data source
            if (!(DataSource is GroupedDataSource))
            {
                throw new Exception("[DocumentFlags]: Only GroupedDataSource is supported as a data source.");
            }

            // Register tooltip script
            ScriptHelper.RegisterTooltip(Page);

            // Get appropriate table from the data source
            GroupedDataSource gDS   = (GroupedDataSource)DataSource;
            DataTable         table = gDS.GetGroupDataTable(NodeID);

            // Get document in the default site culture
            DateTime  defaultLastModification = DateTimeHelper.ZERO_TIME;
            DateTime  defaultLastPublished    = DateTimeHelper.ZERO_TIME;
            bool      defaultCultureExists    = false;
            DataRow[] rows = null;
            if (table != null)
            {
                rows = table.Select("DocumentCulture='" + DefaultSiteCulture + "'");
                defaultCultureExists = (rows.Length > 0);
            }

            if (defaultCultureExists)
            {
                defaultLastModification = ValidationHelper.GetDateTime(rows[0]["DocumentModifiedWhen"], DateTimeHelper.ZERO_TIME);
                defaultLastPublished    = ValidationHelper.GetDateTime(rows[0]["DocumentLastPublished"], DateTimeHelper.ZERO_TIME);
            }

            // Build the content
            StringBuilder sb = new StringBuilder();

            sb.Append("<table cellpadding=\"1\" cellspacing=\"0\" class=\"DocumentFlags\">\n<tr>\n");
            int colsInRow = 0;
            int cols      = 0;
            int colsCount = SiteCultures.Tables[0].Rows.Count;
            if (colsCount < RepeatColumns)
            {
                RepeatColumns = colsCount;
            }

            foreach (DataRow dr in SiteCultures.Tables[0].Rows)
            {
                ++cols;
                ++colsInRow;
                DateTime lastModification    = DateTimeHelper.ZERO_TIME;
                string   versionNumber       = null;
                TranslationStatusEnum status = TranslationStatusEnum.NotAvailable;
                string cultureName           = ValidationHelper.GetString(DataHelper.GetDataRowValue(dr, "CultureName"), "-");
                string cultureCode           = ValidationHelper.GetString(DataHelper.GetDataRowValue(dr, "CultureCode"), "-");

                // Get document for given culture
                if (table != null)
                {
                    rows = table.Select("DocumentCulture='" + cultureCode + "'");
                    // Document doesn't exist
                    if (rows.Length != 0)
                    {
                        versionNumber = ValidationHelper.GetString(DataHelper.GetDataRowValue(rows[0], "VersionNumber"), null);

                        // Check if document is outdated
                        if (versionNumber != null)
                        {
                            lastModification = ValidationHelper.GetDateTime(rows[0]["DocumentLastPublished"], DateTimeHelper.ZERO_TIME);
                            status           = (lastModification < defaultLastPublished) ? TranslationStatusEnum.Outdated : TranslationStatusEnum.Translated;
                        }
                        else
                        {
                            lastModification = ValidationHelper.GetDateTime(rows[0]["DocumentModifiedWhen"], DateTimeHelper.ZERO_TIME);
                            status           = (lastModification < defaultLastModification) ? TranslationStatusEnum.Outdated : TranslationStatusEnum.Translated;
                        }
                    }
                }

                sb.Append("<td class=\"", GetStatusCSSClass(status), "\">");
                sb.Append("<img onmouseout=\"UnTip()\" style=\"cursor:pointer;\" onclick=\"", SelectJSFunction, "('", NodeID, "','", cultureCode, "'," + Convert.ToInt32((status != TranslationStatusEnum.NotAvailable)) + "," + ScriptHelper.GetString(ItemUrl + "?" + URLHelper.LanguageParameterName + "=" + cultureCode) + ")\" onmouseover=\"DF_Tip('", GetFlagIconUrl(cultureCode, "48x48"), "', '", cultureName, "', '", GetStatusString(status), "', '");

                sb.Append(versionNumber ?? string.Empty);
                sb.Append("', '");
                TimeZoneInfo ti = null;
                sb.Append((lastModification != DateTimeHelper.ZERO_TIME) ? TimeZoneHelper.GetCurrentTimeZoneDateTimeString(lastModification,
                                                                                                                           CMSContext.CurrentUser, CMSContext.CurrentSite, out ti)
                              : string.Empty);
                sb.Append("')\" src=\"");
                sb.Append(GetFlagIconUrl(cultureCode, "16x16"));
                sb.Append("\" alt=\"");
                sb.Append(cultureName);
                sb.Append("\" /></td>\n");

                // Ensure repeat columns
                if (((colsInRow % RepeatColumns) == 0) && (cols != colsCount))
                {
                    sb.Append("</tr><tr>\n");
                    colsInRow = 0;
                }
            }

            // Ensure rest of the table cells
            if ((colsInRow != RepeatColumns) && (colsInRow != 0))
            {
                while (colsInRow < RepeatColumns)
                {
                    sb.Append("<td>&nbsp;</td>\n");
                    ++colsInRow;
                }
            }
            sb.Append("</tr>\n</table>\n");
            ltlFlags.Text = sb.ToString();
        }
    }
Exemplo n.º 6
0
    private static string GetStatusString(TranslationStatusEnum status)
    {
        switch (status)
        {
            case TranslationStatusEnum.NotAvailable:
                return ResHelper.GetString("transman.NotAvailable");

            case TranslationStatusEnum.Outdated:
                return ResHelper.GetString("transman.Outdated");

            default:
                return ResHelper.GetString("transman.Translated");
        }
    }
Exemplo n.º 7
0
    private static string GetStatusCSSClass(TranslationStatusEnum status)
    {
        switch (status)
        {
            case TranslationStatusEnum.NotAvailable:
                return "NotAvailable";

            case TranslationStatusEnum.Outdated:
                return "Outdated";

            default:
                return "Translated";
        }
    }
Exemplo n.º 8
0
    protected object gridLanguages_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        TranslationStatusEnum status = TranslationStatusEnum.NotAvailable;
        DataRowView           drv    = null;

        sourceName = sourceName.ToLowerCSafe();

        if (currentUserInfo == null)
        {
            currentUserInfo = CMSContext.CurrentUser;
        }
        if (currentSiteInfo == null)
        {
            currentSiteInfo = CMSContext.CurrentSite;
        }

        switch (sourceName)
        {
        case "translate":
        case "action":
            ImageButton img = sender as CMSImageButton;
            if (img != null)
            {
                if ((sourceName == "translate") &&
                    (!CMS.TranslationServices.TranslationServiceHelper.AnyServiceAvailable(CurrentSiteName) ||
                     !CMS.TranslationServices.TranslationServiceHelper.IsTranslationAllowed(CurrentSiteName)))
                {
                    img.Visible = false;
                    return(img);
                }

                GridViewRow gvr = parameter as GridViewRow;
                if (gvr != null)
                {
                    // Get datarowview
                    drv = gvr.DataItem as DataRowView;

                    if ((drv != null) && (drv.Row["TranslationStatus"] != DBNull.Value))
                    {
                        // Get translation status
                        status = (TranslationStatusEnum)drv.Row["TranslationStatus"];
                    }
                    else
                    {
                        status = TranslationStatusEnum.NotAvailable;
                    }

                    string culture = (drv != null) ? ValidationHelper.GetString(drv.Row["DocumentCulture"], string.Empty) : string.Empty;

                    // Set appropriate icon
                    if (sourceName == "action")
                    {
                        switch (status)
                        {
                        case TranslationStatusEnum.NotAvailable:
                            img.ImageUrl = GetImageUrl("CMSModules/CMS_Content/Properties/addculture.png");
                            img.ToolTip  = GetString("transman.createnewculture");
                            break;

                        default:
                            img.ImageUrl = GetImageUrl("CMSModules/CMS_Content/Properties/editculture.png");
                            img.ToolTip  = GetString("transman.editculture");
                            break;
                        }

                        // Register redirect script
                        if (RequiresDialog)
                        {
                            if ((sourceName == "action") && (status == TranslationStatusEnum.NotAvailable))
                            {
                                // New culture version
                                img.OnClientClick = "parent.parent.parent.NewDocumentCulture(" + NodeID + ",'" + culture + "');";
                            }
                            else
                            {
                                // Existing culture version
                                ScriptHelper.RegisterWOpenerScript(Page);
                                string url = ResolveUrl(CMSContext.GetUrl(Node.NodeAliasPath, Node.DocumentUrlPath, currentSiteInfo.SiteName));
                                url = URLHelper.AppendQuery(url, "lang=" + culture);
                                img.OnClientClick = "window.refreshPageOnClose = true; window.reloadPageUrl = " + ScriptHelper.GetString(url) + "; if (wopener.RefreshWOpener) { wopener.RefreshWOpener(window); } CloseDialog();";
                            }
                        }
                        else
                        {
                            img.OnClientClick = "RedirectItem(" + NodeID + ", '" + culture + "');";
                        }

                        img.ID = "imgAction";
                    }
                    else
                    {
                        // Add parameters identifier and hash, encode query string
                        if (LicenseHelper.CheckFeature(URLHelper.GetCurrentDomain(), FeatureEnum.TranslationServices))
                        {
                            string returnUrl = CMSContext.ResolveDialogUrl("~/CMSModules/Translations/Pages/TranslateDocuments.aspx") + "?targetculture=" + culture + "&modal=1&nodeid=" + NodeID;
                            returnUrl = URLHelper.AddParameterToUrl(returnUrl, "hash", QueryHelper.GetHash(URLHelper.GetQuery(returnUrl)));

                            img.ImageUrl      = GetImageUrl("CMSModules/CMS_Content/Properties/translate.png");
                            img.ToolTip       = GetString("transman.translate");
                            img.OnClientClick = "modalDialog('" + returnUrl + "', 'TranslateDocument', 550, 440); ";
                        }
                        else
                        {
                            img.Visible = false;
                        }
                        break;
                    }
                }
            }
            return(img);

        case "translationstatus":
            if (parameter == DBNull.Value)
            {
                status = TranslationStatusEnum.NotAvailable;
            }
            else
            {
                status = (TranslationStatusEnum)parameter;
            }
            string statusName = GetString("transman." + status);
            string statusHtml = "<span class=\"" + status + "\">" + statusName + "</span>";
            // .Outdated
            return(statusHtml);

        case "documentculturedisplayname":
            drv = (DataRowView)parameter;
            // Add icon
            return(UniGridFunctions.DocumentCultureFlag(drv, Page));

        case "documentmodifiedwhen":
        case "documentmodifiedwhentooltip":
            if (string.IsNullOrEmpty(parameter.ToString()))
            {
                return("-");
            }
            else
            {
                DateTime modifiedWhen = ValidationHelper.GetDateTime(parameter, DateTimeHelper.ZERO_TIME);
                bool     displayGMT   = (sourceName == "documentmodifiedwhentooltip");
                return(TimeZoneHelper.ConvertToUserTimeZone(modifiedWhen, displayGMT, currentUserInfo, currentSiteInfo));
            }

        case "versionnumber":
            if (string.IsNullOrEmpty(parameter.ToString()))
            {
                return("-");
            }
            break;

        case "documentname":
            if (string.IsNullOrEmpty(parameter.ToString()))
            {
                parameter = "-";
            }
            return(HTMLHelper.HTMLEncode(parameter.ToString()));

        case "published":
            bool published = ValidationHelper.GetBoolean(parameter, false);
            if (published)
            {
                return("<span class=\"DocumentPublishedYes\">" + GetString("General.Yes") + "</span>");
            }
            else
            {
                return("<span class=\"DocumentPublishedNo\">" + GetString("General.No") + "</span>");
            }
        }
        return(parameter);
    }
Exemplo n.º 9
0
    protected DataSet gridDocuments_OnDataReload(string completeWhere, string currentOrder, int currentTopN, string columns, int currentOffset, int currentPageSize, ref int totalRecords)
    {
        string currentSiteName = CMSContext.CurrentSiteName;

        // Check if node is not null
        if (Node != null)
        {
            // Get documents
            int topN = gridLanguages.GridView.PageSize * (gridLanguages.GridView.PageIndex + 1 + gridLanguages.GridView.PagerSettings.PageButtonCount);
            columns = SqlHelperClass.MergeColumns(SqlHelperClass.MergeColumns(TreeProvider.SELECTNODES_REQUIRED_COLUMNS, columns), "DocumentModifiedWhen, VersionNumber, DocumentLastPublished, DocumentIsWaitingForTranslation");
            DataSet   documentsDS = DocumentHelper.GetDocuments(currentSiteName, Node.NodeAliasPath, TreeProvider.ALL_CULTURES, false, null, null, null, -1, false, topN, columns, Tree);
            DataTable documents   = documentsDS.Tables[0];

            if (!DataHelper.DataSourceIsEmpty(documents))
            {
                // Get site cultures
                DataSet allSiteCultures = CultureInfoProvider.GetSiteCultures(currentSiteName).Copy();

                // Rename culture column to enable row transfer
                allSiteCultures.Tables[0].Columns[2].ColumnName = "DocumentCulture";

                // Create where condition for row transfer
                string where = documents.Rows.Cast <DataRow>().Aggregate("DocumentCulture NOT IN (", (current, row) => current + ("'" + SqlHelperClass.GetSafeQueryString(ValidationHelper.GetString(row["DocumentCulture"], string.Empty)) + "',"));
                where        = where.TrimEnd(',') + ")";

                // Transfer missing cultures, keep original list of site cultures
                DataHelper.TransferTableRows(documents, allSiteCultures.Copy().Tables[0], where, null);
                DataHelper.EnsureColumn(documents, "DocumentCultureDisplayName", typeof(string));

                // Ensure culture names
                foreach (DataRow cultDR in documents.Rows)
                {
                    string    cultureCode = cultDR["DocumentCulture"].ToString();
                    DataRow[] cultureRow  = allSiteCultures.Tables[0].Select("DocumentCulture='" + cultureCode + "'");
                    if (cultureRow.Length > 0)
                    {
                        cultDR["DocumentCultureDisplayName"] = cultureRow[0]["CultureName"].ToString();
                    }
                }

                // Ensure default culture to be first
                DataRow[] culturreDRs = documents.Select("DocumentCulture='" + DefaultSiteCulture + "'");
                if (culturreDRs.Length <= 0)
                {
                    throw new Exception("[ReloadData]: Default site culture '" + DefaultSiteCulture + "' is not assigned to the current site.");
                }

                DataRow defaultCultureRow = culturreDRs[0];

                DataRow dr = documents.NewRow();
                dr.ItemArray = defaultCultureRow.ItemArray;
                documents.Rows.InsertAt(dr, 0);
                documents.Rows.Remove(defaultCultureRow);

                // Get last modification date of default culture
                defaultCultureRow       = documents.Select("DocumentCulture='" + DefaultSiteCulture + "'")[0];
                defaultLastModification = ValidationHelper.GetDateTime(defaultCultureRow["DocumentModifiedWhen"], DateTimeHelper.ZERO_TIME);
                defaultLastPublished    = ValidationHelper.GetDateTime(defaultCultureRow["DocumentLastPublished"], DateTimeHelper.ZERO_TIME);

                // Add column containing translation status
                documents.Columns.Add("TranslationStatus", typeof(TranslationStatusEnum));

                // Get proper translation status and store it to datatable
                foreach (DataRow document in documents.Rows)
                {
                    TranslationStatusEnum status = TranslationStatusEnum.NotAvailable;
                    int documentId = ValidationHelper.GetInteger(document["DocumentID"], 0);
                    if (documentId == 0)
                    {
                        status = TranslationStatusEnum.NotAvailable;
                    }
                    else
                    {
                        string   versionNumber    = ValidationHelper.GetString(DataHelper.GetDataRowValue(document, "VersionNumber"), null);
                        DateTime lastModification = DateTimeHelper.ZERO_TIME;

                        if (ValidationHelper.GetBoolean(document["DocumentIsWaitingForTranslation"], false))
                        {
                            status = TranslationStatusEnum.WaitingForTranslation;
                        }
                        else
                        {
                            // Check if document is outdated
                            if (versionNumber != null)
                            {
                                lastModification = ValidationHelper.GetDateTime(document["DocumentLastPublished"], DateTimeHelper.ZERO_TIME);
                                status           = (lastModification < defaultLastPublished) ? TranslationStatusEnum.Outdated : TranslationStatusEnum.Translated;
                            }
                            else
                            {
                                lastModification = ValidationHelper.GetDateTime(document["DocumentModifiedWhen"], DateTimeHelper.ZERO_TIME);
                                status           = (lastModification < defaultLastModification) ? TranslationStatusEnum.Outdated : TranslationStatusEnum.Translated;
                            }
                        }
                    }
                    document["TranslationStatus"] = status;
                }

                // Bind datasource
                DataSet   filteredDocuments = documentsDS.Clone();
                DataRow[] filteredDocs      = documents.Select(gridLanguages.GetDataTableFilter());
                foreach (DataRow row in filteredDocs)
                {
                    filteredDocuments.Tables[0].ImportRow(row);
                }

                return(filteredDocuments);
            }
        }

        return(null);
    }
        public void ReportSectionLanguageExtraB_Every_Property_Has_Get_Set_Test()
        {
            string val1 = "Some text";

            reportSectionLanguageExtraB.ReportSectionLanguageReportTest = val1;
            Assert.AreEqual(val1, reportSectionLanguageExtraB.ReportSectionLanguageReportTest);
            string val2 = "Some text";

            reportSectionLanguageExtraB.LastUpdateContactText = val2;
            Assert.AreEqual(val2, reportSectionLanguageExtraB.LastUpdateContactText);
            string val3 = "Some text";

            reportSectionLanguageExtraB.LanguageText = val3;
            Assert.AreEqual(val3, reportSectionLanguageExtraB.LanguageText);
            string val4 = "Some text";

            reportSectionLanguageExtraB.TranslationStatusReportSectionNameText = val4;
            Assert.AreEqual(val4, reportSectionLanguageExtraB.TranslationStatusReportSectionNameText);
            string val5 = "Some text";

            reportSectionLanguageExtraB.TranslationStatusReportSectionNameTextText = val5;
            Assert.AreEqual(val5, reportSectionLanguageExtraB.TranslationStatusReportSectionNameTextText);
            int val6 = 45;

            reportSectionLanguageExtraB.ReportSectionLanguageID = val6;
            Assert.AreEqual(val6, reportSectionLanguageExtraB.ReportSectionLanguageID);
            int val7 = 45;

            reportSectionLanguageExtraB.ReportSectionID = val7;
            Assert.AreEqual(val7, reportSectionLanguageExtraB.ReportSectionID);
            LanguageEnum val8 = (LanguageEnum)3;

            reportSectionLanguageExtraB.Language = val8;
            Assert.AreEqual(val8, reportSectionLanguageExtraB.Language);
            string val9 = "Some text";

            reportSectionLanguageExtraB.ReportSectionName = val9;
            Assert.AreEqual(val9, reportSectionLanguageExtraB.ReportSectionName);
            TranslationStatusEnum val10 = (TranslationStatusEnum)3;

            reportSectionLanguageExtraB.TranslationStatusReportSectionName = val10;
            Assert.AreEqual(val10, reportSectionLanguageExtraB.TranslationStatusReportSectionName);
            string val11 = "Some text";

            reportSectionLanguageExtraB.ReportSectionText = val11;
            Assert.AreEqual(val11, reportSectionLanguageExtraB.ReportSectionText);
            TranslationStatusEnum val12 = (TranslationStatusEnum)3;

            reportSectionLanguageExtraB.TranslationStatusReportSectionText = val12;
            Assert.AreEqual(val12, reportSectionLanguageExtraB.TranslationStatusReportSectionText);
            DateTime val13 = new DateTime(2010, 3, 4);

            reportSectionLanguageExtraB.LastUpdateDate_UTC = val13;
            Assert.AreEqual(val13, reportSectionLanguageExtraB.LastUpdateDate_UTC);
            int val14 = 45;

            reportSectionLanguageExtraB.LastUpdateContactTVItemID = val14;
            Assert.AreEqual(val14, reportSectionLanguageExtraB.LastUpdateContactTVItemID);
            bool val15 = true;

            reportSectionLanguageExtraB.HasErrors = val15;
            Assert.AreEqual(val15, reportSectionLanguageExtraB.HasErrors);
            IEnumerable <ValidationResult> val48 = new List <ValidationResult>()
            {
                new ValidationResult("First CSSPError Message")
            }.AsEnumerable();

            reportSectionLanguageExtraB.ValidationResults = val48;
            Assert.AreEqual(val48, reportSectionLanguageExtraB.ValidationResults);
        }
Exemplo n.º 11
0
    public override void ReloadData()
    {
        // Hide control for one culture version
        if ((DataSource == null) || DataHelper.DataSourceIsEmpty(SiteCultures) || (SiteCultures.Tables[0].Rows.Count <= 1))
        {
            Visible = false;
        }
        else
        {
            // Check the data source
            if (!(DataSource is GroupedDataSource))
            {
                throw new Exception("[DocumentFlags]: Only GroupedDataSource is supported as a data source.");
            }

            // Register tooltip script
            ScriptHelper.RegisterTooltip(Page);

            // Get appropriate table from the data source
            GroupedDataSource gDS   = (GroupedDataSource)DataSource;
            DataTable         table = gDS.GetGroupDataTable(NodeID);

            // Get document in the default site culture
            DateTime  defaultLastModification = DateTimeHelper.ZERO_TIME;
            DateTime  defaultLastPublished    = DateTimeHelper.ZERO_TIME;
            bool      defaultCultureExists    = false;
            DataRow[] rows = null;
            if (table != null)
            {
                rows = table.Select("DocumentCulture='" + DefaultSiteCulture + "'");
                defaultCultureExists = (rows.Length > 0);
            }

            if (defaultCultureExists)
            {
                defaultLastModification = ValidationHelper.GetDateTime(rows[0]["DocumentModifiedWhen"], DateTimeHelper.ZERO_TIME);
                defaultLastPublished    = ValidationHelper.GetDateTime(rows[0]["DocumentLastPublished"], DateTimeHelper.ZERO_TIME);
            }

            // Build the content
            StringBuilder sb = new StringBuilder();

            sb.Append("<div class=\"document-flags\">");
            int colsInRow = 0;
            int cols      = 0;
            int colsCount = SiteCultures.Tables[0].Rows.Count;
            if (colsCount < RepeatColumns)
            {
                RepeatColumns = colsCount;
            }

            foreach (DataRow dr in SiteCultures.Tables[0].Rows)
            {
                ++cols;
                ++colsInRow;
                DateTime lastModification    = DateTimeHelper.ZERO_TIME;
                string   versionNumber       = null;
                string   className           = null;
                TranslationStatusEnum status = TranslationStatusEnum.NotAvailable;
                string cultureName           = DataHelper.GetStringValue(dr, "CultureName", "-");
                string cultureCode           = DataHelper.GetStringValue(dr, "CultureCode", "-");

                // Get document for given culture
                if (table != null)
                {
                    rows = table.Select("DocumentCulture='" + cultureCode + "'");
                    // Document doesn't exist
                    if (rows.Length != 0)
                    {
                        className     = DataHelper.GetStringValue(rows[0], "ClassName", null);
                        versionNumber = DataHelper.GetStringValue(rows[0], "DocumentLastVersionNumber", null);

                        // Check if document is outdated
                        if (versionNumber != null)
                        {
                            lastModification = ValidationHelper.GetDateTime(rows[0]["DocumentLastPublished"], DateTimeHelper.ZERO_TIME);
                            status           = (lastModification < defaultLastPublished) ? TranslationStatusEnum.Outdated : TranslationStatusEnum.Translated;
                        }
                        else
                        {
                            lastModification = ValidationHelper.GetDateTime(rows[0]["DocumentModifiedWhen"], DateTimeHelper.ZERO_TIME);
                            status           = (lastModification < defaultLastModification) ? TranslationStatusEnum.Outdated : TranslationStatusEnum.Translated;
                        }
                    }
                }

                sb.Append("<span class=\"", GetStatusCSSClass(status), "\">");

                var itemUrl = (className != null && DataClassInfoProvider.GetDataClassInfo(className).ClassHasURL) ? UrlResolver.ResolveUrl(DocumentUIHelper.GetPageHandlerLivePath(NodeID, cultureCode)) : "#";
                sb.Append("<img onmouseout=\"UnTip()\" style=\"cursor:pointer;\" onclick=\"", SelectJSFunction, "('", NodeID, "','", cultureCode, "'," + Convert.ToInt32((status != TranslationStatusEnum.NotAvailable)) + "," + ScriptHelper.GetString(itemUrl) + ")\" onmouseover=\"DF_Tip('", GetFlagIconUrl(cultureCode, "48x48"), "', '", cultureName, "', '", GetStatusString(status), "', '");

                sb.Append(versionNumber ?? string.Empty);
                sb.Append("', '");
                sb.Append((lastModification != DateTimeHelper.ZERO_TIME) ?
                          TimeZoneHelper.ConvertToUserTimeZone(lastModification, true, MembershipContext.AuthenticatedUser, SiteContext.CurrentSite)
                    : string.Empty);
                sb.Append("')\" src=\"");
                sb.Append(GetFlagIconUrl(cultureCode, "16x16"));
                sb.Append("\" alt=\"");
                sb.Append(cultureName);
                sb.Append("\" /></span>");

                // Ensure repeat columns
                if (((colsInRow % RepeatColumns) == 0) && (cols != colsCount))
                {
                    sb.Append("<br />\n");
                    colsInRow = 0;
                }
            }

            sb.Append("</div>\n");
            ltlFlags.Text = sb.ToString();
        }
    }
        public void MWQMRunLanguageExtraA_Every_Property_Has_Get_Set_Test()
        {
            string val1 = "Some text";

            mWQMRunLanguageExtraA.LastUpdateContactText = val1;
            Assert.AreEqual(val1, mWQMRunLanguageExtraA.LastUpdateContactText);
            string val2 = "Some text";

            mWQMRunLanguageExtraA.LanguageText = val2;
            Assert.AreEqual(val2, mWQMRunLanguageExtraA.LanguageText);
            string val3 = "Some text";

            mWQMRunLanguageExtraA.TranslationStatusRunCommentText = val3;
            Assert.AreEqual(val3, mWQMRunLanguageExtraA.TranslationStatusRunCommentText);
            string val4 = "Some text";

            mWQMRunLanguageExtraA.TranslationStatusRunWeatherCommentText = val4;
            Assert.AreEqual(val4, mWQMRunLanguageExtraA.TranslationStatusRunWeatherCommentText);
            int val5 = 45;

            mWQMRunLanguageExtraA.MWQMRunLanguageID = val5;
            Assert.AreEqual(val5, mWQMRunLanguageExtraA.MWQMRunLanguageID);
            int val6 = 45;

            mWQMRunLanguageExtraA.MWQMRunID = val6;
            Assert.AreEqual(val6, mWQMRunLanguageExtraA.MWQMRunID);
            LanguageEnum val7 = (LanguageEnum)3;

            mWQMRunLanguageExtraA.Language = val7;
            Assert.AreEqual(val7, mWQMRunLanguageExtraA.Language);
            string val8 = "Some text";

            mWQMRunLanguageExtraA.RunComment = val8;
            Assert.AreEqual(val8, mWQMRunLanguageExtraA.RunComment);
            TranslationStatusEnum val9 = (TranslationStatusEnum)3;

            mWQMRunLanguageExtraA.TranslationStatusRunComment = val9;
            Assert.AreEqual(val9, mWQMRunLanguageExtraA.TranslationStatusRunComment);
            string val10 = "Some text";

            mWQMRunLanguageExtraA.RunWeatherComment = val10;
            Assert.AreEqual(val10, mWQMRunLanguageExtraA.RunWeatherComment);
            TranslationStatusEnum val11 = (TranslationStatusEnum)3;

            mWQMRunLanguageExtraA.TranslationStatusRunWeatherComment = val11;
            Assert.AreEqual(val11, mWQMRunLanguageExtraA.TranslationStatusRunWeatherComment);
            DateTime val12 = new DateTime(2010, 3, 4);

            mWQMRunLanguageExtraA.LastUpdateDate_UTC = val12;
            Assert.AreEqual(val12, mWQMRunLanguageExtraA.LastUpdateDate_UTC);
            int val13 = 45;

            mWQMRunLanguageExtraA.LastUpdateContactTVItemID = val13;
            Assert.AreEqual(val13, mWQMRunLanguageExtraA.LastUpdateContactTVItemID);
            bool val14 = true;

            mWQMRunLanguageExtraA.HasErrors = val14;
            Assert.AreEqual(val14, mWQMRunLanguageExtraA.HasErrors);
            IEnumerable <ValidationResult> val45 = new List <ValidationResult>()
            {
                new ValidationResult("First CSSPError Message")
            }.AsEnumerable();

            mWQMRunLanguageExtraA.ValidationResults = val45;
            Assert.AreEqual(val45, mWQMRunLanguageExtraA.ValidationResults);
        }
Exemplo n.º 13
0
    protected object gridLanguages_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        TranslationStatusEnum status = TranslationStatusEnum.NotAvailable;
        DataRowView           drv    = null;

        sourceName = sourceName.ToLower();
        switch (sourceName)
        {
        case "action":
            ImageButton img = new ImageButton();
            if (sender != null)
            {
                // Get datarowview
                drv = UniGridFunctions.GetDataRowView(sender as DataControlFieldCell);

                if ((drv != null) && (drv.Row["TranslationStatus"] != DBNull.Value))
                {
                    // Get translation status
                    status = (TranslationStatusEnum)drv.Row["TranslationStatus"];
                }
                else
                {
                    status = TranslationStatusEnum.NotAvailable;
                }

                // Set appropriate icon
                switch (status)
                {
                case TranslationStatusEnum.NotAvailable:
                    img.ImageUrl = GetImageUrl("CMSModules/CMS_Content/Properties/addculture.png");
                    img.ToolTip  = GetString("transman.createnewculture");
                    break;

                default:
                    img.ImageUrl = GetImageUrl("CMSModules/CMS_Content/Properties/editculture.png");
                    img.ToolTip  = GetString("transman.editculture");
                    break;
                }

                string culture = (drv != null) ? ValidationHelper.GetString(drv.Row["DocumentCulture"], string.Empty) : string.Empty;

                // Register redirect script
                img.OnClientClick = "RedirectItem(" + nodeId + ", '" + culture + "');";
                img.ID            = "imgAction";
            }
            return(img);

        case "translationstatus":
            if (parameter == DBNull.Value)
            {
                status = TranslationStatusEnum.NotAvailable;
            }
            else
            {
                status = (TranslationStatusEnum)parameter;
            }
            string statusName = GetString("transman." + status);
            string statusHtml = "<span class=\"" + status + "\">" + statusName + "</span>";
            // .Outdated
            return(statusHtml);

        case "documentculturedisplayname":
            drv = (DataRowView)parameter;
            // Add icon
            return(UniGridFunctions.DocumentCultureFlag(drv, this.Page));

        case "documentmodifiedwhen":
        case "documentmodifiedwhentooltip":
            if (string.IsNullOrEmpty(parameter.ToString()))
            {
                return("-");
            }
            else
            {
                DateTime modifiedWhen = ValidationHelper.GetDateTime(parameter, DateTimeHelper.ZERO_TIME);
                if (currentUserInfo == null)
                {
                    currentUserInfo = CMSContext.CurrentUser;
                }
                if (currentSiteInfo == null)
                {
                    currentSiteInfo = CMSContext.CurrentSite;
                }

                bool displayGMT = (sourceName == "documentmodifiedwhentooltip");
                return(TimeZoneHelper.ConvertToUserTimeZone(modifiedWhen, displayGMT, currentUserInfo, currentSiteInfo));
            }

        case "versionnumber":
            if (string.IsNullOrEmpty(parameter.ToString()))
            {
                return("-");
            }
            break;

        case "documentname":
            if (string.IsNullOrEmpty(parameter.ToString()))
            {
                parameter = "-";
            }
            return(HTMLHelper.HTMLEncode(parameter.ToString()));

        case "published":
            bool published = ValidationHelper.GetBoolean(parameter, false);
            if (published)
            {
                return("<span class=\"DocumentPublishedYes\">" + GetString("General.Yes") + "</span>");
            }
            else
            {
                return("<span class=\"DocumentPublishedNo\">" + GetString("General.No") + "</span>");
            }
        }
        return(parameter);
    }
Exemplo n.º 14
0
        public void MWQMSubsectorLanguageExtraB_Every_Property_Has_Get_Set_Test()
        {
            string val1 = "Some text";

            mWQMSubsectorLanguageExtraB.MWQMSubsectorLanguageReportTest = val1;
            Assert.AreEqual(val1, mWQMSubsectorLanguageExtraB.MWQMSubsectorLanguageReportTest);
            string val2 = "Some text";

            mWQMSubsectorLanguageExtraB.LastUpdateContactText = val2;
            Assert.AreEqual(val2, mWQMSubsectorLanguageExtraB.LastUpdateContactText);
            string val3 = "Some text";

            mWQMSubsectorLanguageExtraB.LanguageText = val3;
            Assert.AreEqual(val3, mWQMSubsectorLanguageExtraB.LanguageText);
            string val4 = "Some text";

            mWQMSubsectorLanguageExtraB.TranslationStatusSubsectorDescText = val4;
            Assert.AreEqual(val4, mWQMSubsectorLanguageExtraB.TranslationStatusSubsectorDescText);
            string val5 = "Some text";

            mWQMSubsectorLanguageExtraB.TranslationStatusLogBookText = val5;
            Assert.AreEqual(val5, mWQMSubsectorLanguageExtraB.TranslationStatusLogBookText);
            int val6 = 45;

            mWQMSubsectorLanguageExtraB.MWQMSubsectorLanguageID = val6;
            Assert.AreEqual(val6, mWQMSubsectorLanguageExtraB.MWQMSubsectorLanguageID);
            int val7 = 45;

            mWQMSubsectorLanguageExtraB.MWQMSubsectorID = val7;
            Assert.AreEqual(val7, mWQMSubsectorLanguageExtraB.MWQMSubsectorID);
            LanguageEnum val8 = (LanguageEnum)3;

            mWQMSubsectorLanguageExtraB.Language = val8;
            Assert.AreEqual(val8, mWQMSubsectorLanguageExtraB.Language);
            string val9 = "Some text";

            mWQMSubsectorLanguageExtraB.SubsectorDesc = val9;
            Assert.AreEqual(val9, mWQMSubsectorLanguageExtraB.SubsectorDesc);
            TranslationStatusEnum val10 = (TranslationStatusEnum)3;

            mWQMSubsectorLanguageExtraB.TranslationStatusSubsectorDesc = val10;
            Assert.AreEqual(val10, mWQMSubsectorLanguageExtraB.TranslationStatusSubsectorDesc);
            string val11 = "Some text";

            mWQMSubsectorLanguageExtraB.LogBook = val11;
            Assert.AreEqual(val11, mWQMSubsectorLanguageExtraB.LogBook);
            TranslationStatusEnum val12 = (TranslationStatusEnum)3;

            mWQMSubsectorLanguageExtraB.TranslationStatusLogBook = val12;
            Assert.AreEqual(val12, mWQMSubsectorLanguageExtraB.TranslationStatusLogBook);
            DateTime val13 = new DateTime(2010, 3, 4);

            mWQMSubsectorLanguageExtraB.LastUpdateDate_UTC = val13;
            Assert.AreEqual(val13, mWQMSubsectorLanguageExtraB.LastUpdateDate_UTC);
            int val14 = 45;

            mWQMSubsectorLanguageExtraB.LastUpdateContactTVItemID = val14;
            Assert.AreEqual(val14, mWQMSubsectorLanguageExtraB.LastUpdateContactTVItemID);
            bool val15 = true;

            mWQMSubsectorLanguageExtraB.HasErrors = val15;
            Assert.AreEqual(val15, mWQMSubsectorLanguageExtraB.HasErrors);
            IEnumerable <ValidationResult> val48 = new List <ValidationResult>()
            {
                new ValidationResult("First CSSPError Message")
            }.AsEnumerable();

            mWQMSubsectorLanguageExtraB.ValidationResults = val48;
            Assert.AreEqual(val48, mWQMSubsectorLanguageExtraB.ValidationResults);
        }