コード例 #1
0
ファイル: PageCopyHelper.cs プロジェクト: AuthorProxy/QP
        private int CopyObject(BllObject sourceObj)
        {
            var tempObj = ObjectRepository.GetObjectPropertiesById(sourceObj.Id);

            tempObj.Id       = 0;
            tempObj.PageId   = DestinationId;
            tempObj.LockedBy = 0;
            var newObj = DefaultRepository.Save <BllObject, ObjectDAL>(tempObj);

            if (sourceObj.IsObjectContainerType)
            {
                CopyContainer(newObj.Id, sourceObj.Container);
                CopyContainerStatuses(newObj.Id, sourceObj.Id);
            }
            else if (sourceObj.IsObjectFormType)
            {
                CopyContentForm(newObj.Id, sourceObj.ContentForm);
            }
            var formats        = ObjectFormatRepository.GetFormatsByObjectId(sourceObj.Id);
            var newDefFormatId = CopyObjectFormats(newObj.Id, sourceObj);

            if (newDefFormatId != 0)
            {
                ObjectRepository.UpdateDefaultFormatId(newObj.Id, newDefFormatId);
            }

            CopyObjectValues(newObj.Id, sourceObj);

            return(newObj.Id);
        }
コード例 #2
0
        public static int CopySiteTemplates(int sourceSiteId, int destinationSiteId, int templateNumber)
        {
            var templateIdNew       = PageTemplateRepository.CopySiteTemplates(sourceSiteId, destinationSiteId, templateNumber);
            var relBetweenTemplates = PageTemplateRepository.GetRelationsBetweenTemplates(sourceSiteId, destinationSiteId, templateIdNew);
            var relBetweenContents  = ContentRepository.GetRelationsBetweenContentsXml(sourceSiteId, destinationSiteId, string.Empty);

            PageRepository.CopySiteTemplatePages(sourceSiteId, destinationSiteId, relBetweenTemplates);

            var relBetweenPages = PageRepository.GetRelationsBetweenPages(relBetweenTemplates);

            ObjectRepository.CopySiteTemplateObjects(relBetweenTemplates, relBetweenPages, out var relBetweenObjects);

            ObjectFormatRepository.CopySiteTemplateObjectFormats(relBetweenObjects, out var relBetweenObjectFormats);

            ObjectRepository.CopySiteUpdateObjects(relBetweenObjectFormats, relBetweenObjects);
            ObjectRepository.CopySiteObjectValues(relBetweenObjects);
            ObjectRepository.CopySiteContainers(relBetweenObjects, relBetweenContents);

            var relBetweenStatuses = ContentRepository.GetRelationsBetweenStatuses(sourceSiteId, destinationSiteId);

            ObjectRepository.CopyContainerStatuses(relBetweenStatuses, relBetweenObjects);

            NotificationRepository.CopySiteUpdateNotifications(relBetweenObjectFormats, relBetweenContents);

            return(templateIdNew != 0 ? 1 : 0);
        }
コード例 #3
0
        public string ReadDefaultPresentation(int formatId)
        {
            var format     = ObjectFormatRepository.ReadObjectFormat(formatId, true);
            var obj        = ObjectRepository.GetObjectPropertiesById(format.ParentEntityId);
            var pathToCopy = SitePathRepository.GetDirectoryPathToCopy() + Path.DirectorySeparatorChar + "default" + Path.DirectorySeparatorChar;

            return(obj.IsObjectContainerType ? ReadFileAsString($"{pathToCopy}container_presentation.txt") : string.Empty);
        }
コード例 #4
0
        public string ReadDefaultCode(int formatId)
        {
            var format            = ObjectFormatRepository.ReadObjectFormat(formatId, true);
            var obj               = ObjectRepository.GetObjectPropertiesById(format.ParentEntityId);
            var netLanguagePrefix = GetLangPrefix(format.NetLanguageId);
            var pathToCopy        = SitePathRepository.GetDirectoryPathToCopy() + Path.DirectorySeparatorChar + "default" + Path.DirectorySeparatorChar;

            return(ReadFileAsString(obj.IsObjectContainerType ? $"{pathToCopy}container_code_{netLanguagePrefix}.txt" : $"{pathToCopy}generic_code_{netLanguagePrefix}.txt"));
        }
