Exemplo n.º 1
0
        public HttpResponseMessage UpdateCart(int userId, int productId, int quantity)
        {
            var httpResponse = new HttpResponseMessage();

            try
            {
                using (var userCartEntity = new RepositoryDataAccessLayer <UserCartEntity>())
                {
                    var userCart = userCartEntity
                                   .FindBy(a => a.UserId == userId && a.ProductId == productId && !a.IsDeleted).FirstOrDefault();
                    if (userCart == null)
                    {
                        return(httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                                     new Status {
                            IsSuccess = false, Message = "Product is not found."
                        }));
                    }

                    userCart.TotalQuantity = quantity;
                    userCartEntity.Update(userCart);
                    return(httpResponse = Request.CreateResponse(HttpStatusCode.OK, new Status {
                        IsSuccess = true
                    }));
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                      new Status {
                    IsSuccess = false, Message = ex.Message
                });
            }

            return(httpResponse);
        }
Exemplo n.º 2
0
        public HttpResponseMessage RemoveCartItem(int userId, int productId)
        {
            var httpResponse = new HttpResponseMessage();

            try
            {
                using (var userCartEntity = new RepositoryDataAccessLayer <UserCartEntity>())
                {
                    var userCart = userCartEntity
                                   .FindBy(a => a.UserId == userId && a.ProductId == productId && !a.IsDeleted).FirstOrDefault();
                    if (userCart != null)
                    {
                        userCart.IsDeleted = true;
                        userCartEntity.Update(userCart);
                        return(httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                                     new Status {
                            IsSuccess = true, Message = "Cart item successfully deleted."
                        }));
                    }

                    return(httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                                 new Status {
                        IsSuccess = false, Message = "Cart item is not deleted."
                    }));
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.OK, new { IsSuccess = false, ex.Message });
            }

            return(httpResponse);
        }
Exemplo n.º 3
0
        public HttpResponseMessage GetRecentProducts(int userId)
        {
            var httpResponse = new HttpResponseMessage();

            try
            {
                using (var recentProductEntity = new RepositoryDataAccessLayer <RecentEntity>())
                {
                    var recentProducts = recentProductEntity.FindBy(a => a.UserId == userId).Include(b => b.Product)
                                         .Select(s => s.Product);
                    var products = recentProducts.Where(a => !a.IsDeleted).Include(s => s.PreviewImages).ToList();
                    if (recentProducts != null && products.Count > 0)
                    {
                        return(httpResponse = Request.CreateResponse(HttpStatusCode.OK, products));
                    }
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                      new Status {
                    IsSuccess = false, Message = ex.Message
                });
            }

            return(httpResponse);
        }
        public HttpResponseMessage GetSubCategories(int categoryId)
        {
            var httpResponse = new HttpResponseMessage();

            try
            {
                using (var subCategoryEntity = new RepositoryDataAccessLayer <SubCategoryEntity>())
                {
                    var subCategories = subCategoryEntity.FindBy(a => a.CategoryId == categoryId).ToList();

                    if (subCategories != null && subCategories.Count > 0)
                    {
                        var categories = new List <Category>();
                        foreach (var subCategory in subCategories)
                        {
                            categories.Add(new Category
                            {
                                ID = subCategory.ID, Name = subCategory.Name, Icon = subCategory.Icon
                            });
                        }
                        return(httpResponse = Request.CreateResponse(HttpStatusCode.OK, categories));
                    }
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                      new Status {
                    IsSuccess = false, Message = ex.Message
                });
            }

            return(httpResponse);
        }
Exemplo n.º 5
0
        public HttpResponseMessage AddRecentProduct(int userId, int productId)
        {
            var httpResponse = new HttpResponseMessage();

            try
            {
                using (var recentEntity = new RepositoryDataAccessLayer <RecentEntity>())
                {
                    var isItemAlreadyExists =
                        recentEntity.FindBy(a => a.UserId == userId && a.ProductId == productId).Any();
                    if (!isItemAlreadyExists)
                    {
                        var recent = new RecentEntity
                        {
                            UserId     = userId,
                            ProductId  = productId,
                            ViewedDate = DateTime.Now
                        };
                        recentEntity.Add(recent);
                        return(httpResponse = Request.CreateResponse(HttpStatusCode.OK, new Status {
                            IsSuccess = true
                        }));
                    }
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                      new Status {
                    IsSuccess = false, Message = ex.Message
                });
            }

            return(httpResponse);
        }
Exemplo n.º 6
0
        public HttpResponseMessage GetBanners()
        {
            var httpResponse = new HttpResponseMessage();

            try
            {
                using (var bannerEntity = new RepositoryDataAccessLayer <BannerEntity>())
                {
                    var banners = bannerEntity.FindBy(a => !a.IsDeleted).ToList();
                    if (banners != null && banners.Count > 0)
                    {
                        return(httpResponse = Request.CreateResponse(HttpStatusCode.OK, banners));
                    }
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                      new Status {
                    IsSuccess = false, Message = ex.Message
                });
            }

            return(httpResponse);
        }
