Example #1
0
        public void DeleteChildInstance()
        {
            EAV.Store.Clients.IInstanceStoreClient client = factory.Create <EAV.Store.Clients.IInstanceStoreClient>();
            EAVStoreClient.Instance  dbParentInstance     = SelectRandomItem(this.DbContext.Instances);
            EAVStoreClient.Container dbContainer          = SelectRandomItem(this.DbContext.Containers);
            EAVStoreClient.Instance  dbInstanceIn         = CreateInstance(dbContainer.Container_ID, dbParentInstance.Subject_ID, dbParentInstance.Instance_ID);

            client.DeleteInstance(dbInstanceIn.Instance_ID);

            EAVStoreClient.Instance dbInstanceOut = this.DbContext.Instances.SingleOrDefault(it => it.Instance_ID == dbInstanceIn.Instance_ID);

            Assert.IsNull(dbInstanceOut, "Failed to delete instance ID {0} from the database.", dbInstanceIn.Instance_ID);
        }
Example #2
0
        public void UpdateInstance(EAV.Store.IStoreInstance instance)
        {
            using (EAVStoreClient.MicroEAVContext ctx = new MicroEAVContext())
            {
                EAVStoreClient.Instance dbInstance = ctx.Instances.SingleOrDefault(it => it.Instance_ID == instance.InstanceID);

                if (dbInstance != null)
                {
                    // Nothing to do at the moment, but including skeleton for completness and possible future expansion.
                }
                else
                {
                    throw (new Exception(String.Format("Unable to retrieve instance ID {0}.", instance.InstanceID)));
                }
            }
        }
