Beispiel #1
0
        //public BaseViewModel<string> DeleteOrder(Guid id)
        //{
        //    //Find product
        //    var order = _orderDetaiRrepository.GetById(id);
        //    //result to return
        //    BaseViewModel<string> result = null;
        //    //check product exist
        //    if (order == null || order.IsDelete)
        //    {
        //        result = new BaseViewModel<string>()
        //        {
        //            StatusCode = HttpStatusCode.NotFound,
        //            Code = ErrMessageConstants.NOTFOUND,
        //            Description = MessageHandler.CustomErrMessage(ErrMessageConstants.NOTFOUND)
        //        };
        //    }
        //    else
        //    {
        //        //update column isDelete = true
        //        order.IsDelete = true;
        //        _orderDetaiRrepository.Update(order);
        //        result = new BaseViewModel<string>();
        //        //save change
        //        Save();
        //    }
        //    return result;
        //}

        public BaseViewModel <OrderWithOrderDetailViewModel> GetOrderDetail(Guid id, Expression <Func <OrderDetail, bool> > filter, string include = null)
        {
            var includeList = IncludeLinqHelper <OrderDetail> .StringToListInclude(include);

            var orderDetail = _orderDetaiRrepository.Get(filter, includeList).ToList();

            if (orderDetail == null || orderDetail.Count == 0)
            {
                return(new BaseViewModel <OrderWithOrderDetailViewModel>
                {
                    StatusCode = HttpStatusCode.NotFound,
                    Description = MessageHandler.CustomErrMessage(ErrMessageConstants.NOTFOUND),
                    Code = ErrMessageConstants.NOTFOUND
                });
            }
            var order = _orderRepository.Get(_ => _.Id == id);

            return(new BaseViewModel <OrderWithOrderDetailViewModel>
            {
                Data = new OrderWithOrderDetailViewModel()
                {
                    TotalPrice = order.TotalPrice ?? 0,
                    ToTalQuantity = order.TotalQuantity ?? 0,
                    OrderDetail = _mapper.Map <IEnumerable <OrderDetailViewModel> >(orderDetail),
                    OrderStatus = order.Status
                }
            });
        }
Beispiel #2
0
        private async Task <BaseViewModel <PagingResult <BrandViewModel> > > GetAll(BasePagingRequestViewModel request, string defaultCondition = null)
        {
            var pageSize  = request.PageSize;
            var pageIndex = request.PageIndex;
            var result    = new BaseViewModel <PagingResult <BrandViewModel> >();

            string filter = SearchHelper <Brand> .GenerateStringExpression(request.Filter, defaultCondition);

            Expression <Func <Brand, bool> > FilterExpression = await LinqHelper <Brand> .StringToExpression(filter);

            var includeList = IncludeLinqHelper <Brand> .StringToListInclude(request?.Include);

            QueryArgs <Brand> queryArgs = new QueryArgs <Brand>
            {
                Offset  = pageSize * (pageIndex - 1),
                Limit   = pageSize,
                Filter  = FilterExpression,
                Sort    = request.SortBy,
                Include = includeList
            };


            var data = _repository.Get(queryArgs.Filter, queryArgs.Sort, queryArgs.Offset, queryArgs.Limit, queryArgs.Include).ToList();

            //var sql = data.ToSql();

            if (data == null || data.Count == 0)
            {
                result.Description = MessageHandler.CustomMessage(MessageConstants.NO_RECORD);
                result.Code        = MessageConstants.NO_RECORD;
            }
            else
            {
                var pageSizeReturn = pageSize;
                if (data.Count < pageSize)
                {
                    pageSizeReturn = data.Count;
                }
                result.Data = new PagingResult <BrandViewModel>
                {
                    Results      = _mapper.Map <IEnumerable <BrandViewModel> >(data),
                    PageIndex    = pageIndex,
                    PageSize     = pageSizeReturn,
                    TotalRecords = _repository.Count(queryArgs.Filter)
                };
            }

            foreach (var item in result?.Data?.Results)
            {
                var listStore         = _storeRepository.GetMany(_ => _.BrandId == item.Id).ToList();
                var sumRating         = listStore.Sum(_ => _.Rating);
                var sumNumberOfRating = listStore.Sum(_ => _.NumberOfRating);
                item.Location = listStore.Count;
                item.Rating   = sumRating * 1.0 / sumNumberOfRating * 1.0;
            }

            return(result);
        }
