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); }
public AjaxMozaicEditorPage GetPage(int appId, int pageId) { try { var context = COREobject.i.Context; var requestedPage = context.MozaicEditorPages.Find(pageId); // TODO: replace with real error checking if (requestedPage == null) { return(new AjaxMozaicEditorPage()); } var result = new AjaxMozaicEditorPage { Id = requestedPage.Id, Name = requestedPage.Name ?? "Nepojmenovaná stránka", IsModal = requestedPage.IsModal, ModalWidth = requestedPage.ModalWidth, ModalHeight = requestedPage.ModalHeight }; foreach (var component in requestedPage.Components.Where(c => c.ParentComponent == null)) { var ajaxComponent = new AjaxMozaicEditorComponent { Id = component.Id, Name = component.Name ?? "", Type = component.Type, PositionX = component.PositionX, PositionY = component.PositionY, Width = component.Width, Height = component.Height, Tag = component.Tag, Attributes = component.Attributes, Classes = component.Classes ?? "", Styles = component.Styles ?? "", Content = component.Content, Label = component.Label, Placeholder = component.Placeholder, TabIndex = component.TabIndex, Properties = component.Properties ?? "" }; if (component.ChildComponents.Count > 0) { ajaxComponent.ChildComponents = new List <AjaxMozaicEditorComponent>(); foreach (var childComponent in component.ChildComponents) { ajaxComponent.ChildComponents.Add(new AjaxMozaicEditorComponent { Id = childComponent.Id, Name = childComponent.Name ?? "", Type = childComponent.Type, PositionX = childComponent.PositionX, PositionY = childComponent.PositionY, Width = childComponent.Width, Height = childComponent.Height, Tag = childComponent.Tag, Attributes = childComponent.Attributes, Classes = childComponent.Classes ?? "", Styles = childComponent.Styles ?? "", Content = childComponent.Content, Label = childComponent.Label, Placeholder = childComponent.Placeholder, TabIndex = childComponent.TabIndex, Properties = childComponent.Properties }); } } result.Components.Add(ajaxComponent); } // Renew deleted page if (requestedPage.IsDeleted) { requestedPage.IsDeleted = false; context.SaveChanges(); } return(result); } catch (Exception ex) { var errorMessage = $"Mozaic editor: error loading page with id={pageId} (GET api/mozaic-editor/apps/{appId}/pages/{pageId}) " + $"Exception message: {ex.Message}"; throw GetHttpInternalServerErrorResponseException(errorMessage); } }