Exemplo n.º 1
0
        public void UpdateValue(EAV.Store.IStoreValue value)
        {
            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                EAVStoreClient.Value dbValue = ctx.Values.SingleOrDefault(it => it.Instance_ID == value.InstanceID && it.Attribute_ID == value.AttributeID);

                if (dbValue != null)
                {
                    if (dbValue.Raw_Value != value.RawValue)
                    {
                        dbValue.Raw_Value = value.RawValue;
                    }

                    if (dbValue.Unit_ID != value.UnitID)
                    {
                        dbValue.Unit_ID = value.UnitID;
                    }

                    ctx.SaveChanges();
                }
                else
                {
                    throw (new Exception(String.Format("Unable to retrieve value for instance ID {0}, attribute ID {1}.", value.InstanceID, value.AttributeID)));
                }
            }
        }
Exemplo n.º 2
0
        public EAV.Store.IStoreInstance CreateChildInstance(EAV.Store.IStoreInstance instance, int containerID, int parentInstanceID)
        {
            if (instance == null)
            {
                return(null);
            }

            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                Instance dbInstance       = new Instance(instance);
                Instance dbParentInstance = ctx.Instances.SingleOrDefault(it => it.Instance_ID == parentInstanceID);

                // TODO: Error if dbParentInstance is null

                dbInstance.Subject_ID         = dbParentInstance.Subject_ID;
                dbInstance.Container_ID       = containerID;
                dbInstance.Parent_Instance_ID = parentInstanceID;

                ctx.Instances.Add(dbInstance);

                ctx.SaveChanges();

                return((EAVStoreLibrary.StoreInstance)dbInstance);
            }
        }
Exemplo n.º 3
0
        public EAV.Store.IStoreContainer CreateChildContainer(EAV.Store.IStoreContainer container, int parentContainerID)
        {
            if (container == null)
            {
                return(null);
            }

            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                Container dbContainer       = new Container(container);
                Container dbParentContainer = ctx.Containers.SingleOrDefault(it => it.Container_ID == parentContainerID);

                if (dbContainer == null)
                {
                    throw (new InvalidOperationException("Unable to locate parent container."));
                }

                dbContainer.Context_ID          = dbParentContainer.Context_ID;
                dbContainer.Parent_Container_ID = parentContainerID;

                ctx.Containers.Add(dbContainer);

                ctx.SaveChanges();

                return((EAVStoreLibrary.StoreContainer)dbContainer);
            }
        }
Exemplo n.º 4
0
        public void UpdateContext(EAV.Store.IStoreContext context)
        {
            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                EAVStoreClient.Context dbContext = ctx.Contexts.SingleOrDefault(it => it.Context_ID == context.ContextID);

                if (dbContext != null)
                {
                    if (dbContext.Name != context.Name)
                    {
                        dbContext.Name = context.Name;
                    }

                    if (dbContext.Data_Name != context.DataName)
                    {
                        dbContext.Data_Name = context.DataName;
                    }

                    if (dbContext.Display_Text != context.DisplayText)
                    {
                        dbContext.Display_Text = context.DisplayText;
                    }

                    ctx.SaveChanges();
                }
                else
                {
                    throw (new Exception(String.Format("Unable to retrieve context ID {0}.", context.ContextID)));
                }
            }
        }
Exemplo n.º 5
0
        public void UpdateAttributeUnits(int attributeID, IEnumerable <EAV.Store.IStoreUnit> units)
        {
            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                var dbAttribute = ctx.Attributes.SingleOrDefault(it => it.Attribute_ID == attributeID);

                if (dbAttribute != null)
                {
                    var unitsToDelete = dbAttribute.Units.GroupJoin(units, left => left.Unit_ID, right => right.UnitID.GetValueOrDefault(), (left, right) => new { UnitToDelete = left, SentinelUnit = right.FirstOrDefault() }).Where(it => it.SentinelUnit == null).Select(it => it.UnitToDelete.Unit_ID);
                    var unitsToAdd    = units.GroupJoin(dbAttribute.Units, left => left.UnitID.GetValueOrDefault(), right => right.Unit_ID, (left, right) => new { UnitToAdd = left, SentinelUnit = right.FirstOrDefault() }).Where(it => it.SentinelUnit == null && it.UnitToAdd.UnitID != 0).Select(it => it.UnitToAdd.UnitID.GetValueOrDefault());

                    foreach (int id in unitsToDelete)
                    {
                        dbAttribute.Units.Remove(dbAttribute.Units.Single(it => it.Unit_ID == id));
                    }

                    foreach (int id in unitsToAdd)
                    {
                        dbAttribute.Units.Add(ctx.Units.Single(it => it.Unit_ID == id));
                    }

                    ctx.SaveChanges();
                }
                else
                {
                    throw(new Exception(String.Format("Unable to retrieve attribute ID {0}.", attributeID)));
                }
            }
        }
