Exemplo n.º 1
0
        public async Task <IActionResult> Post([FromBody] Orders body)
        {
            await Db.Connection.OpenAsync();

            body.Db = Db;
            var itemQuery = new ItemsQuery(Db);


            for (int i = 0; i < body.OrdersD.Count; i++)
            {
                var itemId     = body.OrdersD[i].IdItem;
                var findItemID = itemQuery.FindOneAsync(itemId);

                if (findItemID.Result == null)
                {
                    FoundExceptions.NotFoundException(itemId);
                }
            }


            var orderId = await body.InsertOrdersAsync();

            await body.InsertOrderDetailAsync(body);

            var orderQuery = new OrdersQuery(Db);
            var result     = await orderQuery.FindOneAsync(orderId);



            return(new OkObjectResult(result[0]));
        }
Exemplo n.º 2
0
        public async Task <QueryResult <Item> > GetFiltrated(ItemsQuery query)
        {
            var columnsMap = new Dictionary <string, Expression <Func <Item, object> > >()
            {
                ["name"]        = i => i.Name,
                ["price"]       = i => i.Price,
                ["subcategory"] = i => i.SubcategoryId
            };

            var items = _context.Items
                        .Include(i => i.Subcategory)
                        .ThenInclude(s => s.Category)
                        .AsQueryable();

            if (query.CategoryId.HasValue)
            {
                items = items.Where(i => i.Subcategory.CategoryId == query.CategoryId)
                        .AsQueryable();
            }

            var count = await items.CountAsync();

            items = items.NullableOrderBy(columnsMap, query)
                    .ApplingPagination(query);

            QueryResult <Item> result = new QueryResult <Item>()
            {
                Entities = await items.ToListAsync(),
                Count    = count
            };

            return(result);
        }
Exemplo n.º 3
0
        public async Task <ActionResult> Get()
        {
            await Db.Connection.OpenAsync();

            var query  = new ItemsQuery(Db);
            var result = await query.GetAllAsync();

            return(new OkObjectResult(result));
        }
Exemplo n.º 4
0
        //[Authorize(Roles = "admin")]
        public async Task <IActionResult> Items([FromQuery] ItemsQuery itemsQuery)
        {
            FitemQueryOne fitemQueryOne = new FitemQueryOne();

            fitemQueryOne.cItemClass = itemsQuery.cItemClass;
            var fitem = _mediator.Send(fitemQueryOne);

            if (fitem.Result == null)
            {
                return(NotFound());
            }
            return(Ok(await _mediator.Send(itemsQuery)));
        }
Exemplo n.º 5
0
        public async Task <ActionResult> Get(int id)
        {
            await Db.Connection.OpenAsync();

            var query  = new ItemsQuery(Db);
            var result = await query.FindOneAsync(id);

            if (result is null)
            {
                return(new NotFoundResult());
            }
            return(new OkObjectResult(result));
        }
Exemplo n.º 6
0
        public static IQueryable <T> ApplingPagination <T>(this IQueryable <T> data, ItemsQuery query)
        {
            if (query.Page <= 0)
            {
                query.Page = 1;
            }

            if (query.PageSize <= 0)
            {
                query.PageSize = 10;
            }

            return(data
                   .Skip((query.Page - 1) * query.PageSize)
                   .Take(query.PageSize));
        }
Exemplo n.º 7
0
        public async Task <IActionResult> Put(int id, [FromBody] Items body)
        {
            await Db.Connection.OpenAsync();

            var query  = new ItemsQuery(Db);
            var result = await query.FindOneAsync(id);

            if (result is null)
            {
                return(new NotFoundResult());
            }
            result.Name        = body.Name;
            result.Description = body.Description;
            await result.UpdateAsync();

            return(new OkObjectResult(result));
        }
Exemplo n.º 8
0
    private static async Task <List <Item> > GetItems(
        IReadOnlyCollection <int> itemIds,
        ItemsQuery itemsQuery,
        ProgressTask progress
        )
    {
        var items = new List <Item>(itemIds.Count);

        progress.StartTask();
        await foreach (var item in itemsQuery.GetItemsByIds(
                           itemIds,
                           progress: new Progress <ICollectionContext>(ctx => UpdateProgress(ctx, progress))
                           ))
        {
            items.Add(item);
        }

        progress.StopTask();

        return(items);
    }
Exemplo n.º 9
0
        } // END GetCurrentItemsAsync

        public async Task <IEnumerable <Item> > GetItemsAsync(HomeUser user, ItemsQuery query)
        {
            var qb    = new StringBuilder(queryRepo.Get("ItemsHistoryQuery"));
            var parms = new Dapper.DynamicParameters();

            parms.Add("@HomeId", user.HomeId);
            qb.Append("home_id = @HomeId");
            if (!String.IsNullOrEmpty(query.Name))
            {
                parms.Add("@Name", query.Name);
                qb.Append("AND name = @Name");
            }
            if (query.CreatedDate1.HasValue)
            {
                parms.Add("@CreatedDate1", query.CreatedDate1.Value);
                qb.Append("AND created_at >= @CreatedDate1");
            }
            if (query.CreatedDate2.HasValue)
            {
                parms.Add("@CreatedDate2", query.CreatedDate2.Value);
                qb.Append("AND created_at <= @CreatedDate2");
            }
            if (query.PurchasedDate1.HasValue)
            {
                parms.Add("@PurchasedDate1", query.PurchasedDate1.Value);
                qb.Append("AND purchased_at >= @PurchasedDate1");
            }
            if (query.PurchasedDate2.HasValue)
            {
                parms.Add("@PurchasedDate2", query.PurchasedDate2.Value);
                qb.Append("AND purchased_at <= @PurchasedDate2");
            }
            using (var conn = factory.Create(archive))
            {
                await conn.OpenAsync();

                return(await conn.QueryAsync <PurchasedItem>(
                           qb.ToString(), parms));
            }
        } // END GetItemsAsync
Exemplo n.º 10
0
        public static IQueryable <T> NullableOrderBy <T>(this IQueryable <T> data, Dictionary <string, Expression <Func <T, object> > > columnsMap, ItemsQuery query)
        {
            if (String.IsNullOrWhiteSpace(query.SortBy) || !columnsMap.ContainsKey(query.SortBy))
            {
                return(data);
            }

            if (query.IfAscending)
            {
                return(data.OrderBy(columnsMap[query.SortBy]));
            }

            return(data.OrderByDescending(columnsMap[query.SortBy]));
        }