Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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));
        }