예제 #1
0
        public static ViewModelAttributeValue Create(IModelAttribute attribute, IModelValue value)
        {
            ViewModelAttributeValue viewAttributeValue = new ViewModelAttributeValue()
            {
                ObjectState = value != null ? value.ObjectState : ObjectState.New, AttributeID = attribute.AttributeID, DataType = attribute.DataType, DisplayText = attribute.DisplayText, IsKey = attribute.IsKey, VariableUnits = attribute.VariableUnits
            };

            foreach (EAV.Model.IModelUnit unit in attribute.Units)
            {
                viewAttributeValue.Units.Add(ViewModelUnit.Create(unit));
            }

            if (value != null)
            {
                viewAttributeValue.Value = value.RawValue;

                if (value.Unit != null)
                {
                    viewAttributeValue.UnitID   = value.Unit.UnitID;
                    viewAttributeValue.UnitText = value.Unit.DisplayText;
                }
            }
            else if (!attribute.VariableUnits.GetValueOrDefault(true) && attribute.Units.Count == 1)
            {
                viewAttributeValue.UnitID   = attribute.Units.First().UnitID;
                viewAttributeValue.UnitText = attribute.Units.First().DisplayText;
            }

            return(viewAttributeValue);
        }
예제 #2
0
        public ActionResult UpdateAttribute(AttributeViewModel postedModel)
        {
            MetadataModel metadata = TempData["Metadata"] as MetadataModel;

            IModelContainer eavContainer = FindContainer(metadata.CurrentContext.Containers, postedModel.ContainerID);
            IModelAttribute eavAttribute = eavContainer.Attributes.Single(it => it.AttributeID == postedModel.ID);

            if (UpdateRequested)
            {
                eavAttribute.Name        = postedModel.Name;
                eavAttribute.DataName    = postedModel.DataName;
                eavAttribute.DisplayText = postedModel.DisplayText;
                eavAttribute.DataType    = postedModel.DataType;
                eavAttribute.IsKey       = postedModel.IsKey;
            }
            else if (eavAttribute.ObjectState == ObjectState.New && (String.IsNullOrWhiteSpace(eavAttribute.Name) || (String.IsNullOrWhiteSpace(eavAttribute.DataName))))
            {
                eavContainer.Attributes.Remove(eavAttribute);
            }

            TempData["Metadata"] = metadata;

            if (eavContainer is IModelRootContainer)
            {
                return(BuildResult("Container Editor", Url.Content("~/Metadata/ContainerEditorDialog"), Url.Content("~/Metadata/UpdateRootContainer"), null));
            }
            else
            {
                return(BuildResult("Container Editor", Url.Content("~/Metadata/ContainerEditorDialog"), Url.Content("~/Metadata/UpdateChildContainer"), null));
            }
        }
예제 #3
0
        public ActionResult DeleteAttribute(ContainerViewModel postedModel)
        {
            MetadataModel metadata = TempData["Metadata"] as MetadataModel;

            metadata.DialogStack.Push(postedModel);

            IModelContainer eavContainer = FindContainer(metadata.CurrentContext.Containers, postedModel.ID);
            IModelAttribute eavAttribute = eavContainer.Attributes.Single(it => it.AttributeID == ID);

            if (eavAttribute.ObjectState != ObjectState.New)
            {
                eavAttribute.MarkDeleted();
            }
            else
            {
                eavContainer.Attributes.Remove(eavAttribute);
            }

            TempData["Metadata"] = metadata;

            if (eavContainer is IModelRootContainer)
            {
                return(BuildResult("Container Editor", Url.Content("~/Metadata/ContainerEditorDialog"), Url.Content("~/Metadata/UpdateRootContainer"), null));
            }
            else
            {
                return(BuildResult("Container Editor", Url.Content("~/Metadata/ContainerEditorDialog"), Url.Content("~/Metadata/UpdateChildContainer"), null));
            }
        }
예제 #4
0
 public AttributeViewModel(IModelAttribute attribute)
 {
     ID          = attribute.AttributeID.GetValueOrDefault();
     ContainerID = attribute.ContainerID.GetValueOrDefault();
     Name        = attribute.Name;
     DataName    = attribute.DataName;
     DisplayText = attribute.DisplayText;
     DataType    = attribute.DataType;
     IsKey       = attribute.IsKey;
     Sequence    = attribute.Sequence;
 }
예제 #5
0
        public ActionResult EditAttribute(ContainerViewModel postedModel)
        {
            MetadataModel metadata = TempData["Metadata"] as MetadataModel;

            metadata.DialogStack.Push(postedModel);

            IModelContainer eavContainer = FindContainer(metadata.CurrentContext.Containers, postedModel.ID);
            IModelAttribute eavAttribute = eavContainer.Attributes.Single(it => it.AttributeID == ID);

            metadata.DialogStack.Push(new AttributeViewModel(eavAttribute)
            {
                Existing = true
            });

            TempData["Metadata"] = metadata;

            return(BuildResult("Attribute Editor", Url.Content("~/Metadata/AttributeEditorDialog"), Url.Content("~/Metadata/UpdateAttribute"), null));
        }
예제 #6
0
        public ActionResult AddAttribute(ContainerViewModel postedModel)
        {
            MetadataModel metadata = TempData["Metadata"] as MetadataModel;

            metadata.DialogStack.Push(postedModel);

            IModelContainer eavContainer = FindContainer(metadata.CurrentContext.Containers, postedModel.ID);
            IModelAttribute eavAttribute = objectFactory.Create <EAV.Model.IModelAttribute>();

            eavAttribute.AttributeID = metadata.NextAttributeID;
            eavAttribute.Container   = eavContainer;
            eavAttribute.Sequence    = eavContainer.Attributes.Max(it => it.Sequence) + 1;

            metadata.DialogStack.Push(new AttributeViewModel(eavAttribute));

            TempData["Metadata"] = metadata;

            return(BuildResult("Attribute Editor", Url.Content("~/Metadata/AttributeEditorDialog"), Url.Content("~/Metadata/UpdateAttribute"), null));
        }