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))); } } }
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); }
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."); } }