private IEnumerable <Course> GetCourses(string RelationObject_ID, string RelationObjectType) { IQueryable <Course> courseQuery = null; if (RelationObjectType == null) { courseQuery = new List <Course>().AsQueryable();//Repository.GetAll(); } else { var relationObjectType = ContextProvider.GetTypeByTableName( RelationObjectType); /* if (obj.RelationObject_ID is string[]) * obj.RelationObject_ID = (obj.RelationObject_ID as string[]).First();*/ var relationObjectID = LinqToSqlUtils.CorrectPKType(RelationObject_ID, relationObjectType); courseQuery = SiteObjectService .GetByRelationObject <Course>(relationObjectType, relationObjectID); ViewData["SiteObject"] = SORepository.GetAll().First(so => so.ID.Equals(relationObjectID) && so.Type == RelationObjectType); } return(courseQuery.Where(c => c.IsActive) .OrderBy(c => c.WebSortOrder) .Select(c => new { c.Course_TC, c.Name }) .ToList() .Select(c => new Course { Course_TC = c.Course_TC, Name = c.Name })); }
public ActionResult ReverseRelationSorting(string className, string RelationObject_ID, string RelationObjectType) { var type = SiteObjectType.GetAll().First(x => x.ClassName == className); var model = new ReverseRelationSortingVM(); model.ObjectType = type.SysName; model.ClassName = className; if (RelationObject_ID == null) { return(View(model)); } var objId = LinqToSqlUtils.CorrectPKType(RelationObject_ID, ContextProvider.GetTypeByTableName( RelationObjectType)); var relationObjectType = ContextProvider.GetTypeByTableName( RelationObjectType); var relationObjectID = LinqToSqlUtils.CorrectPKType(RelationObject_ID, relationObjectType); model.SiteObject = SORepository.GetAll().First(so => so.ID.Equals(relationObjectID) && so.Type == RelationObjectType); model.Relations = GetCourseRelations(type.Type, RelationObjectType, (int)objId); return(View(model)); }
public ActionResult MainEntityList(string type, object id, List <string> entities) { if (entities != null) { var objectType = ContextProvider.GetTypeByTableName(type); var objectId = LinqToSqlUtils.CorrectPKType(id, objectType); var oldRelations = SiteObjectRelationRepository .GetAll(x => x.Object_ID == objectId && x.ObjectType == type).ToList(); foreach (var entity in entities) { var parts = entity.Split(';'); var tableName = parts[0]; var entityType = ContextProvider.GetTypeByTableName(tableName); var entityId = LinqToSqlUtils.CorrectPKType(parts[1], entityType); var relation = new SiteObjectRelation { Object_ID = objectId, ObjectType = type, RelationObject_ID = entityId, RelationObjectType = tableName }; if (!oldRelations.Any(x => x.RelationObject_ID.Equals(relation.RelationObject_ID) && x.RelationObjectType == relation.RelationObjectType)) { SiteObjectRelationRepository.Insert(relation); } } SiteObjectRelationRepository.SubmitChanges(); } return(Json("ok")); }
public virtual ActionResult DeleteAll(string tableName, object id) { var entityType = ContextProvider.GetTypeByTableName(tableName); var relations = SiteObjectRelationRepository.GetAll(x => x.ObjectType == tableName && x.Object_ID == LinqToSqlUtils.CorrectPKType(id, entityType)); foreach (var relation in relations) { SiteObjectRelationRepository.Delete(relation); } SiteObjectRelationRepository.SubmitChanges(); return(null); }
public override ActionResult Add(FormCollection formCollection, string operationType) { var obj = new SiteObjectRelation(); UpdateEntity(obj, formCollection); var objectType = ContextProvider.GetTypeByTableName(obj.ObjectType); obj.Object_ID = LinqToSqlUtils.CorrectPKType(obj.Object_ID, objectType); var relationObjectType = ContextProvider.GetTypeByTableName( obj.RelationObjectType); obj.RelationObject_ID = LinqToSqlUtils.CorrectPKType(obj.RelationObject_ID, relationObjectType); Repository.InsertAndSubmit(obj); return(Redirect(Request.UrlReferrer.AbsoluteUri)); }
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)); }