コード例 #5
0
        public NotificationObjectFormat UpdateNotificationTemplateFormat(NotificationObjectFormat item)
        {
            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }

            return(ObjectFormatRepository.UpdateNotificationTemplateFormat(item));
        }
コード例 #6
0
ファイル: FormatService.cs プロジェクト: QuantumArt/QP
        public ObjectFormatVersion GetMergedObjectFormatVersion(int[] ids, int parentId, bool pageOrTemplate)
        {
            if (ids == null)
            {
                throw new ArgumentNullException(nameof(ids));
            }

            if (ids.Length != 2)
            {
                throw new ArgumentException("Wrong ids length");
            }

            var result   = GetOrderedIds(ids);
            var version1 = PageTemplateRepository.ReadFormatVersion(result.Item1);

            if (version1 == null)
            {
                throw new Exception(string.Format(TemplateStrings.FormatVersionNotFoundForFormat, result.Item1, parentId));
            }

            ObjectFormatVersion version2;

            if (result.Item2 == ObjectFormatVersion.CurrentVersionId)
            {
                var parent = ObjectFormatRepository.ReadObjectFormat(parentId, pageOrTemplate);
                if (parent == null)
                {
                    throw new Exception(string.Format(TemplateStrings.FormatNotFound, parentId));
                }

                version2 = new ObjectFormatVersion
                {
                    Name               = parent.Name,
                    NetFormatName      = parent.NetFormatName,
                    Description        = parent.Description,
                    NetLanguage        = parent.NetLanguageId.HasValue ? PageTemplateRepository.GetNetLanguageById(parent.NetLanguageId.Value) : null,
                    FormatBody         = parent.FormatBody,
                    CodeBehind         = parent.CodeBehind,
                    LastModifiedByUser = parent.LastModifiedByUser,
                    Modified           = parent.Modified
                };
            }
            else
            {
                version2 = PageTemplateRepository.ReadFormatVersion(result.Item2);
                if (version2 == null)
                {
                    throw new Exception(string.Format(TemplateStrings.FormatVersionNotFoundForFormat, result.Item2, parentId));
                }
            }

            version1.MergeToVersion(version2);
            return(version1);
        }
コード例 #7
0
ファイル: FormatService.cs プロジェクト: QuantumArt/QP
        public void CancelFormat(int id, bool pageOrTemplate)
        {
            var format = ObjectFormatRepository.ReadObjectFormat(id, pageOrTemplate);

            if (format == null)
            {
                throw new ApplicationException(string.Format(TemplateStrings.FormatNotFound, id));
            }

            format.AutoUnlock();
        }
コード例 #8
0
ファイル: FormatService.cs プロジェクト: QuantumArt/QP
        public void CaptureLockPageObjectFormat(int id)
        {
            var format = ObjectFormatRepository.ReadObjectFormat(id, false);

            if (format == null)
            {
                throw new Exception(string.Format(TemplateStrings.FormatNotFound, id));
            }

            if (format.CanBeUnlocked)
            {
                EntityObjectRepository.CaptureLock(format);
            }
        }
