Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }