Ejemplo n.º 1
0
        /// <summary>
        /// Возвращает список категорий товаров из магазина в виде массива
        /// </summary>
        /// <returns></returns>
        public CartCategoryModel[] GetCartCategoriesList(CartFilter filter)
        {
            using (var db = new CMSdb(_context))
            {
                var query = db.cart_categories
                            .Where(w => !w.b_disabled);

                //Список категорий, к которым отнесен товар
                if (filter.ProductId.HasValue)
                {
                    query = query
                            .Where(c => c.fkproductss.Any(p => p.f_product == filter.ProductId.Value));
                }

                var data = query
                           .Select(s => new CartCategoryModel
                {
                    Id    = s.id,
                    Icon  = s.c_icon,
                    Title = s.c_name,
                    Desc  = s.c_desc
                }).ToArray();

                return(data);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Возвращает список категорий товаров из магазина
        /// </summary>
        /// <returns></returns>
        public Paged <CartProductModel> GetProducts(CartFilter filter)
        {
            using (var db = new CMSdb(_context))
            {
                var result = new Paged <CartProductModel>();
                var query  = db.cart_products_categories
                             .Where(c => !c.fkproductscategoriesproducts.b_disabled);

                if (filter.CategoryId.HasValue)
                {
                    query = query
                            .Where(c => c.f_category == filter.CategoryId.Value);
                }

                /*if (!String.IsNullOrWhiteSpace(filter.SearchText))
                 *  query = query
                 *      .Where(c => c.fkproductcategoriesproducts.c_title.Contains(filter.SearchText)
                 || c.fkproductcategoriesproducts.c_desc.Contains(filter.SearchText)
                 || c.fkproductcategoriescategories.c_name.Contains(filter.SearchText)
                 || c.fkproductcategoriescategories.c_desc.Contains(filter.SearchText)
                 ||                 );*/

                int itemsCount = query.Count();

                var list = query
                           .Skip(filter.Size * (filter.Page - 1))
                           .Take(filter.Size)
                           .Select(s => new CartProductModel
                {
                    Id            = s.f_product,
                    Number        = s.fkproductscategoriesproducts.n_product,
                    Title         = s.fkproductscategoriesproducts.c_title,
                    Desc          = s.fkproductscategoriesproducts.c_desc,
                    Price         = s.fkproductscategoriesproducts.n_price,
                    PricePrev     = s.fkproductscategoriesproducts.n_price_old,
                    PriceInfoPrev = s.fkproductscategoriesproducts.c_price_old,
                    PriceInfo     = s.fkproductscategoriesproducts.c_price,
                    Disabled      = s.fkproductscategoriesproducts.b_disabled,

                    Categories = GetCartCategoriesList(new CartFilter()
                    {
                        ProductId = s.f_product
                    }),
                    //Images =
                }).ToArray();

                return(new Paged <CartProductModel>
                {
                    Items = list,
                    Pager = new PagerModel
                    {
                        PageNum = filter.Page,
                        PageSize = filter.Size,
                        TotalCount = itemsCount
                    }
                });
            }
        }
Ejemplo n.º 3
0
        public async Task <Response> ManageCart(CartFilter filter, string action)
        {
            filter.companyId = CompanyId;
            var filterData = JsonConvert.SerializeObject(filter);
            var result     = await CallPostFunction(filterData, ManageCartAction + action);

            if (result == null)
            {
                return(null);
            }
            else
            {
                return(result);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Возвращает постраничный список категорий товаров из магазина
        /// </summary>
        /// <param name="filter"></param>
        /// <returns></returns>
        public Paged <CartCategoryModel> GetCartCategories(CartFilter filter)
        {
            using (var db = new CMSdb(_context))
            {
                var result = new Paged <CartCategoryModel>();
                var query  = db.cart_categories
                             .Where(w => !w.b_disabled);

                if (filter.Disabled.HasValue)
                {
                    query = query.Where(w => w.b_disabled == filter.Disabled.Value);
                }

                if (!String.IsNullOrWhiteSpace(filter.SearchText))
                {
                    query = query.Where(w => w.c_name.ToLower().Contains(filter.SearchText.ToLower()));
                }

                int itemsCount = query.Count();

                var list = query
                           .Skip(filter.Size * (filter.Page - 1))
                           .Take(filter.Size)
                           .Select(s => new CartCategoryModel
                {
                    Id            = s.id,
                    Icon          = s.c_icon,
                    Title         = s.c_name,
                    Desc          = s.c_desc,
                    Disabled      = s.b_disabled,
                    TotalProducts = db.cart_products.Where(p => p.fkcategoriess.Any(t => t.f_category == s.id)).Count()
                }).ToArray();

                return(new Paged <CartCategoryModel>
                {
                    Items = list,
                    Pager = new PagerModel
                    {
                        PageNum = filter.Page,
                        PageSize = filter.Size,
                        TotalCount = itemsCount
                    }
                });
            }
        }
Ejemplo n.º 5
0
        public IndexViewModel Create(HttpContext httpContext, CartFilter filter, IEnumerable <Cart> carts, string cartBy, int skip, int take, int total)
        {
            IStringLocalizer <IndexViewModelFactory> localizer = httpContext.GetStringLocalizer <IndexViewModelFactory>();

            return(new IndexViewModel()
            {
                Grid = new GridViewModelFactory().Create(
                    httpContext, cartBy, skip, take, total,
                    new[] {
                    new GridColumnViewModelFactory().Create(localizer["#"]),
                    new GridColumnViewModelFactory().Create(localizer["Total"]),
                    new GridColumnViewModelFactory().Create(localizer["Created"], "Created"),
                    new GridColumnViewModelFactory().CreateEmpty()
                },
                    carts.Select(c => new CartViewModelFactory().Create(c)),
                    "_Cart"
                    )
            });
        }
Ejemplo n.º 6
0
        public async Task <Response> getCartCount(UserDetails userDetail)
        {
            CartFilter filter = new CartFilter();

            filter.username  = userDetail.username;
            filter.password  = userDetail.password_str;
            filter.userId    = userDetail.id;
            filter.companyId = userDetail.company_id ?? 0;
            var productData = JsonConvert.SerializeObject(filter);
            var result      = await CallPostFunction(productData, ManageCartAction + "CartCount");

            if (result == null)
            {
                return(null);
            }
            else
            {
                return(result);
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Возвращает список(массив) категорий товаров из магазина
        /// </summary>
        /// <returns></returns>
        public CartProductModel[] GetProductsList(CartFilter filter)
        {
            using (var db = new CMSdb(_context))
            {
                var result = new Paged <CartProductModel>();
                var query  = db.cart_products_categories
                             .Where(c => !c.fkproductscategoriesproducts.b_disabled);

                if (filter.CategoryId.HasValue)
                {
                    query = query
                            .Where(c => c.f_category == filter.CategoryId.Value);
                }

                var list = query
                           .Select(s => new CartProductModel
                {
                    Id            = s.f_product,
                    Number        = s.fkproductscategoriesproducts.n_product,
                    Title         = s.fkproductscategoriesproducts.c_title,
                    Desc          = s.fkproductscategoriesproducts.c_desc,
                    Price         = s.fkproductscategoriesproducts.n_price,
                    PricePrev     = s.fkproductscategoriesproducts.n_price_old,
                    PriceInfoPrev = s.fkproductscategoriesproducts.c_price_old,
                    PriceInfo     = s.fkproductscategoriesproducts.c_price,
                    Disabled      = s.fkproductscategoriesproducts.b_disabled,

                    Categories = GetCartCategoriesList(new CartFilter()
                    {
                        ProductId = s.f_product
                    }),
                    //Images =
                }).ToArray();

                return(list);
            }
        }
Ejemplo n.º 8
0
        private async Task <IActionResult> PrepareCartListView(CartType cartType)
        {
            var seller = await HttpContext.GetSellerAsync();

            var customer = await HttpContext.GetMemberAsync();

            var filter = new CartFilter {
                SellerId = seller.Id, CustomerId = customer.Id, Type = cartType
            };

            var carts = (await _cartService.ListAsync(filter));

            // Ensure all carts are validated before evaluation.
            carts = carts.Where(x => _cartService.Validate(x).Success);

            var model = new CartListModel
            {
                Filter   = filter,
                CartType = cartType
            };
            await _appService.PrepareModelAsync(model, carts.ToPageable());

            return(View("CartList", model));
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Список заказов
        /// </summary>
        /// <param name="filter"></param>
        /// <returns></returns>
        public Paged <OrderModel> GetOrders(CartFilter filter)
        {
            using (var db = new CMSdb(_context))
            {
                var result = new Paged <OrderModel>();
                var query  = db.cart_orders
                             .AsQueryable();

                if (filter.UserId.HasValue)
                {
                    query = query
                            .Where(c => c.f_client == filter.UserId.Value);
                }

                if (filter.Date.HasValue)
                {
                    query = query
                            .Where(c => c.d_date > filter.Date.Value);
                }

                if (filter.DateEnd.HasValue)
                {
                    query = query
                            .Where(c => c.d_date < filter.DateEnd.Value.AddDays(1));
                }

                if (!string.IsNullOrEmpty(filter.Type) && int.TryParse(filter.Type, out int type))
                {
                    query = query
                            .Where(c => c.f_status == type);
                }


                int itemsCount = query.Count();

                var list = query
                           .OrderByDescending(s => s.d_date)
                           .Skip(filter.Size * (filter.Page - 1))
                           .Take(filter.Size)
                           .Select(s => new OrderModel
                {
                    Id            = s.id,
                    Number        = s.n_order,
                    Date          = s.d_date,
                    UserId        = s.f_client,
                    UserName      = s.c_client_name,
                    UserPhone     = s.c_client_phone,
                    UserEmail     = s.c_client_email,
                    UserAddress   = s.c_client_address,
                    Payed         = s.b_payed,
                    Status        = (OrderStatus)s.f_status,
                    DeliveryType  = (DeliveryMethod)s.f_delivery,
                    AcquiringType = (AcquiringMethod)s.f_acquiring,
                    Note          = s.c_note,

                    Total    = db.cart_orders_items.Where(p => p.f_order == s.id).Count(),
                    TotalSum = db.cart_orders_items.Where(p => p.f_order == s.id).Any()
                                    ? db.cart_orders_items.Where(p => p.f_order == s.id).Sum(p => p.n_total_sum)
                                    : 0.00m
                               //Products
                }).ToArray();

                return(new Paged <OrderModel>
                {
                    Items = list,
                    Pager = new PagerModel
                    {
                        PageNum = filter.Page,
                        PageSize = filter.Size,
                        TotalCount = itemsCount
                    }
                });
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Возвращает постраничный список категорий товаров из магазина
        /// </summary>
        /// <returns></returns>
        public Paged <CartProductModel> GetProducts(CartFilter filter)
        {
            using (var db = new CMSdb(_context))
            {
                var result = new Paged <CartProductModel>();
                var query  = db.cart_products
                             .Where(s => !s.b_disabled);

                if (filter.CategoryId.HasValue)
                {
                    query = query.Where(s => s.fkcategoriess.Any(c => c.f_category == filter.CategoryId.Value));
                }

                if (!string.IsNullOrEmpty(filter.Category) && Guid.TryParse(filter.Category, out Guid catId))
                {
                    query = query.Where(s => s.fkcategoriess.Any(c => c.f_category == catId));
                }

                if (filter.Disabled.HasValue)
                {
                    query = query.Where(s => s.b_disabled == filter.Disabled.Value);
                }

                if (!string.IsNullOrEmpty(filter.SearchText))
                {
                    query = query.Where(s => s.c_title.ToLower().Contains(filter.SearchText.ToLower()) ||
                                        s.c_desc.Contains(filter.SearchText.ToLower()));
                }

                int itemsCount = query.Count();

                var list = query
                           .Skip(filter.Size * (filter.Page - 1))
                           .Take(filter.Size)
                           .Select(s => new CartProductModel
                {
                    Id            = s.id,
                    Number        = s.n_product,
                    Title         = s.c_title,
                    Desc          = s.c_desc,
                    Price         = s.n_price,
                    PricePrev     = s.n_price_old,
                    PriceInfoPrev = s.c_price_old,
                    PriceInfo     = s.c_price,
                    Disabled      = s.b_disabled,

                    Categories = GetCartCategoriesList(new CartFilter()
                    {
                        ProductId = s.id
                    }),
                    //Images =
                }).ToArray();

                return(new Paged <CartProductModel>
                {
                    Items = list,
                    Pager = new PagerModel
                    {
                        PageNum = filter.Page,
                        PageSize = filter.Size,
                        TotalCount = itemsCount
                    }
                });
            }
        }