Exemplo n.º 6
0
        public void UpdateUnit(EAV.Store.IStoreUnit aUnit)
        {
            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                EAVStoreClient.Unit dbUnit = ctx.Units.SingleOrDefault(it => it.Unit_ID == aUnit.UnitID);

                if (dbUnit != null)
                {
                    if (dbUnit.Singular_Name != aUnit.SingularName)
                    {
                        dbUnit.Singular_Name = aUnit.SingularName;
                    }

                    if (dbUnit.Singular_Abbreviation != aUnit.SingularAbbreviation)
                    {
                        dbUnit.Singular_Abbreviation = aUnit.SingularAbbreviation;
                    }

                    if (dbUnit.Plural_Name != aUnit.PluralName)
                    {
                        dbUnit.Plural_Name = aUnit.PluralName;
                    }

                    if (dbUnit.Plural_Abbreviation != aUnit.PluralAbbreviation)
                    {
                        dbUnit.Plural_Abbreviation = aUnit.PluralAbbreviation;
                    }

                    if (dbUnit.Symbol != aUnit.Symbol)
                    {
                        dbUnit.Symbol = aUnit.Symbol;
                    }

                    if (dbUnit.Display_Text != aUnit.DisplayText)
                    {
                        dbUnit.Display_Text = aUnit.DisplayText;
                    }

                    if (dbUnit.Curated != aUnit.Curated)
                    {
                        dbUnit.Curated = aUnit.Curated;
                    }

                    ctx.SaveChanges();
                }
                else
                {
                    throw (new Exception(String.Format("Unable to retrieve Unit ID {0}.", aUnit.UnitID)));
                }
            }
        }
Exemplo n.º 7
0
        public void UpdateAttribute(EAV.Store.IStoreAttribute attribute)
        {
            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                EAVStoreClient.Attribute dbAttribute = ctx.Attributes.SingleOrDefault(it => it.Attribute_ID == attribute.AttributeID);

                if (dbAttribute != null)
                {
                    if (dbAttribute.Name != attribute.Name)
                    {
                        dbAttribute.Name = attribute.Name;
                    }

                    if (dbAttribute.Data_Name != attribute.DataName)
                    {
                        dbAttribute.Data_Name = attribute.DataName;
                    }

                    if (dbAttribute.Display_Text != attribute.DisplayText)
                    {
                        dbAttribute.Display_Text = attribute.DisplayText;
                    }

                    if (dbAttribute.Data_Type.Name != attribute.DataType.ToString())
                    {
                        dbAttribute.Data_Type = ctx.Data_Type.Single(it => it.Name == attribute.DataType.ToString());
                    }

                    if (dbAttribute.Sequence != attribute.Sequence)
                    {
                        dbAttribute.Sequence = attribute.Sequence;
                    }

                    if (dbAttribute.Is_Key != attribute.IsKey)
                    {
                        dbAttribute.Is_Key = attribute.IsKey;
                    }

                    if (dbAttribute.Variable_Units != attribute.VariableUnits)
                    {
                        dbAttribute.Variable_Units = attribute.VariableUnits;
                    }

                    ctx.SaveChanges();
                }
                else
                {
                    throw (new Exception(String.Format("Unable to retrieve attribute ID {0}.", attribute.AttributeID)));
                }
            }
        }
Exemplo n.º 8
0
        public void DeleteInstance(int instanceID)
        {
            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                var dbInstance = ctx.Instances.SingleOrDefault(it => it.Instance_ID == instanceID);

                if (dbInstance != null)
                {
                    ctx.Instances.Remove(dbInstance);

                    ctx.SaveChanges();
                }
            }
        }
Exemplo n.º 9
0
        public void DeleteContainer(int containerID)
        {
            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                var dbContainer = ctx.Containers.SingleOrDefault(it => it.Container_ID == containerID);

                if (dbContainer != null)
                {
                    ctx.Containers.Remove(dbContainer);

                    ctx.SaveChanges();
                }
            }
        }