コード例 #9
0
        /// <summary>
        /// Возвращает упрощенный список сущностей
        /// </summary>
        public static List <ListItem> SimpleList(SimpleListQuery query)
        {
            var itemList = new List <ListItem>();

            if (query.EntityTypeCode == EntityTypeCode.ContentGroup)
            {
                itemList = ContentRepository.GetGroupSimpleList(query.ParentEntityId, query.SelectedEntitiesIds).ToList();
            }
            else if (query.EntityTypeCode == EntityTypeCode.Article || query.EntityTypeCode == EntityTypeCode.ArchiveArticle)
            {
                itemList = ArticleRepository.GetSimpleList(query);
            }
            else if (query.EntityTypeCode == EntityTypeCode.Content)
            {
                itemList.AddRange(ContentRepository.GetSimpleList(query.ParentEntityId, query.SelectedEntitiesIds));
            }
            else if (query.EntityTypeCode == EntityTypeCode.Site)
            {
                itemList.AddRange(SiteRepository.GetSimpleList(query.SelectedEntitiesIds));
            }
            else if (query.EntityTypeCode == EntityTypeCode.User)
            {
                itemList.AddRange(UserRepository.GetSimpleList(query.SelectedEntitiesIds));
            }
            else if (query.EntityTypeCode == EntityTypeCode.UserGroup)
            {
                itemList.AddRange(UserGroupRepository.GetSimpleList(query.SelectedEntitiesIds));
            }
            else if (query.EntityTypeCode == EntityTypeCode.TemplateObjectFormat)
            {
                itemList.AddRange(ObjectFormatRepository.GetObjectFormats(query.ParentEntityId, query.ActualListId, query.SelectedEntitiesIds));
            }
            else if (query.EntityTypeCode == EntityTypeCode.Page)
            {
                itemList.AddRange(PageTemplateRepository.GetPageSimpleList(query.SelectedEntitiesIds));
            }
            else if (query.EntityTypeCode == EntityTypeCode.StatusType)
            {
                itemList.AddRange(StatusTypeRepository.GetStatusSimpleList(query.SelectedEntitiesIds));
            }
            else if (query.EntityTypeCode == EntityTypeCode.Field)
            {
                itemList.AddRange(FieldRepository.GetList(query.SelectedEntitiesIds).Select(c => new ListItem(c.Id.ToString(), c.Name)));
            }

            return(itemList);
        }
コード例 #10
0
ファイル: EntityObjectService.cs プロジェクト: AuthorProxy/QP
        /// <summary>
        /// Возвращает упрощенный список сущностей
        /// </summary>
        /// <param name="entityTypeCode">код типа сущности</param>
        /// <param name="parentEntityId">идентификатор родительской сущности</param>
        /// <param name="entityId">идентификатор сущности</param>
        /// <param name="listId">дополнительный параметр для идентификации списка</param>
        /// <param name="selectionMode">режим выделения списка</param>
        /// <param name="selectedEntitiesIDs">идентификаторы выбранных сущностей</param>
        /// <param name="filter"></param>
        /// <param name="testEntityId"></param>
        /// <returns>упрощенный список сущностей</returns>
        public static List <ListItem> SimpleList(string entityTypeCode, int parentEntityId, int?entityId, int?listId, ListSelectionMode selectionMode, int[] selectedEntitiesIDs, string filter, int testEntityId)
        {
            var itemList = new List <ListItem>();

            if (entityTypeCode == EntityTypeCode.ContentGroup)
            {
                itemList = ContentRepository.GetGroupSimpleList(parentEntityId, selectedEntitiesIDs).ToList();
            }
            else if (entityTypeCode == EntityTypeCode.Article || entityTypeCode == EntityTypeCode.ArchiveArticle)
            {
                itemList = ArticleRepository.GetSimpleList(parentEntityId, entityId, listId, selectionMode, selectedEntitiesIDs, filter, testEntityId);
            }
            else if (entityTypeCode == EntityTypeCode.Content)
            {
                itemList.AddRange(ContentRepository.GetSimpleList(parentEntityId, selectedEntitiesIDs));
            }
            else if (entityTypeCode == EntityTypeCode.Site)
            {
                itemList.AddRange(SiteRepository.GetSimpleList(selectedEntitiesIDs));
            }
            else if (entityTypeCode == EntityTypeCode.User)
            {
                itemList.AddRange(UserRepository.GetSimpleList(selectedEntitiesIDs));
            }
            else if (entityTypeCode == EntityTypeCode.UserGroup)
            {
                itemList.AddRange(UserGroupRepository.GetSimpleList(selectedEntitiesIDs));
            }
            else if (entityTypeCode == EntityTypeCode.TemplateObjectFormat)
            {
                itemList.AddRange(ObjectFormatRepository.GetObjectFormats(parentEntityId, listId, selectedEntitiesIDs));
            }
            else if (entityTypeCode == EntityTypeCode.Page)
            {
                itemList.AddRange(PageTemplateRepository.GetPageSimpleList(selectedEntitiesIDs));
            }
            else if (entityTypeCode == EntityTypeCode.StatusType)
            {
                itemList.AddRange(StatusTypeRepository.GetStatusSimpleList(selectedEntitiesIDs));
            }
            else if (entityTypeCode == EntityTypeCode.Field)
            {
                itemList.AddRange(FieldRepository.GetList(selectedEntitiesIDs).Select(c => new ListItem(c.Id.ToString(), c.Name)));
            }

            return(itemList);
        }
