Exemple #1
0
        public void DeleteChildContainer()
        {
            EAV.Store.Clients.IContainerStoreClient client = factory.Create <EAV.Store.Clients.IContainerStoreClient>();
            EAVStoreClient.Container dbParentContainer     = SelectRandomItem <EAVStoreClient.Container>(this.DbContext.Containers);
            EAVStoreClient.Container dbContainerIn         = CreateContainer(dbParentContainer.Context_ID, dbParentContainer.Container_ID, Guid.NewGuid().ToString(), rng.Next(), true);

            client.DeleteContainer(dbContainerIn.Container_ID);

            EAVStoreClient.Container dbContainerOut = this.DbContext.Containers.SingleOrDefault(it => it.Container_ID == dbContainerIn.Container_ID);

            Assert.IsNull(dbContainerOut, "Failed to delete container ID {0} from the database.", dbContainerIn.Container_ID);
        }
        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);
        }
        public void DeleteAttribute()
        {
            EAV.Store.Clients.IAttributeStoreClient client = factory.Create <EAV.Store.Clients.IAttributeStoreClient>();
            EAVStoreClient.Container dbContainer           = SelectRandomItem(this.DbContext.Containers);
            EAVStoreClient.Attribute dbAttributeIn         = CreateAttribute(dbContainer.Container_ID, Guid.NewGuid().ToString(), EAV.EAVDataType.String, rng.Next(), true);

            client.DeleteAttribute(dbAttributeIn.Attribute_ID);

            using (EAVStoreClient.MicroEAVContext ctx = new EAVStoreClient.MicroEAVContext())
            {
                EAVStoreClient.Attribute dbAttributeOut = ctx.Attributes.SingleOrDefault(it => it.Attribute_ID == dbAttributeIn.Attribute_ID);

                Assert.IsNull(dbAttributeOut, "Failed to delete attribute ID {0} from the database.", dbAttributeIn.Attribute_ID);
            }
        }
        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)));
                }
            }
        }
        public void DeleteContainer()
        {
            var dbContext = SelectRandomItem(this.DbContext.Contexts);

            EAVStoreClient.Container dbContainerIn = CreateContainer(dbContext.Context_ID, null, Guid.NewGuid().ToString(), rng.Next(), true);

            HttpResponseMessage response = WebClient.DeleteAsync(String.Format("api/metadata/containers/{0}", dbContainerIn.Container_ID)).Result;

            if (response.IsSuccessStatusCode)
            {
                ResetDatabaseContext();

                EAVStoreClient.Container dbContainerOut = this.DbContext.Containers.SingleOrDefault(it => it.Container_ID == dbContainerIn.Container_ID);

                Assert.IsNull(dbContainerOut, "Failed to delete container ID {0} from the database.", dbContainerIn.Container_ID);
            }
            else
            {
                Assert.Fail(response.Content.ReadAsStringAsync().Result);
            }
        }
Exemple #6
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
            }
        }