Exemplo n.º 10
0
        public void DeleteEntity(int entityID)
        {
            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                var dbEntity = ctx.Entities.SingleOrDefault(it => it.Entity_ID == entityID);

                if (dbEntity != null)
                {
                    ctx.Entities.Remove(dbEntity);

                    ctx.SaveChanges();
                }
            }
        }
Exemplo n.º 11
0
        public void DeleteValue(int attributeID, int instanceID)
        {
            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                var dbValue = ctx.Values.SingleOrDefault(it => it.Instance_ID == instanceID && it.Attribute_ID == attributeID);

                if (dbValue != null)
                {
                    ctx.Values.Remove(dbValue);

                    ctx.SaveChanges();
                }
            }
        }
Exemplo n.º 12
0
        public void DeleteSubject(int subjectID)
        {
            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                var dbSubject = ctx.Subjects.SingleOrDefault(it => it.Subject_ID == subjectID);

                if (dbSubject != null)
                {
                    ctx.Subjects.Remove(dbSubject);

                    ctx.SaveChanges();
                }
            }
        }
Exemplo n.º 13
0
        public void DeleteUnit(int unitID)
        {
            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                var dbUnit = ctx.Units.SingleOrDefault(it => it.Unit_ID == unitID);

                if (dbUnit != null)
                {
                    ctx.Units.Remove(dbUnit);

                    ctx.SaveChanges();
                }
            }
        }
Exemplo n.º 14
0
        public void DeleteAttribute(int attributeID)
        {
            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                var dbAttribute = ctx.Attributes.SingleOrDefault(it => it.Attribute_ID == attributeID);

                if (dbAttribute != null)
                {
                    // TODO: Right way to do this?
                    dbAttribute.Units.Clear();

                    ctx.Attributes.Remove(dbAttribute);

                    ctx.SaveChanges();
                }
            }
        }
Exemplo n.º 15
0
        public EAV.Store.IStoreContainer CreateRootContainer(EAV.Store.IStoreContainer container, int contextID)
        {
            if (container == null)
            {
                return(null);
            }

            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                Container dbContainer = new Container(container);

                dbContainer.Context_ID = contextID;

                ctx.Containers.Add(dbContainer);

                ctx.SaveChanges();

                return((EAVStoreLibrary.StoreContainer)dbContainer);
            }
        }
Exemplo n.º 16
0
        public EAV.Store.IStoreUnit CreateUnit(EAV.Store.IStoreUnit aUnit)
        {
            if (aUnit == null)
            {
                return(null);
            }

            // TODO: Need to check that at least one string property has a non-empty value?

            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                Unit dbUnit = new Unit(aUnit);

                ctx.Units.Add(dbUnit);

                ctx.SaveChanges();

                return((EAVStoreLibrary.StoreUnit)dbUnit);
            }
        }
Exemplo n.º 17
0
        public void UpdateContainer(EAV.Store.IStoreContainer container)
        {
            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                EAVStoreClient.Container dbContainer = ctx.Containers.SingleOrDefault(it => it.Container_ID == container.ContainerID);

                if (dbContainer != null)
                {
                    if (dbContainer.Name != container.Name)
                    {
                        dbContainer.Name = container.Name;
                    }

                    if (dbContainer.Data_Name != container.DataName)
                    {
                        dbContainer.Data_Name = container.DataName;
                    }

                    if (dbContainer.Display_Text != container.DisplayText)
                    {
                        dbContainer.Display_Text = container.DisplayText;
                    }

                    if (dbContainer.Is_Repeating != container.IsRepeating)
                    {
                        dbContainer.Is_Repeating = container.IsRepeating;
                    }

                    if (dbContainer.Sequence != container.Sequence)
                    {
                        dbContainer.Sequence = container.Sequence;
                    }

                    ctx.SaveChanges();
                }
                else
                {
                    throw (new Exception(String.Format("Unable to retrieve container ID {0}.", container.ContainerID)));
                }
            }
        }
Exemplo n.º 18
0
        public EAV.Store.IStoreInstance CreateRootInstance(EAV.Store.IStoreInstance instance, int containerID, int subjectID)
        {
            if (instance == null)
            {
                return(null);
            }

            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                Instance dbInstance = new Instance(instance);

                dbInstance.Subject_ID   = subjectID;
                dbInstance.Container_ID = containerID;

                ctx.Instances.Add(dbInstance);

                ctx.SaveChanges();

                return((EAVStoreLibrary.StoreInstance)dbInstance);
            }
        }