Exemplo n.º 7
0
        public HttpResponseMessage GetProductById(int productId)
        {
            var httpResponse = new HttpResponseMessage();

            try
            {
                using (var productEntity = new RepositoryDataAccessLayer <ProductEntity>())
                {
                    var product = productEntity.FindBy(a => a.ID == productId && !a.IsDeleted).Include(s => s.Reviews)
                                  .Include(w => w.Reviews.Select(q => q.ReviewImages)).Include(d => d.PreviewImages)
                                  .Include(a => a.User.UserWishlists).FirstOrDefault();
                    product.Reviews.Where(s => !s.IsDeleted);

                    if (product != null)
                    {
                        return(httpResponse = Request.CreateResponse(HttpStatusCode.OK, product));
                    }
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.OK, new { IsSuccess = false, ex.Message });
            }

            return(httpResponse);
        }
        public HttpResponseMessage GetUserAddress(int?userId)
        {
            var httpResponse = new HttpResponseMessage();

            try
            {
                using (var addressEntity = new RepositoryDataAccessLayer <AddressEntity>())
                {
                    var address = addressEntity
                                  .FindBy(a =>
                                          userId == null && !a.IsDeleted || userId != null && a.UserId == userId && !a.IsDeleted)
                                  .Include(s => s.User).ToList();
                    if (address != null)
                    {
                        return(httpResponse = Request.CreateResponse(HttpStatusCode.OK, address));
                    }
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                      new Status {
                    IsSuccess = false, Message = ex.Message
                });
            }

            return(httpResponse);
        }
        public HttpResponseMessage GetUserCard(int userId)
        {
            var httpResponse = new HttpResponseMessage();

            try
            {
                using (var userCardEntity = new RepositoryDataAccessLayer <UserCardEntity>())
                {
                    var userCards = userCardEntity.FindBy(a => a.UserId == userId && !a.IsDeleted || a.UserId == null)
                                    .ToList();
                    if (userCards != null && userCards.Count > 0)
                    {
                        return(httpResponse = Request.CreateResponse(HttpStatusCode.OK, userCards));
                    }
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                      new Status {
                    IsSuccess = false, Message = ex.Message
                });
            }

            return(httpResponse);
        }
Exemplo n.º 10
0
        public HttpResponseMessage GetOfferProducts()
        {
            var httpResponse = new HttpResponseMessage();

            try
            {
                using (var productEntity = new RepositoryDataAccessLayer <ProductEntity>())
                {
                    var offerProducts = productEntity.FindBy(a => a.DiscountPercent > 0 && !a.IsDeleted)
                                        .Include(a => a.PreviewImages).ToList();
                    if (offerProducts != null && offerProducts.Count > 0)
                    {
                        return(httpResponse = Request.CreateResponse(HttpStatusCode.OK, offerProducts));
                    }
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                      new Status {
                    IsSuccess = false, Message = ex.Message
                });
            }

            return(httpResponse);
        }
        public HttpResponseMessage GetCategories()
        {
            var response = new HttpResponseMessage();

            try
            {
                using (var categoryEntity = new RepositoryDataAccessLayer <CategoryEntity>())
                {
                    var categories = categoryEntity.GetAll().ToList();

                    if (categories != null)
                    {
                        return(response = Request.CreateResponse(HttpStatusCode.OK, categories));
                    }
                }
            }
            catch (Exception ex)
            {
                response = Request.CreateResponse(HttpStatusCode.OK,
                                                  new Status {
                    IsSuccess = false, Message = ex.Message
                });
            }

            return(response);
        }
