Exemple #1
0
        protected override List <object> GetValuesForRow(Product item)
        {
            var values      = base.GetValuesForRow(item);
            var vendors     = SiteObjectService.GetSingleRelation <Vendor>(item);
            var entityLinks = new ListVM.EntityLinkList();

            var metaData = MetaDataProvider.Get(typeof(Vendor));

            foreach (var vendor in vendors)
            {
                entityLinks.Add(new ListVM.EntityLink(vendor, metaData, Url));
            }
            values.Add(entityLinks);
            return(values);
        }
Exemple #2
0
        public void AddColumns <T>(AjaxGridVM model,
                                   params Expression <Func <T, object> >[] selectors)
        {
            var metaData = MetaDataProvider.Get(typeof(T)).GetProperties();
            var columns  = new Dictionary <string, AjaxGridVM.Column>();

            foreach (var selector in selectors)
            {
                var info = ExpressionUtils.GetPropertyInfo(selector);
                var meta = metaData.First(x => x.Info == info);
                columns.Add(meta.DisplayName(), new AjaxGridVM.Column(info.Name));
            }
            model.ColumnTitles.AddRange(columns.Select(x => x.Key));
            model.Columns.AddRange(columns.Select(x => x.Value));
        }
        public ActionResult SiteObjectEdit(string typeName, object id)
        {
            var entityType = typeof(SpecialistDataContext).Assembly.GetTypes()
                             .Where(t => t.FullName == typeName).First();
            var type       = LinqToSqlUtils.GetTableName(entityType);
            var siteObject = SiteObjectService
                             .GetBy(type, LinqToSqlUtils.CorrectPKType(id, entityType));

            if (siteObject == null)
            {
                return(Redirect(Request.UrlReferrer.AbsoluteUri));
            }
            return(View(ViewNames.EditRelationList, new EditVM(siteObject,
                                                               MetaDataProvider.Get(typeof(SiteObject)))));
        }
Exemple #4
0
        protected void UpdateEntity(object obj, NameValueCollection formCollection)
        {
            var metaData = MetaDataProvider.Get(obj.GetType());

            if (metaData == null)
            {
                return;
            }
            foreach (var property in metaData.GetProperties())
            {
                try
                {
                    if (property.Control() == Controls.PropertyGrid)
                    {
                        var collectionForComplexProperty = new NameValueCollection();
                        foreach (var tempKey in formCollection.AllKeys)
                        {
                            var prefix = property.Name + ".";
                            if (tempKey.StartsWith(prefix))
                            {
                                collectionForComplexProperty.Add(
                                    tempKey.Remove(0, prefix.Length), formCollection[tempKey]);
                            }
                        }
                        UpdateEntity(obj.GetValue(property.Name),
                                     collectionForComplexProperty);
                        continue;
                    }
                    object value = null;

                    /*      if(property.IsManyToMany)
                     *    {
                     *        var m2mEntities = property.Info.GetValue(obj);
                     *        m2mEntities.InvokeMethod("Clear");
                     *        var idList = formCollection[property.Info.Name].Split(',');
                     *        var setType = property.Type.GetGenericArguments().First();
                     *        var idPropertyName = LinqToSqlUtil.GetIdPropertyName(typeof(T));
                     *        var entityID = LinqToSqlUtil.GetId(obj);
                     *        var m2MPropertyInfo =
                     *            LinqToSqlUtil.GetOtherM2MPropertyInfo(property.Info);
                     *        foreach (var id in idList)
                     *        {
                     *            var correctId = LinqToSqlUtil.CorrectIdType(id,
                     *                property.ForeignType);
                     *            var m2mEntity = setType.Create();
                     *            m2MPropertyInfo.SetValue(m2mEntity, correctId);
                     *            m2mEntity.SetValue(entityID, idPropertyName);
                     *
                     *            m2mEntities.InvokeMethod("Add", m2mEntity);
                     *
                     *        }
                     *        continue;
                     *    }*/
                    var key       = property.Info.Name;
                    var valueType = obj.GetType().GetProperty(key).PropertyType;
                    if (valueType == typeof(bool))
                    {
                        bool b;
                        if (bool.TryParse(formCollection[key], out b))
                        {
                            value = b;
                        }
                    }
                    else if (formCollection[key] == string.Empty &&
                             property.Control() == Controls.Select)
                    {
                    }
                    else if (formCollection[key] == null)
                    {
                        continue;
                    }
                    else
                    {
                        value = ObjectUtils.SmartConvert(formCollection[key], valueType);
                    }
                    obj.SetValue(value, key);
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError(property.Name, ex.Message);
                }
            }
        }