示例#1
0
        public ItemsRequestResult GetItem(string id, string selectedEntityName)
        {
            var res      = new ItemsRequestResult();
            var entities = GetObjCollectionOfSelectedItemType(ref selectedEntityName);

            int.TryParse(id, out int intID);
            if (intID == 0)
            {
                res.d = InstantiateItem(entities);
            }
            else
            {
                res.d = FindByID(entities, intID);
            }
            if (res.d == null)
            {
                res.msg = "Объект не найден";
            }
            return(res);
        }
示例#2
0
        public RequestResultBase GetItems(int pageNum, int pageSize, string sort, string direction,
                                          Dictionary <string, string> filter, string selectedEntityName)
        {
            var res      = new ItemsRequestResult();
            var entities = GetObjCollectionOfSelectedItemType(ref selectedEntityName);

            filter.Remove("controller");
            filter.Remove("action");
            filter?.ToList().ForEach(condition =>
            {
                entities = entities.Where(obj => DataHelper.ValueMatchesKey(obj,
                                                                            condition.Key, condition.Value, null));
            });
            res.total = entities.Count();

            if (sort?.ToLower() == "up")
            {
                entities = entities.OrderBy(obj => DataHelper.GetValByRefl(obj, sort, null));
            }
            else if (sort?.ToLower() == "down")
            {
                entities = entities.OrderByDescending(obj => DataHelper.GetValByRefl(obj, sort, null));
            }

            if (pageNum > res.total / pageSize)
            {
                pageNum = res.total / pageSize;
            }
            else if (pageNum < 0)
            {
                pageNum = 0;
            }
            entities        = entities.Skip(pageSize * (pageNum - 1)).Take(pageSize);
            res.items       = entities.ToArray();
            res.foreignKeys = GetForeignKeysAsCollecsOfIDNamePairs(selectedEntityName);
            return(res);
        }