Beispiel #3
0
        private async Task <BaseViewModel <PagingResult <OrderViewModel> > > GetAllOrder(BasePagingRequestViewModel request, string defaultCondition = null)
        {
            var    pageSize  = request.PageSize;
            var    pageIndex = request.PageIndex;
            var    result    = new BaseViewModel <PagingResult <OrderViewModel> >();
            string filter    = SearchHelper <Order> .GenerateStringExpression(request.Filter, defaultCondition);

            Expression <Func <Order, bool> > FilterExpression = await LinqHelper <Order> .StringToExpression(filter);

            var includeList = IncludeLinqHelper <Order> .StringToListInclude(request?.Include);

            QueryArgs <Order> queryArgs = new QueryArgs <Order>
            {
                Offset  = pageSize * (pageIndex - 1),
                Limit   = pageSize,
                Filter  = FilterExpression,
                Sort    = request.SortBy,
                Include = includeList
            };

            var data = _orderRepository.Get(queryArgs.Filter, queryArgs.Sort, queryArgs.Offset, queryArgs.Limit, queryArgs.Include).ToList();

            if (data == null || data.Count == 0)
            {
                result.Description = MessageHandler.CustomMessage(MessageConstants.NO_RECORD);
                result.Code        = MessageConstants.NO_RECORD;
            }
            else
            {
                var pageSizeReturn = pageSize;
                if (data.Count < pageSize)
                {
                    pageSizeReturn = data.Count;
                }
                result.Data = new PagingResult <OrderViewModel>
                {
                    Results      = _mapper.Map <IEnumerable <OrderViewModel> >(data),
                    PageIndex    = pageIndex,
                    PageSize     = pageSizeReturn,
                    TotalRecords = _orderRepository.Count(queryArgs.Filter)
                };
                foreach (var item in result.Data.Results)
                {
                    if (item.StoreId != null)
                    {
                        item.Store = _mapper.Map <StoreViewModel>(_storeRepository.GetMany(_ => _.Id == new Guid(item.StoreId)).FirstOrDefault());
                    }
                }
            }

            return(result);
        }
Beispiel #4
0
        private async Task <BaseViewModel <PagingResult <ProductViewModel> > > GetAll(BasePagingRequestViewModel request, string defaultCondition = null)
        {
            var pageSize  = request.PageSize;
            var pageIndex = request.PageIndex;
            var result    = new BaseViewModel <PagingResult <ProductViewModel> >();

            string filter = SearchHelper <Product> .GenerateStringExpression(request.Filter, defaultCondition);

            Expression <Func <Product, bool> > FilterExpression = await LinqHelper <Product> .StringToExpression(filter);

            var includeList = IncludeLinqHelper <Product> .StringToListInclude(request?.Include);

            QueryArgs <Product> queryArgs = new QueryArgs <Product>
            {
                Offset  = pageSize * (pageIndex - 1),
                Limit   = pageSize,
                Filter  = FilterExpression,
                Sort    = request.SortBy,
                Include = includeList
            };


            var data = _repository.Get(queryArgs.Filter, queryArgs.Sort, queryArgs.Offset, queryArgs.Limit, queryArgs.Include).ToList();

            //var sql = data.ToSql();

            if (data == null || data.Count == 0)
            {
                result.Description = MessageHandler.CustomMessage(MessageConstants.NO_RECORD);
                result.Code        = MessageConstants.NO_RECORD;
            }
            else
            {
                var pageSizeReturn = pageSize;
                if (data.Count < pageSize)
                {
                    pageSizeReturn = data.Count;
                }
                result.Data = new PagingResult <ProductViewModel>
                {
                    Results      = _mapper.Map <IEnumerable <ProductViewModel> >(data),
                    PageIndex    = pageIndex,
                    PageSize     = pageSizeReturn,
                    TotalRecords = _repository.Count(queryArgs.Filter)
                };
            }

            return(result);
        }
Beispiel #5
0
        public BaseViewModel <ProductViewModel> GetProduct(Guid id, string include = null)
        {
            var includeList = IncludeLinqHelper <Product> .StringToListInclude(include);

            var product = _repository.Get(_ => _.Id == id && _.IsDelete == false, includeList).FirstOrDefault();

            if (product == null)
            {
                return(new BaseViewModel <ProductViewModel>
                {
                    StatusCode = HttpStatusCode.NotFound,
                    Description = MessageHandler.CustomErrMessage(ErrMessageConstants.NOTFOUND),
                    Code = ErrMessageConstants.NOTFOUND
                });
            }

            return(new BaseViewModel <ProductViewModel>
            {
                Data = _mapper.Map <ProductViewModel>(product),
            });
        }
