public IEnumerable<PropertyState> GetBoundedStates(Property property, PropertyState state) { var packages = state.ContentPackages; var propertyStates = packages.Aggregate(new List<PropertyState>().AsEnumerable(), (acc, elem) => acc.Concat(elem.PropertyStates)); return propertyStates.Where(st => st.Property.ID == property.ID) .Distinct(new DefaultModelEqualityComparer<PropertyState>()); }
public PropertyState CreateState(Property property, string value) { var existingPropertyStates = property.States.Where(state => state.Value == value).FirstOrDefault(); if (existingPropertyStates != null) throw new InvalidOperationException("Property state already exists."); int index = property.States.Count == 0 ? 1 : property.States.Max(x => x.Index) + 1; var propertyState = new PropertyState { Property = property, Value = value, Index = index }; UnitOfWork.GetRepository<PropertyState>().Insert(propertyState); UnitOfWork.Save(); return propertyState; }
private ContentPackage CreateContent() { var file1 = new ContentFile {Name = "file1.txt", Stream = CreateInputStream()}; var file2 = new ContentFile {Name = "file2.txt", Stream = CreateInputStream()}; var content = new ContentPackage {Files = new List<ContentFile> {file1, file2}}; file1.ContentPackage = content; file2.ContentPackage = content; var property1 = new Property {ID = 1, Order = 1}; var property2 = new Property {ID = 2, Order = 2}; var state1 = new PropertyState {ID = 1, Value = "prop1", Property = property1,Index = 1}; var state2 = new PropertyState {ID = 2, Value = "prop2", Property = property2,Index = 2}; content.PropertyStates = new Collection<PropertyState> {state1, state2}; return content; }
private void InitUnitOfWork(UnitOfWorkMock unitOfWork) { var property1 = new Property {Name = "property1", Order = 1, ID = 1}; var property2 = new Property {Name = "property2", Order = 2, ID = 2}; var state1 = new PropertyState {Property = property1, Value = "state1"}; var state2 = new PropertyState {Property = property1, Value = "state2"}; var state3 = new PropertyState {Property = property2, Value = "state3"}; var state4 = new PropertyState {Property = property2, Value = "state4"}; property1.States = new List<PropertyState> {state1, state2}; property2.States = new List<PropertyState> {state3, state4}; var package1 = new ContentPackage { ID = 1, PropertyStates = new Collection<PropertyState> {state1, state3} }; var package2 = new ContentPackage { ID = 2, PropertyStates = new Collection<PropertyState> {state2, state4} }; state1.ContentPackages = new Collection<ContentPackage> {package1}; state2.ContentPackages = new Collection<ContentPackage> {package2}; state3.ContentPackages = new Collection<ContentPackage> {package1}; state4.ContentPackages = new Collection<ContentPackage> {package2}; unitOfWork.GetRepository<Property>().Insert(property1); unitOfWork.GetRepository<Property>().Insert(property2); unitOfWork.GetRepository<PropertyState>().Insert(state1); unitOfWork.GetRepository<PropertyState>().Insert(state2); unitOfWork.GetRepository<PropertyState>().Insert(state3); unitOfWork.GetRepository<PropertyState>().Insert(state4); unitOfWork.GetRepository<ContentPackage>().Insert(package1); unitOfWork.GetRepository<ContentPackage>().Insert(package2); unitOfWork.Save(); }
private static PropertyState CreatePropertyState(Property property) { var propertyState = new PropertyState {Property = property, Value = "value"}; property.States.Add(propertyState); return propertyState; }