private void deleteComponents(MozaicBootstrapPage page, DBEntities context) { var componentList = new List <MozaicBootstrapComponent>(); var allComponents = new List <MozaicBootstrapComponent>(); foreach (var component in page.Components.Where(c => c.ParentComponent == null)) { componentList.Add(component); } while (componentList.Count > 0) { var component = componentList[0]; allComponents.Add(component); if (component.ChildComponents != null && component.ChildComponents.Count > 0) { foreach (var child in component.ChildComponents) { componentList.Add(child); } } context.Entry(component).State = EntityState.Deleted; componentList.RemoveAt(0); } foreach (var component in allComponents) { page.Components.Remove(component); } context.SaveChanges(); }
public int NewPage(int appId, MozaicBootstrapAjaxPage postData) { try { var context = COREobject.i.Context; var app = context.Applications.Find(appId); app.MozaicChangedSinceLastBuild = true; app.TapestryChangedSinceLastBuild = true; var newPage = new MozaicBootstrapPage { Name = postData.Name, IsDeleted = false, Version = VersionEnum.Bootstrap }; int numOrder = 0; foreach (var ajaxComponent in postData.Components) { newPage.Components.Add(convertAjaxComponentToDbFormat(ajaxComponent, newPage, null, ++numOrder)); } context.Applications.Find(appId).MozaicBootstrapPages.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); } }
public void BuildPage(MozaicBootstrapPage page) { currentPage = page; Compile(); Save(); }
private MozaicBootstrapComponent convertAjaxComponentToDbFormat(MozaicBootstrapAjaxComponent c, MozaicBootstrapPage page, MozaicBootstrapComponent parentComponent, int numOrder) { var newComponent = new MozaicBootstrapComponent { ElmId = c.ElmId, Content = c.Content, Tag = c.Tag, UIC = c.UIC, Properties = c.Properties, Attributes = c.Attributes, MozaicBootstrapPage = page, NumOrder = numOrder }; if (c.ChildComponents != null && c.ChildComponents.Count > 0) { int childNumOrder = 0; newComponent.ChildComponents = new List <MozaicBootstrapComponent>(); foreach (var ajaxChildComponent in c.ChildComponents) { newComponent.ChildComponents.Add(convertAjaxComponentToDbFormat(ajaxChildComponent, page, newComponent, ++childNumOrder)); } } return(newComponent); }