コード例 #11
0
        public ObjectFormat ReadFormatProperties(int id, bool pageOrTemplate, bool withAutoLock = true)
        {
            var format = ObjectFormatRepository.ReadObjectFormat(id, pageOrTemplate);

            if (format == null)
            {
                throw new ApplicationException(string.Format(TemplateStrings.FormatNotFound, id));
            }

            if (withAutoLock)
            {
                format.AutoLock();
            }
            format.LoadLockedByUser();
            format.PageOrTemplate = pageOrTemplate;
            format.ReplacePlaceHoldersToUrls();
            return(format);
        }
コード例 #12
0
        private static void ManageFormatSearchItemsDescription(IEnumerable <ObjectFormatSearchResultListItem> data, string filter)
        {
            if (string.IsNullOrWhiteSpace(filter))
            {
                return;
            }

            foreach (var item in data)
            {
                var format = ObjectFormatRepository.ReadObjectFormat(item.Id, true);
                if (!string.IsNullOrWhiteSpace(format.CodeBehind) && format.CodeBehind.Contains(filter))
                {
                    item.Description = FoundTextMarker.GetSimpleRelevantMarkedText(WebUtility.HtmlEncode(format.CodeBehind), filter, 20, "<span class='seachResultHighlight'>", "</span>");
                    continue;
                }

                if (!string.IsNullOrWhiteSpace(format.FormatBody) && format.FormatBody.Contains(filter))
                {
                    item.Description = FoundTextMarker.GetSimpleRelevantMarkedText(WebUtility.HtmlEncode(format.FormatBody), filter, 20, "<span class='seachResultHighlight'>", "</span>");
                }
            }
        }
コード例 #13
0
ファイル: FormatService.cs プロジェクト: QuantumArt/QP
        public MessageResult RemoveObjectFormat(int id, bool pageOrTemplate)
        {
            var format = ObjectFormatRepository.ReadObjectFormat(id, pageOrTemplate);

            if (format == null)
            {
                throw new ApplicationException(string.Format(TemplateStrings.FormatNotFound, id));
            }

            if (format.LockedByAnyoneElse)
            {
                return(MessageResult.Error(string.Format(TemplateStrings.LockedByAnyoneElse, format.LockedByDisplayName)));
            }
            if (format.Notifications.Any())
            {
                return(MessageResult.Error(TemplateStrings.UnableToDeleteFormat));
            }

            ManagePageAndObjectModified(format);
            PageTemplateRepository.DeleteObjectFormat(id);
            return(null);
        }
コード例 #14
0
ファイル: PageCopyHelper.cs プロジェクト: AuthorProxy/QP
        private int CopyObjectFormats(int newObjId, BllObject oldObj)
        {
            var result  = 0;
            var formats = ObjectFormatRepository.GetFormatsByObjectId(oldObj.Id);

            foreach (var frmt in formats)
            {
                frmt.Id       = 0;
                frmt.ObjectId = newObjId;
                frmt.LockedBy = 0;

                if (frmt.Id == oldObj.DefaultFormatId)
                {
                    result = FormatRepository.SaveObjectFormatProperties(frmt).Id;
                }

                else
                {
                    FormatRepository.SaveObjectFormatProperties(frmt);
                }
            }

            return(result);
        }
コード例 #15
0
 public IEnumerable <ListItem> GetObjectFormatsAsListItemsByContentId(int contentId) => ObjectFormatRepository.GetObjectFormats(0, contentId, new int[] { });
コード例 #16
0
 public bool IsSiteDotNetByObjectFormatId(int objectFormatId) => ObjectFormatRepository.IsSiteDotNeByObjectFormatId(objectFormatId);
コード例 #17
0
 private static int CreateDefaultFormat(int contentId, string backendUrl, string currentCustomerCode) => ObjectFormatRepository.CreateDefaultFormat(contentId, backendUrl, currentCustomerCode);
コード例 #18
0
 public NotificationObjectFormat ReadNotificationTemplateFormat(int id) => ObjectFormatRepository.ReadNotificationTemplateFormat(id);