private void BindGeneralPropertyList(List<ITreeNode> parents) { using (ProductProvider provider = new ProductProvider()) { //--- general property------- List<Property> props = provider.GetAvailablePropertiesToModify(this.Roles); var q = from s in props.Where(f => f.ClassificationID.HasValue) join l in parents on s.ClassificationID.Value equals l.ID select new Property() { ID = s.ID, Type = s.Type, Name = string.Format("{0} ({1})", s.Name, l.Name) }; props = q.ToList(); List<ProductProperty> values = provider.ProductProperties.Where(pp => pp.ProductID == this.RequestProductID).ToList(); List<Pair<Property, ProductProperty>> source = new List<Pair<Property, ProductProperty>>(); foreach (Property item in props) { ProductProperty val = values.SingleOrDefault(pp => pp.PropertyID == item.ID); Pair<Property, ProductProperty> entity = new Pair<Property, ProductProperty>(item, val); source.Add(entity); } GeneralPropertyRepeater.DataSource = source;//props; GeneralPropertyRepeater.DataBind(); } }
private void BindGeneralPropertyList(List<ITreeNode> parents) { using (ProductProvider provider = new ProductProvider()) { //--- general property------- List<Property> props = provider.GetAvailablePropertiesToModify(this.Roles); var q = from s in props.Where(f => f.ClassificationID.HasValue) join l in parents on s.ClassificationID.Value equals l.ID select new Property() { ID = s.ID, Type = s.Type, Name = string.Format("{0} ({1})", s.Name, l.Name) }; props = q.ToList(); List<ProductProperty> values = provider.ProductProperties.Where(pp => pp.ProductID == this.RequestProductID).ToList(); List<Pair<Property, ProductProperty>> source = new List<Pair<Property, ProductProperty>>(); foreach (Property item in props) { ProductProperty val = values.SingleOrDefault(pp => pp.PropertyID == item.ID); // для добавления по аналогу сбрасываем галочку "Основная версия" if (this.IsNew && item.ID == new Guid("BBE170B0-28E4-4738-B365-1038B03F4552")) { val.Value = "0"; } // для "Не новых" продуктов нельзя менять основание изменений // if (!this.IsNew && item.ID == new Guid("c266b994-9740-41f6-94dd-07ea5b5fa34a")) continue; // для "Новых" продуктов наращиваем номер версии if (this.IsNew && item.ID == new Guid("0789DB1A-9BAA-4574-B405-AE570C746C03")) { int maxVersion = provider.getMaxVersionByProductID(this.RequestProductID) + 1; val.Value = maxVersion.ToString(); } Pair<Property, ProductProperty> entity = new Pair<Property, ProductProperty>(item, val); source.Add(entity); } GeneralPropertyRepeater.DataSource = source;//props; GeneralPropertyRepeater.DataBind(); } }