Exemplo n.º 12
0
        public HttpResponseMessage SignUp(User user)
        {
            var httpResponse = new HttpResponseMessage();

            try
            {
                using (var userEntity = new RepositoryDataAccessLayer <UserEntity>())
                {
                    var isEmailAlreadyRegistered = userEntity.FindBy(a =>
                                                                     a.EmailId.Trim().ToLower() == user.EmailId.Trim().ToLower() && !a.IsDeleted).Any();
                    if (isEmailAlreadyRegistered)
                    {
                        return(httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                                     new Status {
                            IsSuccess = false, Message = "This email is already registered."
                        }));
                    }

                    if (user != null)
                    {
                        var newEntity = new UserEntity
                        {
                            Name    = user.Name,
                            EmailId = user.EmailId,
                            Salt    = GenerateSalt(8)
                        };
                        if (!string.IsNullOrEmpty(newEntity.Salt))
                        {
                            newEntity.Password = EncryptPassword(user.Password, newEntity.Salt);
                        }
                        newEntity.IsDeleted   = false;
                        newEntity.CreatedDate = DateTime.Now;
                        newEntity.UpdatedDate = DateTime.Now;
                        userEntity.Add(newEntity);
                        httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                              new Status {
                            IsSuccess = true, Message = "Signed up successfully"
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                      new Status {
                    IsSuccess = false, Message = ex.Message
                });
            }

            return(httpResponse);
        }
Exemplo n.º 13
0
        public HttpResponseMessage ForgotPassword(string emailId)
        {
            var httpResponse = new HttpResponseMessage();

            try
            {
                using (var userEntity = new RepositoryDataAccessLayer <UserEntity>())
                {
                    var user = userEntity
                               .FindBy(a => a.EmailId.Trim().ToLower() == emailId.Trim().ToLower() && !a.IsDeleted)
                               .FirstOrDefault();

                    if (user == null)
                    {
                        return(httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                                     new Status {
                            IsSuccess = false, Message = "Invalid email id."
                        }));
                    }

                    user.ForgotPassword = EncryptPassword(GetTempPassword(), user.Salt);
                    user.UpdatedDate    = DateTime.Now;
                    userEntity.Update(user);

                    var email = new EmailSender
                    {
                        RecipientName = $"{user.Name}",
                        To            = user.EmailId
                    };
                    var newPassword = DecryptPassword(user.ForgotPassword, user.Salt);
                    email.SendForgotPasswordAsync(newPassword);

                    return(httpResponse = Request.CreateResponse(HttpStatusCode.OK, new Status {
                        IsSuccess = true
                    }));
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                      new Status {
                    IsSuccess = false, Message = ex.Message
                });
            }

            return(httpResponse);
        }
Exemplo n.º 14
0
        public HttpResponseMessage GetReviews(int productId)
        {
            var httpResponse = new HttpResponseMessage();

            try
            {
                using (var reviewEntity = new RepositoryDataAccessLayer <ReviewEntity>())
                {
                    var reviews = reviewEntity.FindBy(a => a.ProductId == productId && !a.IsDeleted)
                                  .Include(a => a.ReviewImages).ToList();
                    return(httpResponse = Request.CreateResponse(HttpStatusCode.OK, reviews));
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.OK, new { IsSuccess = false, ex.Message });
            }

            return(httpResponse);
        }
Exemplo n.º 15
0
        public HttpResponseMessage AddOrUpdateUserWishlist(int userId, int productId, bool isFavorite)
        {
            var httpResponse = new HttpResponseMessage();

            try
            {
                using (var userWishlistEntity = new RepositoryDataAccessLayer <UserWishlistEntity>())
                {
                    var userWishlist = userWishlistEntity.FindBy(a => a.UserId == userId && a.ProductId == productId)
                                       .FirstOrDefault();
                    if (userWishlist != null)
                    {
                        userWishlist.IsFavorite = isFavorite;
                        userWishlistEntity.Update(userWishlist);
                        return(httpResponse = Request.CreateResponse(HttpStatusCode.OK, new Status {
                            IsSuccess = true
                        }));
                    }

                    var newProduct = new UserWishlistEntity
                    {
                        UserId     = userId,
                        ProductId  = productId,
                        IsFavorite = true
                    };
                    userWishlistEntity.Add(newProduct);
                    return(httpResponse = Request.CreateResponse(HttpStatusCode.OK, new Status {
                        IsSuccess = true
                    }));
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                      new Status {
                    IsSuccess = false, Message = ex.Message
                });
            }

            return(httpResponse);
        }
Exemplo n.º 16
0
        public HttpResponseMessage GetOrderedItems(int userId)
        {
            HttpResponseMessage httpResponse = null;
            var status = new Status();

            try
            {
                using (var myOrderEntity = new RepositoryDataAccessLayer <MyOrderEntity>())
                {
                    var userCart = myOrderEntity.FindBy(a => a.UserId == userId && !a.IsDeleted)
                                   .Include(s => s.Product).Include(q => q.Product.PreviewImages).ToList();
                    userCart.Where(s => !s.Product.IsDeleted).ToList();
                    return(httpResponse = Request.CreateResponse(HttpStatusCode.OK, userCart));
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.OK, new { IsSuccess = false, ex.Message });
            }

            return(httpResponse);
        }
Exemplo n.º 17
0
        public HttpResponseMessage GetPayments()
        {
            var httpResponse = new HttpResponseMessage();

            try
            {
                using (var paymentEntity = new RepositoryDataAccessLayer <PaymentEntity>())
                {
                    var paymentOptions = paymentEntity.GetAll().ToList();
                    if (paymentOptions != null && paymentOptions.Count > 0)
                    {
                        return(httpResponse = Request.CreateResponse(HttpStatusCode.OK, paymentOptions));
                    }
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.OK, new { IsSuccess = false, ex.Message });
            }

            return(httpResponse);
        }
