예제 #1
0
        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();

            }
        }