コード例 #1
0
        public static void AddProductToFavorite(int ProductShopID, Guid UserID = new Guid())
        {
            if (UserID == Guid.Empty && LS.isHaveID())
            {
                UserID = LS.CurrentUser.ID;
            }
            if (UserID == Guid.Empty)
            {
                return;
            }
            var fav = LS.CurrentEntityContext.ProductFavorites.FirstOrDefault(x => x.ProductShopID == ProductShopID &&
                                                                              x.UserID == UserID);

            if (fav == null)
            {
                UserActivityService.InsertFavoriteProduct(UserID, ProductShopID, false
                                                          , HttpContext.Current.Request.RawUrl,
                                                          HttpContext.Current.Request.UrlReferrer != null ? HttpContext.Current.Request.UrlReferrer.OriginalString : null
                                                          , LS.GetUser_IP(HttpContext.Current.Request));

                fav = new ProductFavorite()
                {
                    CreateDate    = DateTime.Now,
                    ProductShopID = ProductShopID,
                    UserID        = UserID
                };
                LS.CurrentEntityContext.ProductFavorites.Add(fav);
                LS.CurrentEntityContext.SaveChanges();
            }
        }
コード例 #2
0
        public async Task <ActionResult <Favorite> > PostFavorite(ProductFavorite productFavorite)
        {
            String username = User.Identity.Name;
            //CHECK EXIST
            var currentFavorite = await _context.Favorite.Include(f => f.Product).Where(f => f.Username.Equals(username) && f.ProductId == productFavorite.productID).FirstOrDefaultAsync();

            if (currentFavorite == null)
            {
                Favorite temp = new Favorite();
                temp.ProductId  = productFavorite.productID;
                temp.Username   = username;
                temp.Isfavorite = true;
                //  temp.Product = await _context.Product.FirstOrDefaultAsync(p => p.Id == productFavorite.productID);

                _context.Favorite.Add(temp);
                await _context.SaveChangesAsync();

                return(CreatedAtAction("GetFavorite", new { id = temp.Id }, temp));
            }
            else
            {
                currentFavorite.Isfavorite = !currentFavorite.Isfavorite;
                _context.Favorite.Update(currentFavorite);
                await _context.SaveChangesAsync();

                return(Ok(currentFavorite));
            }
        }
コード例 #3
0
ファイル: Like.cs プロジェクト: Evelinius/aspnet_react_market
            public async Task <ProductEnvelope> Handle(Command request, CancellationToken cancellationToken)
            {
                var product = await _context.Products.FirstOrDefaultAsync(x => x.ProductId == request.ProductId, cancellationToken);

                if (product == null)
                {
                    throw new RestException(HttpStatusCode.NotFound, new { Article = Constants.NOT_FOUND });
                }

                var person = await _context.Persons.FirstOrDefaultAsync(x => x.Username == _currentUserAccessor.GetCurrentUsername(), cancellationToken);

                var favorite = await _context.ProductFavorite
                               .FirstOrDefaultAsync(x => x.ProductId == product.ProductId && x.PersonId == person.PersonId, cancellationToken);

                if (favorite == null)
                {
                    favorite = new ProductFavorite()
                    {
                        Product   = product,
                        ProductId = product.ProductId,
                        Person    = person,
                        PersonId  = person.PersonId
                    };
                    await _context.ProductFavorite.AddAsync(favorite, cancellationToken);

                    await _context.SaveChangesAsync(cancellationToken);
                }

                return(new ProductEnvelope(await _context.Products.GetAllData()
                                           .FirstOrDefaultAsync(x => x.ProductId == product.ProductId, cancellationToken)));
            }
コード例 #4
0
 public bool AddMyFavoriteProducts(ProductFavorite entity)
 {
     using (var context = new eMarketContext())
     {
         context.Add(entity);
         context.SaveChanges();
         return(true);
     }
 }
コード例 #5
0
        public bool AddMyFavoriteProducts(ProductFavorite entity)
        {
            if (entity != null)
            {
                _accountRepository.AddMyFavoriteProducts(entity);
                return(true);
            }

            return(false);
        }
コード例 #6
0
        public async Task <CreateProductFavorResult> CreateAsync(ProductFavorite productFavor, int userId)
        {
            var createdByCustomer = await _context.Customers.SingleOrDefaultAsync(c => c.UserId == userId);

            var newProduct = await _context.ProductTiers.SingleOrDefaultAsync(p => p.Id == productFavor.ProductTierId);

            var currentProduct = await _context.ProductFavorites
                                 .SingleOrDefaultAsync(p => p.ProductTierId == productFavor.ProductTierId && p.CustomerId == createdByCustomer.Id);

            if (currentProduct != null)
            {
                return(new CreateProductFavorResult
                {
                    IsSuccess = false,
                    Errors = new[] { "Sản phẩm đã tồn tại trong danh sách yêu thích của bạn" }
                });
            }

            if (newProduct == null)
            {
                return(new CreateProductFavorResult
                {
                    IsSuccess = false,
                    Errors = new[] { "Sản phẩm này không tồn tại" }
                });
            }

            productFavor.CustomerId = createdByCustomer.Id;

            await _context.ProductFavorites.AddAsync(productFavor);

            var created = await _context.SaveChangesAsync();

            var createdProductFavor = await GetByIdAsync(productFavor.Id);

            return(new CreateProductFavorResult
            {
                IsSuccess = true,
                ProductFavorite = createdProductFavor
            });
        }
コード例 #7
0
        public IActionResult AddFavoriteProducts(int id, string returnUrl)
        {
            if (HttpContext.Session.GetString("ID") != null)
            {
                if (id != null)
                {
                    var entity = new ProductFavorite()
                    {
                        userId    = Convert.ToInt32(HttpContext.Session.GetString("ID")),
                        productId = id
                    };
                    var users_id = Convert.ToInt32(HttpContext.Session.GetString("ID"));
                    var data     = _accountService.GetAllFavoriteProducts(users_id);
                    foreach (var itemFavorite in data)
                    {
                        if (itemFavorite.productId == entity.productId)
                        {
                            ViewBag.DuplicateDataMessage = "Bu ürünü daha önce sepetinize eklemişsiniz. :( ";
                        }
                    }

                    return(Redirect(returnUrl));

                    if (_accountService.AddMyFavoriteProducts(entity))
                    {
                        ViewBag.AddFavoriteProductsMessage =
                            "Ürün favorilerinize eklenmiştir. :)";
                        return(Redirect(returnUrl));
                    }
                }
            }
            else
            {
                RedirectToAction("Login", "Account");
            }

            return(Redirect(returnUrl));
        }