コード例 #1
0
        public void CreateRootContainer()
        {
            EAV.Store.Clients.IContainerStoreClient client = factory.Create <EAV.Store.Clients.IContainerStoreClient>();
            int    contextID     = SelectRandomItem(this.DbContext.Contexts).Context_ID;
            string containerName = Guid.NewGuid().ToString();

            EAV.Store.IStoreContainer container = client.CreateRootContainer(new EAVStoreLibrary.StoreContainer()
            {
                Name        = containerName,
                DataName    = containerName.ToUpper(),
                DisplayText = containerName + ":",
                Sequence    = rng.Next(),
            }, contextID);

            Assert.IsNotNull(container, "Failed to create container with name '{0}' for context ID {1}.", containerName, contextID);

            ResetDatabaseContext();

            var dbContainer = this.DbContext.Containers.SingleOrDefault(it => it.Container_ID == container.ContainerID);

            Assert.IsNotNull(dbContainer, String.Format("Failed to retrieve container ID {0} from the database.", container.ContainerID));

            Assert.IsNull(dbContainer.Parent_Container_ID, "Container has parent reference defined when it should not.");

            Assert.AreEqual(container.Name, dbContainer.Name, "Property 'Name' was not created correctly.");
            Assert.AreEqual(container.DataName, dbContainer.Data_Name, "Property 'DataName' was not created correctly.");
            Assert.AreEqual(container.DisplayText, dbContainer.Display_Text, "Property 'DisplayText' was not created correctly.");
            Assert.AreEqual(container.IsRepeating, dbContainer.Is_Repeating, "Property 'IsRepeating' was not created correctly.");
            Assert.AreEqual(container.Sequence, dbContainer.Sequence, "Property 'Sequence' was not created correctly.");
        }
コード例 #2
0
        public void CreateDuplicateRootContainer_Data_Name()
        {
            EAV.Store.Clients.IContainerStoreClient client = factory.Create <EAV.Store.Clients.IContainerStoreClient>();
            int    contextID     = SelectRandomItem(this.DbContext.Contexts).Context_ID;
            string containerName = Guid.NewGuid().ToString();

            EAV.Store.IStoreContainer container = client.CreateRootContainer(new EAVStoreLibrary.StoreContainer()
            {
                Name        = containerName,
                DataName    = containerName.ToUpper(),
                DisplayText = containerName + ":",
                Sequence    = rng.Next(),
            }, contextID);

            Assert.IsNotNull(container, "Failed to create container with name '{0}' for context ID {1}.", containerName, contextID);

            client.CreateRootContainer(new EAVStoreLibrary.StoreContainer()
            {
                Name        = containerName + "1",
                DataName    = containerName.ToUpper(),
                DisplayText = containerName + ":",
                Sequence    = rng.Next(),
            }, contextID);

            Assert.Fail("Failed to throw exception creating root container with duplicate data name.");
        }
コード例 #3
0
        public void CreateDuplicateChildContainer_Data_Name()
        {
            EAV.Store.Clients.IContainerStoreClient client = factory.Create <EAV.Store.Clients.IContainerStoreClient>();
            int    parentContainerID = SelectRandomItem(this.DbContext.Containers.Where(it => it.Parent_Container_ID == null)).Container_ID;
            string containerName     = Guid.NewGuid().ToString();

            EAV.Store.IStoreContainer container = client.CreateChildContainer(new EAVStoreLibrary.StoreContainer()
            {
                Name        = containerName,
                DataName    = containerName.ToUpper(),
                DisplayText = containerName + ":",
                IsRepeating = true,
                Sequence    = rng.Next(),
            }, parentContainerID);

            Assert.IsNotNull(container, "Failed to create container with name '{0}' for parent container ID {1}.", containerName, parentContainerID);

            client.CreateChildContainer(new EAVStoreLibrary.StoreContainer()
            {
                Name        = containerName + "1",
                DataName    = containerName.ToUpper(),
                DisplayText = containerName + ":",
                IsRepeating = true,
                Sequence    = rng.Next(),
            }, parentContainerID);

            Assert.Fail("Failed to throw exception creating child container with duplicate name.");
        }
コード例 #4
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);
            }
        }
コード例 #5
0
ファイル: StoreContainer.cs プロジェクト: tnewell/MicroEAV
 public StoreContainer(EAV.Store.IStoreContainer container)
 {
     this.ContainerID       = container.ContainerID;
     this.ParentContainerID = container.ParentContainerID;
     this.ContextID         = container.ContextID;
     this.Name        = container.Name;
     this.DataName    = container.DataName;
     this.DisplayText = container.DisplayText;
     this.IsRepeating = container.IsRepeating;
 }
コード例 #6
0
 public IHttpActionResult CreateRootContainer(int id, EAV.Store.IStoreContainer container)
 {
     try
     {
         return(Ok <EAV.Store.IStoreContainer>(containerClient.CreateRootContainer(container, id)));
     }
     catch (Exception ex)
     {
         return(InternalServerError(ex));
     }
 }
コード例 #7
0
 public Container(EAV.Store.IStoreContainer container)
 {
     Container_ID        = container.ContainerID.GetValueOrDefault();
     Context_ID          = container.ContextID.GetValueOrDefault();
     Data_Name           = container.DataName;
     Display_Text        = container.DisplayText;
     Is_Repeating        = container.IsRepeating;
     Parent_Container_ID = container.ParentContainerID;
     Name     = container.Name;
     Sequence = container.Sequence;
 }
コード例 #8
0
        public IHttpActionResult UpdateContainer(EAV.Store.IStoreContainer container)
        {
            try
            {
                containerClient.UpdateContainer(container);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #9
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);
            }
        }
コード例 #10
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)));
                }
            }
        }