예제 #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)));
                }
            }
        }
예제 #2
0
        public void DeleteValue()
        {
            EAV.Store.Clients.IValueStoreClient client = factory.Create <EAV.Store.Clients.IValueStoreClient>();
            var valueKey = SelectRandomItem(RetrieveAvailableValueKeys());

            EAVStoreClient.Value dbValueIn = CreateValue(valueKey.AttributeID, valueKey.InstanceID, Guid.NewGuid().ToString());

            client.DeleteValue(dbValueIn.Attribute_ID, dbValueIn.Instance_ID);

            EAVStoreClient.Value dbValueOut = this.DbContext.Values.SingleOrDefault(it => it.Attribute_ID == dbValueIn.Attribute_ID && it.Instance_ID == dbValueIn.Instance_ID);

            Assert.IsNull(dbValueOut, "Failed to delete value for attribute ID {0} and instance ID {1} from the database.", dbValueIn.Attribute_ID, dbValueIn.Instance_ID);
        }
예제 #3
0
        public void RetrieveRandomValue()
        {
            EAVStoreClient.Value dbValue = SelectRandomItem(this.DbContext.Values);

            if (dbValue != null)
            {
                EAV.Store.Clients.IValueStoreClient client = factory.Create <EAV.Store.Clients.IValueStoreClient>();

                var value = client.RetrieveValue(dbValue.Attribute_ID, dbValue.Instance_ID);

                Assert.IsNotNull(value, "Failed to retrieve value [{0}, {1}].", dbValue.Attribute_ID, dbValue.Instance_ID);
                Assert.AreEqual(dbValue.Attribute_ID, value.AttributeID, "Attribute ID values do not match.");
                Assert.AreEqual(dbValue.Instance_ID, value.InstanceID, "Instance ID values do not match.");
            }
            else
            {
                Assert.Inconclusive("No values were found in the database.");
            }
        }