public IActionResult GetRecordsByEntityName(string entityName, string listName, int page, string filter = "all", string search = "") { EntityListResponse entitiesResponse = entityManager.ReadEntities(); List<Entity> entities = entitiesResponse.Object.Entities; RecordListRecordResponse response = new RecordListRecordResponse(); response.Message = "Success"; response.Timestamp = DateTime.UtcNow; response.Success = true; response.Object = new RecordListRecord(); Entity entity = entities.FirstOrDefault(e => e.Name == entityName); if (entity == null) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "Entity with such name does not exist!"; response.Errors.Add(new ErrorModel("entityName", entityName, "Entity with such name does not exist!")); return DoResponse(response); } bool hasPermisstion = SecurityContext.HasEntityPermission(EntityPermission.Read, entity); if (!hasPermisstion) { response.Success = false; response.Message = "Trying to read records from entity '" + entity.Name + "' with no read access."; response.Errors.Add(new ErrorModel { Message = "Access denied." }); return DoResponse(response); } try { response.Object.Data = GetListRecords(entities, entity, listName, page, null, filter, search); } catch (Exception ex) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = ex.Message; return DoResponse(response); } RecordList list = entity.RecordLists.FirstOrDefault(l => l.Name == listName); if (list != null) { response.Object.Meta = list; } return DoResponse(response); }
public IActionResult GetRecordListByEntityName(string entityName, string listName, int page, int? pageSize = null, Guid? relationId = null, Guid? relatedRecordId = null, string direction = "origin-target") { EntityListResponse entitiesResponse = entMan.ReadEntities(); List<Entity> entities = entitiesResponse.Object; var response = new RecordListRecordResponse(); response.Message = "Success"; response.Timestamp = DateTime.UtcNow; response.Success = true; response.Object = null; Entity entity = entities.FirstOrDefault(e => e.Name == entityName); if (entity == null) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "Entity with such name does not exist!"; response.Errors.Add(new ErrorModel("entityName", entityName, "Entity with such name does not exist!")); return DoResponse(response); } bool hasPermisstion = SecurityContext.HasEntityPermission(EntityPermission.Read, entity); if (!hasPermisstion) { response.Success = false; response.Message = "Trying to read records from entity '" + entity.Name + "' with no read access."; response.Errors.Add(new ErrorModel { Message = "Access denied." }); return DoResponse(response); } EntityRelation relation = null; if (relationId != null) { relation = relMan.Read().Object.SingleOrDefault(r => r.Id == relationId); if (relation == null) { response.Success = false; response.Message = "The provided relationId is not of any existing relation"; return DoResponse(response); } if (relation != null && relatedRecordId == null) { response.Success = false; response.Message = "The Id of the relation record is required when a relation is submitted"; return DoResponse(response); } } try { QueryObject queryObj = null; /*if (Request.Query.Count > 0) { List<QueryObject> queryObjList = new List<QueryObject>(); RecordList listMeta = entity.RecordLists.FirstOrDefault(l => l.Name == listName); if (listMeta != null) { foreach (var query in Request.Query) { if (listMeta.Columns.Any(c => c.DataName == query.Key)) { queryObjList.Add(EntityQuery.QueryContains(query.Key, query.Value)); } } } if (queryObjList.Count == 1) queryObj = queryObjList[0]; else if (queryObjList.Count > 1) queryObj = EntityQuery.QueryAND(queryObjList.ToArray()); }*/ if (relation == null) { response.Object = GetListRecords(entities, entity, listName, page, queryObj, pageSize); } else { response.Object = GetListRecords(entities, entity, listName, page, queryObj, pageSize, false, relation, relatedRecordId, direction); } } catch (Exception ex) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = ex.Message; return DoResponse(response); } return DoResponse(response); }
public IActionResult GetRecordsByEntityName(string entityName, string listName, string filter, int page) { EntityListResponse entitiesResponse = entityManager.ReadEntities(); List<Entity> entities = entitiesResponse.Object.Entities; RecordListRecordResponse response = new RecordListRecordResponse(); response.Message = "Success"; response.Timestamp = DateTime.UtcNow; response.Success = true; response.Object = new RecordListRecord(); Entity entity = entities.FirstOrDefault(e => e.Name == entityName); if (entity == null) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "Entity with such name does not exist!"; response.Errors.Add(new ErrorModel("entityName", entityName, "Entity with such name does not exist!")); return DoResponse(response); } response.Object.Data = GetListRecords(entities, entity, listName, page); RecordList list = entity.RecordLists.FirstOrDefault(l => l.Name == listName); if (list != null) { response.Object.Meta = list; } return DoResponse(response); }