示例#1
0
        private MozaicEditorComponent convertAjaxComponentToDbFormat(AjaxMozaicEditorComponent ajaxComponent,
                                                                     MozaicEditorPage page, MozaicEditorComponent parentComponent)
        {
            var newComponent = new MozaicEditorComponent
            {
                Name             = ajaxComponent.Name,
                Type             = ajaxComponent.Type,
                PositionX        = ajaxComponent.PositionX,
                PositionY        = ajaxComponent.PositionY,
                Width            = ajaxComponent.Width,
                Height           = ajaxComponent.Height,
                Tag              = ajaxComponent.Tag,
                Attributes       = ajaxComponent.Attributes,
                Classes          = ajaxComponent.Classes,
                Styles           = ajaxComponent.Styles,
                Content          = ajaxComponent.Content,
                Label            = ajaxComponent.Label,
                Placeholder      = ajaxComponent.Placeholder,
                TabIndex         = ajaxComponent.TabIndex,
                Properties       = ajaxComponent.Properties,
                MozaicEditorPage = page
            };

            if (ajaxComponent.ChildComponents != null && ajaxComponent.ChildComponents.Count > 0)
            {
                newComponent.ChildComponents = new List <MozaicEditorComponent>();
                foreach (var ajaxChildComponent in ajaxComponent.ChildComponents)
                {
                    newComponent.ChildComponents.Add(convertAjaxComponentToDbFormat(ajaxChildComponent, page, newComponent));
                }
            }
            return(newComponent);
        }
示例#2
0
        private void deleteComponents(MozaicEditorPage page, DBEntities context)
        {
            var componentList = new List <MozaicEditorComponent>();

            foreach (var component in page.Components.Where(c => c.ParentComponent == null))
            {
                componentList.Add(component);
            }
            foreach (var component in componentList)
            {
                var childComponentList = new List <MozaicEditorComponent>();
                if (component.ChildComponents != null)
                {
                    foreach (var childComponent in component.ChildComponents)
                    {
                        childComponentList.Add(childComponent);
                    }
                    foreach (var childComponent in childComponentList)
                    {
                        component.ChildComponents.Remove(childComponent);
                        context.Entry(childComponent).State = EntityState.Deleted;
                    }
                }
                page.Components.Remove(component);
                context.Entry(component).State = EntityState.Deleted;
            }
            context.SaveChanges();
        }
示例#3
0
 public int NewPage(int appId, AjaxMozaicEditorPage postData)
 {
     try
     {
         var context = COREobject.i.Context;
         var app     = context.Applications.Find(appId);
         app.MozaicChangedSinceLastBuild   = true;
         app.TapestryChangedSinceLastBuild = true;
         var newPage = new MozaicEditorPage
         {
             Name = postData.Name
         };
         foreach (var ajaxComponent in postData.Components)
         {
             newPage.Components.Add(convertAjaxComponentToDbFormat(ajaxComponent, newPage, null));
         }
         context.Applications.Find(appId).MozaicEditorPages.Add(newPage);
         context.SaveChanges();
         return(newPage.Id);
     }
     catch (Exception ex)
     {
         var errorMessage = $"Mozaic editor: error creating new page (POST api/mozaic-editor/apps/{appId}/pages) " +
                            $"Exception message: {ex.Message}";
         throw GetHttpInternalServerErrorResponseException(errorMessage);
     }
 }