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