Esempio n. 1
0
        public Guid UpdateOrCreateContentGroup(ContentGroup contentGroup, int templateId)
        {
            var appMan = new AppManager(_zoneId, _appId, Log);

            if (!contentGroup.Exists)
            {
                Log.Add($"doesn't exist, will creat new CG with template#{templateId}");
                return(appMan.Entities.Create(ContentGroupTypeName, new Dictionary <string, object>
                {
                    { "Template", new List <int> {
                          templateId
                      } },
                    { AppConstants.Content, new List <int>() },
                    { AppConstants.Presentation, new List <int>() },
                    { AppConstants.ListContent, new List <int>() },
                    { AppConstants.ListPresentation, new List <int>() }
                }).Item2);        // new guid
            }
            else
            {
                Log.Add($"exists, create for group#{contentGroup.ContentGroupGuid} with template#{templateId}");
                appMan.Entities.UpdateParts(contentGroup._contentGroupEntity.EntityId,
                                            new Dictionary <string, object> {
                    { "Template", new List <int?> {
                          templateId
                      } }
                });

                return(contentGroup.ContentGroupGuid);        // guid didn't change
            }
        }
Esempio n. 2
0
        public Guid UpdateOrCreateContentGroup(ContentGroup contentGroup, int templateId)
        {
            if (!contentGroup.Exists)
            {
                return(CreateNewContentGroup(templateId));
            }

            contentGroup.UpdateTemplate(templateId);
            return(contentGroup.ContentGroupGuid);
        }
Esempio n. 3
0
        private IEnumerable <Template> GetCompatibleTemplates(ContentGroup contentGroup)
        {
            var isList = contentGroup.Content.Count > 1;

            var compatibleTemplates = GetAllTemplates().Where(t => t.UseForList || !isList);

            compatibleTemplates = compatibleTemplates
                                  .Where(t => contentGroup.Content.All(c => c == null) || contentGroup.Content.First(e => e != null).Type.StaticName == t.ContentTypeStaticName)
                                  .Where(t => contentGroup.Presentation.All(c => c == null) || contentGroup.Presentation.First(e => e != null).Type.StaticName == t.PresentationTypeStaticName)
                                  .Where(t => contentGroup.ListContent.All(c => c == null) || contentGroup.ListContent.First(e => e != null).Type.StaticName == t.ListContentTypeStaticName)
                                  .Where(t => contentGroup.ListPresentation.All(c => c == null) || contentGroup.ListPresentation.First(e => e != null).Type.StaticName == t.ListPresentationTypeStaticName);

            return(compatibleTemplates);
        }
Esempio n. 4
0
        // 2016-09-08 2dm - changed to deliver hidden as well, because of https://github.com/2sic/2sxc/issues/831
        internal IEnumerable <Template> GetAvailableTemplates(ContentGroup contentGroup)
        {
            IEnumerable <Template> availableTemplates;
            var items = contentGroup.Content;

            if (items.Any(e => e != null))
            {
                availableTemplates = GetCompatibleTemplates(contentGroup);     //.Where(p => !p.IsHidden);
            }
            else if (items.Count <= 1)
            {
                availableTemplates = GetAllTemplates();     // GetVisibleTemplates();
            }
            else
            {
                availableTemplates = GetAllTemplates() /* GetVisibleTemplates() */.Where(p => p.UseForList);
            }

            return(availableTemplates);
        }
Esempio n. 5
0
        public Guid UpdateOrCreateContentGroup(ContentGroup contentGroup, int templateId)
        {
            if (!contentGroup.Exists)
                return CreateNewContentGroup(templateId);

            contentGroup.UpdateTemplate(templateId);
            return contentGroup.ContentGroupGuid;
        }
Esempio n. 6
0
        private IEnumerable<Template> GetCompatibleTemplates(ContentGroup contentGroup)
        {
            var isList = contentGroup.Content.Count > 1;

            var compatibleTemplates = Templates.GetAllTemplates().Where(t => t.UseForList || !isList);
            compatibleTemplates = compatibleTemplates
                .Where(t => contentGroup.Content.All(c => c == null) || contentGroup.Content.First(e => e != null).Type.StaticName == t.ContentTypeStaticName)
                .Where(t => contentGroup.Presentation.All(c => c == null) || contentGroup.Presentation.First(e => e != null).Type.StaticName == t.PresentationTypeStaticName)
                .Where(t => contentGroup.ListContent.All(c => c == null) || contentGroup.ListContent.First(e => e != null).Type.StaticName == t.ListContentTypeStaticName)
                .Where(t => contentGroup.ListPresentation.All(c => c == null) || contentGroup.ListPresentation.First(e => e != null).Type.StaticName == t.ListPresentationTypeStaticName);

            return compatibleTemplates;
        }
Esempio n. 7
0
        protected void grdEntities_RowDrop(object sender, GridDragDropEventArgs e)
        {
            if (e.DestDataItem == null)
                return;

            var sortOrder = (int)e.DraggedItems[0].GetDataKeyValue("SortOrder");
            var destinationSortOrder = (int) e.DestDataItem.GetDataKeyValue("SortOrder");

            ContentGroup.ReorderEntities(sortOrder, destinationSortOrder);

            // Refresh cached contentgroup
            _contentGroup = null;

            grdEntities.Rebind();
            grdEntities.Items[destinationSortOrder].Selected = true;
        }
Esempio n. 8
0
        // 2016-09-08 2dm - changed to deliver hidden as well, because of https://github.com/2sic/2sxc/issues/831
        internal IEnumerable<Template> GetAvailableTemplates(ContentGroup contentGroup)
        {
            IEnumerable<Template> availableTemplates;
            var items = contentGroup.Content;

            if (items.Any(e => e != null))
                availableTemplates = GetCompatibleTemplates(contentGroup); //.Where(p => !p.IsHidden);
            else if (items.Count <= 1)
                availableTemplates = GetAllTemplates(); // GetVisibleTemplates();
            else
                availableTemplates = GetAllTemplates() /* GetVisibleTemplates() */.Where(p => p.UseForList);

            return availableTemplates;
        }