public ActionResult UpdateRootContainer(ContainerViewModel postedModel) { MetadataModel metadata = TempData["Metadata"] as MetadataModel; IModelRootContainer eavContainer = FindContainer(metadata.CurrentContext.Containers, postedModel.ID) as IModelRootContainer; if (UpdateRequested) { eavContainer.Name = postedModel.Name; eavContainer.DataName = postedModel.DataName; eavContainer.DisplayText = postedModel.DisplayText; eavContainer.IsRepeating = postedModel.IsRepeating; foreach (AttributeViewModel attributeModel in postedModel.Attributes) { eavContainer.Attributes.Single(it => it.AttributeID == attributeModel.ID).Sequence = attributeModel.Sequence; } foreach (ContainerViewModel containerModel in postedModel.ChildContainers) { eavContainer.ChildContainers.Single(it => it.ContainerID == containerModel.ID).Sequence = containerModel.Sequence; } } else if (eavContainer.ObjectState == ObjectState.New && (String.IsNullOrWhiteSpace(eavContainer.Name) || (String.IsNullOrWhiteSpace(eavContainer.DataName))) && !eavContainer.ChildContainers.Any()) { eavContainer.Context.Containers.Remove(eavContainer); } TempData["Metadata"] = metadata; return(BuildResult("Context Editor", Url.Content("~/Metadata/ContextEditorDialog"), Url.Content("~/Metadata/UpdateContext"), null)); }
public ActionResult AddRootContainer(ContextViewModel postedModel) { MetadataModel metadata = TempData["Metadata"] as MetadataModel; postedModel.FixupContainerOrder(); metadata.DialogStack.Push(postedModel); IModelRootContainer eavContainer = objectFactory.Create <EAV.Model.IModelRootContainer>(); eavContainer.ContainerID = metadata.NextContainerID; eavContainer.Context = metadata.CurrentContext; eavContainer.Sequence = metadata.CurrentContext.Containers.Max(it => it.Sequence) + 1; metadata.DialogStack.Push(new ContainerViewModel(eavContainer)); TempData["Metadata"] = metadata; return(BuildResult("Container Editor", Url.Content("~/Metadata/ContainerEditorDialog"), Url.Content("~/Metadata/UpdateRootContainer"), null)); }
public ActionResult DeleteRootContainer(ContextViewModel postedModel) { MetadataModel metadata = TempData["Metadata"] as MetadataModel; metadata.DialogStack.Push(postedModel); IModelRootContainer eavContainer = FindContainer(metadata.CurrentContext.Containers, ID) as IModelRootContainer; if (eavContainer.ObjectState != ObjectState.New) { eavContainer.MarkDeleted(); } else { metadata.CurrentContext.Containers.Remove(eavContainer); } TempData["Metadata"] = metadata; return(BuildResult("Context Editor", Url.Content("~/Metadata/ContextEditorDialog"), Url.Content("~/Metadata/UpdateContext"), null)); }
public static ViewModelRootContainer Create(IModelRootContainer container, IModelSubject subject) { ViewModelRootContainer viewContainer = new ViewModelRootContainer() { ContainerID = container.ContainerID, DisplayText = container.DisplayText, IsRepeating = container.IsRepeating }; int nextInstanceID = -1; foreach (IModelInstance instance in container.Instances) { ViewModelInstance viewInstance = ViewModelInstance.Create(container, subject, instance, null, ref nextInstanceID); viewContainer.Instances.Add(viewInstance); } if (container.IsRepeating || !viewContainer.Instances.Any()) { ViewModelInstance viewInstance = ViewModelInstance.Create(container, subject, null, null, ref nextInstanceID); viewContainer.Instances.Add(viewInstance); } return(viewContainer); }
public ActionResult EditRootContainer(ContextViewModel postedModel) { MetadataModel metadata = TempData["Metadata"] as MetadataModel; postedModel.FixupContainerOrder(); metadata.DialogStack.Push(postedModel); IModelRootContainer eavContainer = FindContainer(metadata.CurrentContext.Containers, ID) as IModelRootContainer; // TODO: Check state after loading metadata, verify that Modified doesn't go away if set if (eavContainer.ObjectState != ObjectState.Deleted && eavContainer.ObjectState != ObjectState.New && !eavContainer.ChildContainers.Any() && !eavContainer.Attributes.Any()) { eavClient.LoadMetadata(eavContainer); } metadata.DialogStack.Push(new ContainerViewModel(eavContainer) { Existing = true }); TempData["Metadata"] = metadata; return(BuildResult("Container Editor", Url.Content("~/Metadata/ContainerEditorDialog"), Url.Content("~/Metadata/UpdateRootContainer"), null)); }