Example #3
0
        private static void SeedDatabase()
        {
            using (EAVStoreClient.MicroEAVContext ctx = new EAVStoreClient.MicroEAVContext())
            {
                ctx.Database.ExecuteSqlCommand("DELETE [Value];DELETE [Instance];DBCC CHECKIDENT ([Instance], RESEED, 0);DELETE [Subject];DBCC CHECKIDENT ([Subject], RESEED, 0);DELETE [Unit];DBCC CHECKIDENT ([Unit], RESEED, 0);DELETE [Attribute];DBCC CHECKIDENT ([Attribute], RESEED, 0);DELETE [Container];DBCC CHECKIDENT ([Container], RESEED, 0);DELETE [Context];DBCC CHECKIDENT ([Context], RESEED, 0);DELETE [Entity];DBCC CHECKIDENT ([Entity], RESEED, 0)");

                // Entities
                List <EAVStoreClient.Entity> entities = new List <EAVStoreClient.Entity>();
                for (int i = 0; i < 5; ++i)
                {
                    entities.Add(CreateEntity(String.Format("Entity {0}", i + 1)));
                }

                // Units
                List <EAVStoreClient.Unit> units = new List <EAVStoreClient.Unit>();
                for (int i = 0; i < 5; ++i)
                {
                    units.Add(CreateUnit(String.Format("SYM{0}", i + 1), String.Format("Unit {0}", i + 1)));
                }

                // Contexts
                List <EAVStoreClient.Context> contexts = new List <EAVStoreClient.Context>();
                for (int i = 0; i < 5; ++i)
                {
                    contexts.Add(CreateContext(String.Format("Context {0}", i + 1)));
                }

                // Subjects
                List <EAVStoreClient.Subject> subjects = new List <EAVStoreClient.Subject>();
                for (int i = 0; i < 5; ++i)
                {
                    subjects.Add(CreateSubject(contexts[i].Context_ID, entities[i].Entity_ID, String.Format("Subject {0}", i + 1)));
                }

                EAVStoreClient.Container dbContainer       = null;
                EAVStoreClient.Container dbParentContainer = null;
                EAVStoreClient.Instance  dbInstance        = null;
                EAVStoreClient.Instance  dbParentInstance  = null;
                Dictionary <EAV.EAVDataType, EAVStoreClient.Attribute> attributes = new Dictionary <EAV.EAVDataType, EAVStoreClient.Attribute>();

                var typeList = new Queue <EAV.EAVDataType>(Enum.GetValues(typeof(EAV.EAVDataType)).OfType <EAV.EAVDataType>());

                // Context 1
                dbContainer = CreateContainer(contexts[0].Context_ID, null, "Root Container 1-1", 1, false);

                attributes.Clear();
                foreach (EAV.EAVDataType dt in Enum.GetValues(typeof(EAV.EAVDataType)))
                {
                    attributes[dt] = CreateAttribute(dbContainer.Container_ID, String.Format("Attribute 1-1-{0}", ((int)dt) + 1), dt, (int)dt, dt == EAV.EAVDataType.String);
                }

                foreach (EAVStoreClient.Subject dbSubject in subjects)
                {
                    dbInstance = CreateInstance(dbContainer.Container_ID, dbSubject.Subject_ID, null);

                    foreach (EAV.EAVDataType dt in typeList.Take(3))
                    {
                        CreateValue(attributes[dt].Attribute_ID, dbInstance.Instance_ID, "N/A", dt == EAV.EAVDataType.Float ? (int?)units[0].Unit_ID : null);
                    }

                    typeList.Enqueue(typeList.Dequeue());
                }

                // Context 2
                dbParentContainer = CreateContainer(contexts[1].Context_ID, null, "Root Container 2-1", 2, false);

                attributes.Clear();
                foreach (EAV.EAVDataType dt in Enum.GetValues(typeof(EAV.EAVDataType)))
                {
                    attributes[dt] = CreateAttribute(dbParentContainer.Container_ID, String.Format("Attribute 2-1-{0}", ((int)dt) + 1), dt, (int)dt, dt == EAV.EAVDataType.String);
                }

                foreach (EAVStoreClient.Subject dbSubject in subjects)
                {
                    dbParentInstance = CreateInstance(dbParentContainer.Container_ID, dbSubject.Subject_ID, null);

                    foreach (EAV.EAVDataType dt in typeList.Take(3))
                    {
                        CreateValue(attributes[dt].Attribute_ID, dbParentInstance.Instance_ID, "N/A", dt == EAV.EAVDataType.Float ? (int?)units[0].Unit_ID : null);
                    }

                    typeList.Enqueue(typeList.Dequeue());
                }

                dbContainer = CreateContainer(contexts[1].Context_ID, dbParentContainer.Container_ID, "Child Container 2-1-1", 1, false);

                attributes.Clear();
                foreach (EAV.EAVDataType dt in Enum.GetValues(typeof(EAV.EAVDataType)))
                {
                    attributes[dt] = CreateAttribute(dbParentContainer.Container_ID, String.Format("Attribute 2-1-1-{0}", ((int)dt) + 1), dt, (int)dt, dt == EAV.EAVDataType.String);
                }

                foreach (EAVStoreClient.Subject dbSubject in subjects)
                {
                    dbInstance = CreateInstance(dbContainer.Container_ID, dbSubject.Subject_ID, dbParentContainer.Container_ID);

                    foreach (EAV.EAVDataType dt in typeList.Take(3))
                    {
                        CreateValue(attributes[dt].Attribute_ID, dbInstance.Instance_ID, "N/A", dt == EAV.EAVDataType.Float ? (int?)units[0].Unit_ID : null);
                    }

                    typeList.Enqueue(typeList.Dequeue());
                }

                dbContainer = CreateContainer(contexts[1].Context_ID, dbParentContainer.Container_ID, "Child Container 2-1-2", 2, true);

                attributes.Clear();
                foreach (EAV.EAVDataType dt in Enum.GetValues(typeof(EAV.EAVDataType)))
                {
                    attributes[dt] = CreateAttribute(dbParentContainer.Container_ID, String.Format("Attribute 2-1-2-{0}", ((int)dt) + 1), dt, (int)dt, dt == EAV.EAVDataType.String);
                }

                foreach (EAVStoreClient.Subject dbSubject in subjects)
                {
                    dbInstance = CreateInstance(dbContainer.Container_ID, dbSubject.Subject_ID, dbParentContainer.Container_ID);

                    foreach (EAV.EAVDataType dt in typeList.Take(3))
                    {
                        CreateValue(attributes[dt].Attribute_ID, dbInstance.Instance_ID, "N/A", dt == EAV.EAVDataType.Float ? (int?)units[0].Unit_ID : null);
                    }

                    typeList.Enqueue(typeList.Dequeue());
                }

                // Context 3

                // Context 4

                // Context 5
            }
        }