Ejemplo n.º 1
0
        public PublishSchedule(Item item)
        {
            InnerItem           = item;
            SchedulerUsername   = item[SchedulerUsernameId];
            Unpublish           = "1" == item[UnpublishId];
            PublishChildren     = "1" == item[PublishChildrenId];
            PublishRelatedItems = "1" == item[PublishRelatedItemsId];
            PublishMode         = ParseMode(item[PublishModeId]);
            IsPublished         = "1" == item[IsPublishedId];

            if (!string.IsNullOrWhiteSpace(SchedulerUsername))
            {
                User user = User.FromName(SchedulerUsername, false);
                if (user != null && user.Profile != null)
                {
                    SchedulerEmail = user.Profile.Email;
                }
            }

            string sourceDatabaseName = item[SourceDatabaseId];

            if (!string.IsNullOrWhiteSpace(sourceDatabaseName))
            {
                SourceDatabase = Database.GetDatabase(sourceDatabaseName);
            }

            string targetDatabaseNames = item[TargetDatabasesId];

            if (!string.IsNullOrWhiteSpace(targetDatabaseNames))
            {
                TargetDatabases = targetDatabaseNames.Split('|').Select(Database.GetDatabase);
            }

            string itemToPublishPath = item[ItemToPublishId];

            if (!string.IsNullOrWhiteSpace(itemToPublishPath) && SourceDatabase != null)
            {
                ItemToPublish = SourceDatabase.GetItem(itemToPublishPath);
            }

            string dateString = item[PublishDateId];

            if (!string.IsNullOrWhiteSpace(dateString))
            {
                PublishDate = DateUtil.IsoDateToDateTime(dateString, DateTime.MinValue);
            }

            string languages = item[TargetLanguagesId];

            if (!string.IsNullOrWhiteSpace(languages))
            {
                TargetLanguages = languages.Split('|').Select(LanguageManager.GetLanguage).Where(l => l != null);
            }
        }