public static CartMobileSearchCriteria ToSearchCriteria(this CartSearchCriteriaBindingModel model, int userId) { CartMobileSearchCriteria criteria = CreateSearchCriteria <CartMobileSearchCriteria>(model); criteria.UserId = userId; criteria.Title = model.Title; return(criteria); }
public IHttpActionResult FetchCard([FromUri] CartSearchCriteriaBindingModel model) { User user = GetCurrentUser(); CartMobileSearchCriteria cartMobileSearchCriteria = model.ToSearchCriteria(user.Id); QueryResult <CartObject> carts = CartMobileService.Obj.FindNew(cartMobileSearchCriteria); var result = new PagingBindingModel <CartIndexBindingModel>() { Items = carts.Items.Select(x => x.ToCartObjectIndexBindingModel()).ToList(), TotalCount = carts.TotalCount }; return(Ok(result)); }
public IHttpActionResult FetchCards([FromUri] CartSearchCriteriaBindingModel model) { User user = GetCurrentUser(); CartMobileSearchCriteria cartMobileSearchCriteria = model.ToSearchCriteria(user.Id); IQueryResult <Cart> carts = CartMobileService.Obj.Find(cartMobileSearchCriteria); var result = new PagingBindingModel <CartIndexBindingModel>() { Items = carts.Items.Select(x => x.ToCartIndexBindingModel()).ToList(), TotalCount = carts.TotalCount }; foreach (var cart in result.Items.ToList()) { cart.Items = ItemMobileService.Obj.GetItemsByCard(cart.Cart.CartId).Select(x => x.ToCartItemBindingModel(ItemMobileService.Obj.GetById(x.ItemId))).ToList(); cart.Users = CartOwnerMobileService.Obj.GetUsersByCart(cart.Cart.CartId).Select(x => x.ToUserProfileBindingModel(UserService.Obj.FindById(x.UserId), ImageService.Obj.FindByUserId(x.UserId))).ToList(); } return(Ok(result)); }
public IQueryResult <Cart> Find(CartMobileSearchCriteria criterias) { if (criterias == null) { throw new ArgumentNullException(nameof(criterias)); } List <CartOwner> carts = CartOwnerMobileService.Obj.GetCartsByUser(criterias.UserId); var cartIds = carts.Select(x => x.CartId).ToList(); IQueryConstraints <Cart> constraints = new QueryConstraints <Cart>() .PageAndSort(criterias, x => x.CartId) .AndAlso(x => cartIds.Contains(x.CartId)) .AndAlsoIf(x => x.Title.Contains(criterias.Title), !string.IsNullOrEmpty(criterias.Title)); IQueryResult <Cart> result = queryRepository.Find(constraints); Tracer.Log.EntitiesRetrieved(nameof(Cart), result.Items.Count(), result.TotalCount); return(result); }
public QueryResult <CartObject> FetchCards(CartMobileSearchCriteria criteria) { List <CartObjectDB> carts = new List <CartObjectDB>(); try { using (SqlConnection connect = new SqlConnection(ConfigurationManager.ConnectionStrings["CnnStr1"].ConnectionString)) { using (SqlCommand command = new SqlCommand()) { command.CommandText = @"SELECT c.CartId, c.Title, c.Notes, c.Date, c.Status, co.CartIndex, i.ItemId, i.Title as itemTitle, ci.Status as itemStatus,u.Id as userId, u.Name, u.Email,u.Mobile,u.EmailConfirmed, co.AccessLevel, img.ImageId FROM Carts as c INNER JOIN CartOwners AS co ON c.CartId = co.CartId LEFT JOIN CartItems AS ci ON ci.CartId = c.CartId LEFT JOIN Items AS i ON i.ItemId = ci.ItemId LEFT JOIN Users AS u ON u.Id = co.UserId LEFT JOIN Images AS img ON img.UserId = u.Id Where c.CartId IN ( SELECT cc.CartId FROM Carts AS cc INNER JOIN CartOwners AS co ON cc.CartId = co.CartId WHERE co.UserId = @UserId AND (@Title is null or cc.Title LIKE '%'+@Title+'%') ORDER BY co.CartIndex DESC OFFSET @PageSize * (@PageNumber - 1) ROWS FETCH NEXT @PageSize ROWS ONLY ) ORDER BY co.CartIndex DESC"; command.Connection = connect; command.Parameters.Add("Title", SqlDbType.VarChar).Value = (object)criteria.Title ?? DBNull.Value; command.Parameters.Add("UserId", SqlDbType.Int).Value = criteria.UserId; command.Parameters.Add("PageSize", SqlDbType.Int).Value = criteria.PageSize; command.Parameters.Add("PageNumber", SqlDbType.Int).Value = criteria.PageNumber; connect.Open(); using (SqlDataReader dr = command.ExecuteReader()) { while (dr.Read()) { CartObjectDB cart = new CartObjectDB(); cart.CartId = (int)dr["CartId"]; cart.Title = dr["Title"].ToString(); cart.Notes = dr["Notes"].ToString(); cart.CartStatus = (int)dr["Status"]; cart.Date = dr["Date"] == DBNull.Value ? null : (DateTime?)dr["Date"]; cart.CartIndex = (double)dr["CartIndex"]; cart.ItemId = dr["ItemId"] == DBNull.Value ? null : (int?)dr["ItemId"]; cart.ItemTitle = dr["itemTitle"] == DBNull.Value ? null : dr["itemTitle"].ToString(); cart.ItemStatus = dr["itemStatus"] == DBNull.Value ? null : (int?)dr["itemStatus"]; cart.UserId = (int)dr["userId"]; cart.Name = dr["Name"] == DBNull.Value ? null : dr["Name"].ToString(); cart.Email = dr["Email"].ToString(); cart.Mobile = dr["Mobile"] == DBNull.Value ? null : dr["Mobile"].ToString(); cart.IsConfirmed = (bool)dr["EmailConfirmed"]; cart.AccessLevel = (int)dr["AccessLevel"]; cart.PhotoId = dr["ImageId"] == DBNull.Value ? null : (int?)dr["ImageId"]; carts.Add(cart); } } } } var returnedCarts = carts.Where(x => x.CartStatus == (int)CartStatus.NotArchived).GroupBy(x => x.CartId).Select(cart => new CartObject { CartId = cart.FirstOrDefault().CartId, Title = cart.FirstOrDefault().Title, CartIndex = cart.FirstOrDefault().CartIndex, Date = cart.FirstOrDefault().Date, Notes = cart.FirstOrDefault().Notes, Users = cart.GroupBy(y => y.UserId).Select(user => new UserObject { UserId = user.FirstOrDefault().UserId, Name = user.FirstOrDefault().Name, Email = user.FirstOrDefault().Email, IsConfirmed = user.FirstOrDefault().IsConfirmed, AccessLevel = (AccessLevel)user.FirstOrDefault().AccessLevel, Mobile = user.FirstOrDefault().Mobile, PhotoId = user.FirstOrDefault().PhotoId }).ToList(), Items = cart.GroupBy(y => y.UserId).Select(user => user.Select(item => new CartItemObject { ItemId = item?.ItemId, Title = item?.ItemTitle, Status = (ItemStatus?)item.ItemStatus })).FirstOrDefault().ToList() }).ToList(); int totalCount = CalculateTotalCount(criteria.UserId); return(new QueryResult <CartObject>(returnedCarts, totalCount)); } catch (Exception ex) { return(null); } }
public QueryResult <CartObject> FindNew(CartMobileSearchCriteria criterias) { return(cartRepository.FetchCards(criterias)); }