Exemplo n.º 19
0
        public EAV.Store.IStoreValue CreateValue(EAV.Store.IStoreValue value, int instanceID, int attributeID)
        {
            if (value == null)
            {
                return(null);
            }

            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                Value dbValue = new Value(value);

                dbValue.Instance_ID  = instanceID;
                dbValue.Attribute_ID = attributeID;

                ctx.Values.Add(dbValue);

                ctx.SaveChanges();

                return((EAVStoreLibrary.StoreValue)dbValue);
            }
        }
Exemplo n.º 20
0
        public void UpdateEntity(EAV.Store.IStoreEntity anEntity)
        {
            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                EAVStoreClient.Entity dbEntity = ctx.Entities.SingleOrDefault(it => it.Entity_ID == anEntity.EntityID);

                if (dbEntity != null)
                {
                    if (dbEntity.Descriptor != anEntity.Descriptor)
                    {
                        dbEntity.Descriptor = anEntity.Descriptor;
                    }

                    ctx.SaveChanges();
                }
                else
                {
                    throw (new Exception(String.Format("Unable to retrieve entity ID {0}.", anEntity.EntityID)));
                }
            }
        }
Exemplo n.º 21
0
        public EAV.Store.IStoreAttribute CreateAttribute(EAV.Store.IStoreAttribute attribute, int containerID)
        {
            if (attribute == null)
            {
                return(null);
            }

            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                Attribute dbAttribute = new Attribute(attribute);

                dbAttribute.Container_ID = containerID;
                dbAttribute.Data_Type    = ctx.LookupDataType(attribute.DataType);

                ctx.Attributes.Add(dbAttribute);

                ctx.SaveChanges();

                return((EAVStoreLibrary.StoreAttribute)dbAttribute);
            }
        }
Exemplo n.º 22
0
        public void UpdateSubject(EAV.Store.IStoreSubject subject)
        {
            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                EAVStoreClient.Subject dbSubject = ctx.Subjects.SingleOrDefault(it => it.Subject_ID == subject.SubjectID);

                if (dbSubject != null)
                {
                    if (dbSubject.Identifier != subject.Identifier)
                    {
                        dbSubject.Identifier = subject.Identifier;
                    }

                    ctx.SaveChanges();
                }
                else
                {
                    throw (new Exception(String.Format("Unable to retrieve subject ID {0}.", subject.SubjectID)));
                }
            }
        }
Exemplo n.º 23
0
        public EAV.Store.IStoreSubject CreateSubject(EAV.Store.IStoreSubject subject, int contextID, int entityID)
        {
            if (subject == null)
            {
                return(null);
            }

            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                Subject dbSubject = new Subject(subject);

                dbSubject.Context_ID = contextID;
                dbSubject.Entity_ID  = entityID;

                ctx.Subjects.Add(dbSubject);

                ctx.SaveChanges();

                return((EAVStoreLibrary.StoreSubject)dbSubject);
            }
        }
Exemplo n.º 24
0
        public EAV.Store.IStoreEntity CreateEntity(EAV.Store.IStoreEntity anEntity)
        {
            if (anEntity == null)
            {
                return(null);
            }

            if (string.IsNullOrWhiteSpace(anEntity.Descriptor))
            {
                throw (new InvalidOperationException("Property 'Name' for parameter 'entity' may not be null or empty."));
            }

            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                Entity dbEntity = new Entity(anEntity);

                ctx.Entities.Add(dbEntity);

                ctx.SaveChanges();

                return((EAVStoreLibrary.StoreEntity)dbEntity);
            }
        }
Exemplo n.º 25
0
        public EAV.Store.IStoreContext CreateContext(EAV.Store.IStoreContext context)
        {
            if (context == null)
            {
                return(null);
            }

            if (string.IsNullOrWhiteSpace(context.Name))
            {
                throw (new InvalidOperationException("Property 'Name' for parameter 'context' may not be null or empty."));
            }

            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                Context dbContext = new Context(context);

                ctx.Contexts.Add(dbContext);

                ctx.SaveChanges();

                return((EAVStoreLibrary.StoreContext)dbContext);
            }
        }