Beispiel #6
0
        private BaseViewModel <OrderViewModel> GetOrder(Expression <Func <Order, bool> > filter, string include = null)
        {
            var includeList = IncludeLinqHelper <Order> .StringToListInclude(include);

            var order = _orderRepository.Get(filter, includeList).FirstOrDefault();

            if (order == null)
            {
                return(new BaseViewModel <OrderViewModel>
                {
                    StatusCode = HttpStatusCode.NotFound,
                    Description = MessageHandler.CustomErrMessage(ErrMessageConstants.NOTFOUND),
                    Code = ErrMessageConstants.NOTFOUND
                });
            }

            return(new BaseViewModel <OrderViewModel>
            {
                Data = _mapper.Map <OrderViewModel>(order),
            });
        }
Beispiel #7
0
        public BaseViewModel <MyUserViewModel> GetMyUser(Guid id, string include = null)
        {
            var includeList = IncludeLinqHelper <MyUser> .StringToListInclude(include);

            var myUser = _repository.Get(_ => _.IsDelete == false && _.Id == id, includeList).FirstOrDefault();

            if (myUser == null)
            {
                return(new BaseViewModel <MyUserViewModel>
                {
                    StatusCode = HttpStatusCode.NotFound,
                    Description = MessageHandler.CustomErrMessage(ErrMessageConstants.NOTFOUND),
                    Code = ErrMessageConstants.NOTFOUND
                });
            }
            var role = _userManager.GetRolesAsync(myUser).Result;
            var data = _mapper.Map <MyUserViewModel>(myUser);

            data.RoleName = role;
            return(new BaseViewModel <MyUserViewModel>
            {
                Data = data,
            });
        }
Beispiel #8
0
        private async Task <BaseViewModel <PagingResult <StoreViewModel> > > GetAll(GetStoreWithGPSRequestViewmovel request, string defaultCondition = null)
        {
            var pageSize  = request.PageSize;
            var pageIndex = request.PageIndex;
            var result    = new BaseViewModel <PagingResult <StoreViewModel> >();

            string filter = SearchHelper <Store> .GenerateStringExpression(request.Filter, defaultCondition);

            Expression <Func <Store, bool> > FilterExpression = await LinqHelper <Store> .StringToExpression(filter);

            var includeList = IncludeLinqHelper <Store> .StringToListInclude(request?.Include);

            QueryArgs <Store> queryArgs = new QueryArgs <Store>
            {
                Offset  = pageSize * (pageIndex - 1),
                Limit   = pageSize,
                Filter  = FilterExpression,
                Sort    = request.SortBy,
                Include = includeList
            };


            var data = _repository.Get(queryArgs.Filter, queryArgs.Sort, queryArgs.Offset, queryArgs.Limit, queryArgs.Include).ToList();

            //var sql = data.ToSql();

            if (data == null || data.Count == 0)
            {
                result.Description = MessageHandler.CustomMessage(MessageConstants.NO_RECORD);
                result.Code        = MessageConstants.NO_RECORD;
            }
            else
            {
                var pageSizeReturn = pageSize;
                if (data.Count < pageSize)
                {
                    pageSizeReturn = data.Count;
                }
                result.Data = new PagingResult <StoreViewModel>
                {
                    Results      = _mapper.Map <IEnumerable <StoreViewModel> >(data),
                    PageIndex    = pageIndex,
                    PageSize     = pageSizeReturn,
                    TotalRecords = _repository.Count(queryArgs.Filter)
                };
                foreach (var item in result.Data.Results)
                {
                    var listPromo = _promotionRepository.GetMany(_ => _.BrandId == item.BrandId && _.IsActive == true);
                    item.Promotions = _mapper.Map <ICollection <PromotionViewModel> >(listPromo);
                }
            }
            if (request.Longitude != null && request.Latitude != null)
            {
                foreach (var item in result?.Data?.Results)
                {
                    var sCoord = new GeoCoordinate(item.Latitude, item.Longitude);
                    var eCoord = new GeoCoordinate(request.Latitude.Value, request.Longitude.Value);

                    item.Distance = (sCoord.GetDistanceTo(eCoord) / 1000.0);
                }
            }

            return(result);
        }