Exemplo n.º 18
0
        public HttpResponseMessage AddOrderedItem(int userId, int productId)
        {
            HttpResponseMessage response = null;

            try
            {
                using (var userCartEntity = new RepositoryDataAccessLayer <MyOrderEntity>())
                {
                    var isProductAlreadyAdded = userCartEntity
                                                .FindBy(a => a.UserId == userId && a.ProductId == productId && !a.IsDeleted).Any();
                    if (!isProductAlreadyAdded)
                    {
                        var userCart = new MyOrderEntity()
                        {
                            UserId        = userId,
                            TotalQuantity = 1,
                            AddedDateTime = DateTime.Now,
                            IsDeleted     = false,
                            ProductId     = productId
                        };
                        userCartEntity.Add(userCart);
                        return(response = Request.CreateResponse(HttpStatusCode.OK,
                                                                 new Status {
                            IsSuccess = true, Message = "Item added to cart successfully."
                        }));
                    }
                }
            }
            catch (Exception ex)
            {
                response = Request.CreateResponse(HttpStatusCode.OK,
                                                  new Status {
                    IsSuccess = false, Message = ex.Message
                });
            }

            return(response);
        }
Exemplo n.º 19
0
        public HttpResponseMessage GetProductByCategoryId(int subCategoryId)
        {
            var httpResponse = new HttpResponseMessage();

            try
            {
                using (var productEntity = new RepositoryDataAccessLayer <ProductEntity>())
                {
                    var products = productEntity.FindBy(a => a.SubCategoryId == subCategoryId && !a.IsDeleted)
                                   .Include(a => a.User.UserWishlists).Include(a => a.PreviewImages).ToList();
                    if (products != null)
                    {
                        return(httpResponse = Request.CreateResponse(HttpStatusCode.OK, products));
                    }
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.OK, new { IsSuccess = false, ex.Message });
            }

            return(httpResponse);
        }
Exemplo n.º 20
0
        public HttpResponseMessage RemoveCartItems(int userId)
        {
            var httpResponse = new HttpResponseMessage();

            try
            {
                using (var userCartEntity = new RepositoryDataAccessLayer <UserCartEntity>())
                {
                    var userCart = userCartEntity.FindBy(a => a.UserId == userId && !a.IsDeleted).ToList();
                    if (userCart != null && userCart.Any())
                    {
                        foreach (var item in userCart)
                        {
                            item.IsDeleted = true;
                            userCartEntity.Update(item);
                        }

                        return(httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                                     new Status {
                            IsSuccess = true, Message = "Cart item successfully deleted."
                        }));
                    }

                    return(httpResponse = Request.CreateResponse(HttpStatusCode.OK,
                                                                 new Status {
                        IsSuccess = false, Message = "Cart item is not deleted."
                    }));
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.OK, new { IsSuccess = false, ex.Message });
            }

            return(httpResponse);
        }
Exemplo n.º 21
0
        public HttpResponseMessage Login(string email, string password)
        {
            var response = new HttpResponseMessage();

            try
            {
                if (!string.IsNullOrEmpty(email) && !string.IsNullOrEmpty(password))
                {
                    using (var userEntity = new RepositoryDataAccessLayer <UserEntity>())
                    {
                        var currentUser = userEntity
                                          .FindBy(a => a.EmailId.Trim().ToLower() == email.Trim().ToLower() && !a.IsDeleted)
                                          .FirstOrDefault();

                        if (currentUser == null)
                        {
                            return(response = Request.CreateResponse(HttpStatusCode.OK,
                                                                     new { IsSuccess = false, Message = "Invalid email id" }));
                        }

                        var isValidUser = false;

                        if (!string.IsNullOrEmpty(currentUser.ForgotPassword))
                        {
                            isValidUser = CheckValidUser(password, currentUser.Salt, currentUser.ForgotPassword);
                            if (isValidUser)
                            {
                                currentUser.Password       = currentUser.ForgotPassword;
                                currentUser.ForgotPassword = null;
                                userEntity.Update(currentUser);
                            }
                        }
                        else
                        {
                            isValidUser = CheckValidUser(password, currentUser.Salt, currentUser.Password);
                        }

                        if (isValidUser)
                        {
                            response = Request.CreateResponse(HttpStatusCode.OK,
                                                              new Status
                            {
                                IsSuccess = true, Message = currentUser.ID.ToString(), UserName = currentUser.Name
                            });
                        }
                        else
                        {
                            response = Request.CreateResponse(HttpStatusCode.OK,
                                                              new Status {
                                IsSuccess = false, Message = "Password is not valid"
                            });
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                return(response = Request.CreateResponse(HttpStatusCode.OK,
                                                         new Status {
                    IsSuccess = false, Message = ex.Message
                }));
            }

            return(response);
        }