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)))));
        }
        public ActionResult RelationList(string type, object id, bool?linkCreator)
        {
            var entityType = ContextProvider.GetTypeByTableName(type);
            var siteObject = SiteObjectService
                             .GetBy(type, LinqToSqlUtils.CorrectPKType(id, entityType));

            foreach (var objectRelation in siteObject.ObjectRelations)
            {
                var entityTypeForObject =
                    ContextProvider.GetTypeByTableName(objectRelation.RelationObjectType);
                if (objectRelation.RelationObject == null)
                {
                    continue;
                }
                objectRelation.RelationObject.Entity = DynamicRepository
                                                       .GetByPK(entityTypeForObject,
                                                                LinqToSqlUtils.CorrectPKType(
                                                                    objectRelation.RelationObject_ID, entityTypeForObject));
            }
            var model = new RelationListVM {
                EntityType = entityType,
                SiteObject = new SiteObject {
                    ID = id, Type = type
                },
                ForLinkCreator = linkCreator.GetValueOrDefault(),
            };

            if (model.Sortable)
            {
                model.Relations = siteObject.ObjectRelations.OrderBy(x => x.RelationOrder).ToList();
            }
            else
            {
                model.Relations = siteObject.ObjectRelations
                                  .OrderBy(x => x.RelationObject.GetOrDefault(y => y.Name)).ToList();
            }
            return(PartialView(PartialViewNames.RelationListControl, model));
        }
Exemple #3
0
        public ActionResult Search(string typeName, int id, int?pageIndex)
        {
            if (!pageIndex.HasValue)
            {
                return(RedirectToAction(() => Search(typeName, id, 1)));
            }
            var type = SiteObject.GetType(typeName);

            if (type == null)
            {
                return(null);
            }
            var news = SiteObjectService.GetByRelationObject <News>(type, id)
                       .IsActive().OrderByDescending(n => n.PublishDate)
                       .ToPagedList(pageIndex.GetValueOrDefault(1) - 1, 5);

            return(View(
                       new RelationNewsVM {
                News = news,
                SiteObject = SiteObjectService.GetBy(
                    LinqToSqlUtils.GetTableName(type), id)
            }));
        }
Exemple #4
0
        private void SetSiteObject(object id, EditVM editVM)
        {
            var siteObjectType = LinqToSqlUtils.GetTableName(MetaData.EntityType);

            editVM.SiteObject = SiteObjectService.GetBy(siteObjectType, id);
        }