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); } }