Пример #1
0
 public ActionResult PostTblProducts(TblProducts tblProducts)
 {
     tblProducts.AddedDate = DateTime.Now;
     tblProducts.Modified  = DateTime.Now;
     _repository.AddProduct(tblProducts);
     return(CreatedAtAction("GetTblProducts", new { id = tblProducts.ProductId }, tblProducts));
 }
Пример #2
0
        public async Task <int> Create(TblProducts product)
        {
            await _dbContext.Tbl_Products.AddAsync(product);

            await _dbContext.SaveChangesAsync();

            return(product.ProductId);
        }
Пример #3
0
        public ActionResult AddProduct(TblProducts tblProducts)
        {
            var ctg = db.TblCategories.Where(m => m.CategoryID == tblProducts.TblCategories.CategoryID).FirstOrDefault();

            tblProducts.TblCategories = ctg;

            db.TblProducts.Add(tblProducts);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #4
0
 public IActionResult PutTblProducts(int id, TblProducts tblProducts)
 {
     if (id != tblProducts.ProductId)
     {
         return(BadRequest());
     }
     tblProducts.Modified = DateTime.Now;
     _repository.UpdatProduct(tblProducts);
     return(NoContent());
 }
 //Metodos
 public int Add(TblProducts entity)
 {
     parameters = new List <SqlParameter>
     {
         new SqlParameter("@prod_Cod", entity.ProdCod),
         new SqlParameter("@prod_Name", entity.ProdName),
         new SqlParameter("@prod_Pr_may", entity.ProdPrMay),
         new SqlParameter("@prod_Pr_men", entity.ProdPrMen),
         new SqlParameter("@prod_Stock", entity.ProdStock)
     };
     return(ExecuteNonQuery(insert_update));
 }
Пример #6
0
        public async Task <IActionResult> Create(TblProducts products)
        {
            if (ModelState.IsValid)
            {
                await _product.Create(products);

                return(Ok());
            }
            else
            {
                return(BadRequest());
            }
        }
Пример #7
0
 // creates query parameters list from TblProducts object
 object[] TakeProduct(TblProducts pro)
 {
     return(new object[]
     {
         "@ProductName", pro.ProductName,
         "@Brand", pro.Brand,
         "@Description", pro.Description,
         "@LaunchDate", pro.LaunchDate,
         "@Price", pro.Price,
         "@Image", pro.Image,
         "@Quantity", pro.Quantity
     });
 }
Пример #8
0
 public void UpdatProduct(TblProducts product)
 {
     using (var context = new DRYFRUITSSERVICESMDFContext())
     {
         var updateproduct = context.TblProducts.Find(product.ProductId);
         updateproduct.Quantity    = product.Quantity;
         updateproduct.Description = product.Description;
         updateproduct.Price       = product.Price;
         updateproduct.Modified    = DateTime.Now;
         context.Update(updateproduct);
         context.SaveChanges();
     }
 }
Пример #9
0
        public async Task <int> PutEditProduct(TblProducts product)
        {
            var getProduct = await _dbContext.Tbl_Products.FirstOrDefaultAsync(p => p.ProductId == product.ProductId);

            if (product.ProductImage == null)
            {
                product.ProductImage = getProduct.ProductImage;
            }

            _dbContext.Entry(getProduct).CurrentValues.SetValues(product);
            await _dbContext.SaveChangesAsync();

            return(product.ProductId);
        }
Пример #10
0
 public void AddProduct(TblProducts product)
 {
     try
     {
         using (var context = new DRYFRUITSSERVICESMDFContext())
         {
             context.TblProducts.Add(product);
             context.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #11
0
        public bool UpdateProduct(TblProducts Product)
        {
            string StoreProc = "spUpdateProduct";

            object[] parms =
            {
                "@ProductID",   Product.ProductID,
                "@ProductName", Product.ProductName,
                "@Brand",       Product.Brand,
                "@Description", Product.Description,
                "@LaunchDate",  Product.LaunchDate,
                "@Price",       Product.Price,
                "@Image",       Product.Image,
                "@Quantity",    Product.Quantity
            };
            return(db.Update(StoreProc, parms) > 0);
        }
        public int Edit(TblProducts tbl_pro_obj, List <IFormFile> pImage)
        {
            string wwwPath     = this.Environment.WebRootPath;
            string contentPath = this.Environment.ContentRootPath;

            string path = Path.Combine(this.Environment.WebRootPath, "Uploads");

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            List <string> uploadedFiles = new List <string>();

            foreach (IFormFile postedFile in pImage)
            {
                string fileName = Path.GetFileName(postedFile.FileName);
                if ((postedFile != null) && (Path.GetExtension(postedFile.FileName) == ".jpg") || (Path.GetExtension(postedFile.FileName) == ".png") || (Path.GetExtension(postedFile.FileName) == ".jpeg"))
                {
                    string tme = DateTime.Now.ToString();
                    string qq  = tme.Replace(":", "-");
                    string qq1 = qq.Replace("/", "-");
                    string wq  = qq1 + Guid.NewGuid() + fileName;
                    tbl_pro_obj.PImage = wq;
                    using (FileStream stream = new FileStream(Path.Combine(path, wq), FileMode.Create))
                    {
                        postedFile.CopyTo(stream);
                        uploadedFiles.Add(fileName);
                        ViewBag.Message += string.Format("<b>{0}</b> uploaded.<br />", fileName);
                    }
                    return(obj_Product.Product_Update(tbl_pro_obj));
                }
                else
                {
                    // tbl_pro_obj.PImage = Path.GetExtension(postedFile.FileName);
                    return(0);
                }
            }

            return(0);
        }
Пример #13
0
        public virtual async Task <ProductModel> PrepareProductModelAsync(TblProducts product)
        {
            ProductModel result;

            if (product == null)
            {
                result = new ProductModel();
            }
            else
            {
                result = product.Adapt <ProductModel>();
                await product.LoadAllLocalizedStringsToModelAsync(result);

                var tags = await product.Tags.Select(p => p.Tag).OrderBy(p => p).ToListAsync();

                result.ProductTags = tags?.ToArray() ?? new string[] { };

                var categories = await product.Categories.OrderBy(p => p.CategoryName).Select(p => p.Id).ToListAsync();

                result.ProductCategories = categories.ToArray();
            }

            return(result);
        }
Пример #14
0
 public bool UpdateProduct(TblProducts Product)
 {
     return(tblProductsDAO.UpdateProduct(Product));
 }
Пример #15
0
 public bool AddProduct(TblProducts Product)
 {
     return(tblProductsDAO.AddProduct(Product));
 }
Пример #16
0
 public virtual async Task <string> GenerateLicenseForProductAsync(TblInvoices invoice, TblUsers user,
                                                                   TblProducts product, int quantity)
 {
     return("Test product license for : " + product.GetLocalized(p => p.Title));
 }
Пример #17
0
        public async Task <IActionResult> Edit(TblProducts inputProduct)
        {
            var product = await _product.PutEditProduct(inputProduct);

            return(Ok());
        }
Пример #18
0
        protected virtual string GenerateUserGroupDiscountsDescription(TblProducts product, TblUsers user)
        {
            string result = "";

            var fromGroup = user?.UserGroupId != null ? user.UserGroup.GroupPriority : int.MinValue;
            var discounts = _productDiscountsForUserGroupsService.FindProductDiscounts(product.Id);

            foreach (var discount in discounts.Where(p => p.UserGroup.GroupPriority >= fromGroup))
            {
                var price     = product.Price - (discount.DiscountPercent * product.Price) / 100;
                var groupName = discount.UserGroup.GetLocalized(p => p.GroupName);

                if (price <= 0)
                {
                    //Free
                    if (discount.ApplyDiscountToHigherUserGroups)
                    {
                        result += string.Format(
                            _localizationService.GetResource("FreeForUserGroupsOrHigher"),
                            groupName,
                            discount.UserGroup.Id,
                            discount.UserGroup.GroupPriority,
                            product.Id,
                            product.Slug) + "<br/>";
                    }
                    else
                    {
                        result += string.Format(
                            _localizationService.GetResource("FreeForUserGroups"),
                            groupName,
                            discount.UserGroup.Id,
                            discount.UserGroup.GroupPriority,
                            product.Id,
                            product.Slug) + "<br/>";
                    }
                }
                else
                {
                    if (discount.ApplyDiscountToHigherUserGroups)
                    {
                        result += string.Format(
                            _localizationService.GetResource("DiscountForUserGroupsOrHigher"),
                            discount.DiscountPercent,
                            groupName,
                            price.ExchangeCurrencyStr(),
                            discount.UserGroup.Id,
                            discount.UserGroup.GroupPriority,
                            product.Id,
                            product.Slug) + "<br/>";
                    }
                    else
                    {
                        result += string.Format(
                            _localizationService.GetResource("DiscountForUserGroups"),
                            discount.DiscountPercent,
                            groupName,
                            price.ExchangeCurrencyStr(),
                            discount.UserGroup.Id,
                            discount.UserGroup.GroupPriority,
                            product.Id,
                            product.Slug) + "<br/>";
                    }
                }
            }

            return(result);
        }
Пример #19
0
        public virtual ProductModel PrepareProductModel(TblProducts product, TblUsers currentUser, UrlHelper url)
        {
            var result = product.Adapt <TblProducts, ProductModel>();

            result.Title           = product.GetLocalized(p => p.Title);
            result.PageTitle       = product.GetLocalized(p => p.PageTitle);
            result.MetaDescription = product.GetLocalized(p => p.MetaDescription);
            result.MetaKeyWords    = product.GetLocalized(p => p.MetaKeyWords);

            var downloadsCount = _productService.GetNumberOfDownloads(product.Id);
            var likesCount     = _userLikesService.GetNumberOfLikes(product.Id);

            result.NumberOfDownloads = downloadsCount;
            result.NumberOfLikes     = likesCount;
            result.LastUpdate        = product.LastUpDate ?? product.PublishDate;
            result.Categories        = product.Categories
                                       .Select(p => new PostCategoriesModel()
            {
                Id           = p.Id,
                CategoryName = p.GetLocalized(x => x.CategoryName),
                Slug         = p.Slug,
                CategoryUrl  = url.Action("FilterByCategory", "Product", new { slug = p.Slug })
            })
                                       .ToList();
            result.TagsList = product.Tags
                              .Select(p => new Tuple <int, string>(p.Id, p.GetLocalized(x => x.Tag)))
                              .ToList();

            //user purchased current product ?
            var purchasedProducts = _usersService.GetUserPurchasedProducts(currentUser?.Id, product.Id);

            if (purchasedProducts.Any(p => p.PurchaseExpiration > DateTime.Now))
            {
                result.CurrentUserHasAlreadyPurchasedThisProduct = true;
            }

            result.PriceForCurrentUser = _productService.CalculateProductPriceForUser(product, currentUser);
            result.CurrentUserGroup    = currentUser?.UserGroup;

            result.LikeWishlistButtonsModel = new LikeWishlistButtonsModel()
            {
                PostId = product.Id,
                AlreadyAddedToWishlist = _userWishlistService.UserAddedThisPostToWishlist(product.Id, currentUser?.Id),
                AlreadyLiked           = _userLikesService.UserLikedThisPost(product.Id, currentUser?.Id)
            };

            result.DownloadModel = PrepareProductDownloadPurchaseButtonModel(product, currentUser);

            result.Images.Clear();
            foreach (var img in product.Images.OrderBy(p => p.DisplayOrder))
            {
                result.Images.Add(new PostImagesModel()
                {
                    Title        = img.GetLocalized(p => p.Title) ?? result.PageTitle,
                    Alt          = img.GetLocalized(p => p.Alt) ?? result.Title,
                    ImageUrl     = img.GetLocalized(p => p.ImageUrl),
                    DisplayOrder = img.DisplayOrder
                });
            }

            result.Descriptions.Clear();
            foreach (var desc in product.Descriptions.OrderBy(p => p.DisplayOrder))
            {
                var description = desc.GetLocalized(x => x.HtmlDescription);
                result.Descriptions.Add(new PostDescriptionsModel()
                {
                    Description = description,
                    Title       = desc.GetLocalized(x => x.Title),
                    IsRtl       = description.StripHtml().IsRtlLanguage()
                });
            }

            result.Attributes.Clear();
            foreach (var attr in product.Attributes)
            {
                result.Attributes.Add(new PostAttributesModel()
                {
                    Type  = attr.PostAttribute.AttributeType,
                    Name  = attr.PostAttribute.GetLocalized(p => p.Name),
                    Value = attr.PostAttribute.AttributeType == PostAttributeType.Option
                        ? attr.AttributeOption.GetLocalized(p => p.Name)
                        : attr.GetLocalized(p => p.Value),
                    DisplayOrder = attr.DisplayOrder
                });
            }

            result.CheckoutAttributes.Clear();
            foreach (var attr in product.CheckoutAttributes)
            {
                result.CheckoutAttributes.Add(new TblProductCheckoutAttributes()
                {
                    Id                        = attr.Id,
                    Name                      = attr.GetLocalized(p => p.Name),
                    Description               = attr.GetLocalized(p => p.Description),
                    AttributeType             = attr.AttributeType,
                    DisplayOrder              = attr.DisplayOrder,
                    ProductId                 = attr.ProductId,
                    Required                  = attr.Required,
                    MaxRange                  = attr.MaxRange,
                    MinRange                  = attr.MinRange,
                    LicenseGeneratorServiceId = attr.LicenseGeneratorServiceId,
                    UnitPrice                 = attr.UnitPrice,
                    Options                   = attr.Options.Select(p => p.Adapt <TblProductCheckoutAttributeOptions>()).ToList()
                });
            }

            var protocol = _httpContext?.Request.Url?.Scheme ?? "http";

            result.PostUrl = new Uri(url.Action("Index", "Product", new { slug = product.Slug }, protocol: protocol) ?? "").ToString();

            return(result);
        }
Пример #20
0
        public virtual ProductDownloadModel PrepareProductDownloadPurchaseButtonModel(TblProducts product, TblUsers currentUser)
        {
            var productCheckoutAttributes = AsyncHelper
                                            .RunSync(() => _checkoutAttributesService.FindProductAttributesAsync(product.Id)).ToList();
            TblUserGroups downloadLimitedToUserGroupRecord = null;

            if (product.DownloadLimitedToUserGroupId != null)
            {
                downloadLimitedToUserGroupRecord = AsyncHelper
                                                   .RunSync(() => _userGroupsService.FindByIdAsync(product.DownloadLimitedToUserGroupId.Value));
            }

            var result = new ProductDownloadModel
            {
                ProductId = product.Id,
                AlwaysShowDownloadButton    = product.AlwaysShowDownloadButton,
                DownloadLimitedToUserGroup  = downloadLimitedToUserGroupRecord,
                HigherUserGroupsCanDownload = product.HigherUserGroupsCanDownload,
                HasDownloadableFile         = !string.IsNullOrWhiteSpace(product.FilesPath) ||
                                              productCheckoutAttributes.Any(p =>
                                                                            p.Options.Any(x => !string.IsNullOrWhiteSpace(x.FilesPath))),
                PriceForCurrentUser = _productService.CalculateProductPriceForUser(product, currentUser),
                DiscountForUserGroupsDescription = GenerateUserGroupDiscountsDescription(product, currentUser),
                DownloadBlockingReason           = _productService.UserCanDownloadProduct(product, currentUser, false)
            };

            result.CanDownloadByCurrentUser = result.DownloadBlockingReason.HasFlagFast(ProductService.UserCanDownloadProductResult.UserCanDownloadProduct);
            result.CurrentUserGroup         = currentUser?.UserGroup;
            result.HasDemoVersion           = !string.IsNullOrWhiteSpace(product.DemoFilesPath);

            //user purchased current product ?
            var purchasedProducts = _usersService.GetUserPurchasedProducts(currentUser?.Id, product.Id);

            if (purchasedProducts.Any(p => p.PurchaseExpiration > DateTime.Now))
            {
                result.CurrentUserHasAlreadyPurchasedThisProduct = true;
            }


            //ShowUpgradeUserAccountBtn
            if (result.DownloadLimitedToUserGroup != null &&
                (result.DownloadBlockingReason.HasFlagFast(ProductService.UserCanDownloadProductResult.UserMustSubscribeToAPlan) ||
                 result.DownloadBlockingReason.HasFlagFast(ProductService.UserCanDownloadProductResult.UserMustSubscribeToAPlanOrHigher)))
            {
                if (result.CurrentUserGroup == null)
                {
                    //Current user don't subscribed to any plan
                    result.ShowUpgradeUserAccountBtn = true;
                }
                else
                {
                    if (result.DownloadBlockingReason.HasFlagFast(ProductService.UserCanDownloadProductResult.UserMustSubscribeToAPlan) &&
                        result.CurrentUserGroup.Id != result.DownloadLimitedToUserGroup.Id)
                    {
                        result.ShowUpgradeUserAccountBtn = true;
                    }
                    if (result.DownloadBlockingReason.HasFlagFast(ProductService.UserCanDownloadProductResult.UserMustSubscribeToAPlanOrHigher) &&
                        result.CurrentUserGroup.GroupPriority < result.DownloadLimitedToUserGroup.GroupPriority)
                    {
                        result.ShowUpgradeUserAccountBtn = true;
                    }
                }
            }

            //ShowDownloadFullVersionBtn
            if (result.HasDownloadableFile)
            {
                if (result.AlwaysShowDownloadButton ||
                    result.DownloadBlockingReason.HasFlagFast(ProductService.UserCanDownloadProductResult.UserCanDownloadProduct))
                {
                    result.ShowDownloadFullVersionBtn = true;
                }
                if (result.DownloadBlockingReason.HasFlagFast(ProductService.UserCanDownloadProductResult.UserMustLoggedIn) ||
                    result.DownloadBlockingReason.HasFlagFast(ProductService.UserCanDownloadProductResult.UserDownloadLimitReached) ||
                    result.DownloadBlockingReason.HasFlagFast(ProductService.UserCanDownloadProductResult.UserGroupDownloadLimitReached))
                {
                    if (!(result.DownloadBlockingReason.HasFlagFast(ProductService.UserCanDownloadProductResult.UserMustSubscribeToAPlan) ||
                          result.DownloadBlockingReason.HasFlagFast(ProductService.UserCanDownloadProductResult.UserMustSubscribeToAPlanOrHigher) ||
                          result.DownloadBlockingReason.HasFlagFast(ProductService.UserCanDownloadProductResult.UserMustPurchaseTheProduct)))
                    {
                        result.ShowDownloadFullVersionBtn = true;
                    }
                }
            }


            //ShowPurchaseBtn
            result.ShowPurchaseBtn =
                result.PriceForCurrentUser > 0 || !string.IsNullOrWhiteSpace(product.LicenseGeneratorServiceId) ||
                productCheckoutAttributes.Any(p =>
                                              (p.UnitPrice > 0 && p.AttributeType == ProductCheckoutAttributeType.NumberBox) ||
                                              !string.IsNullOrWhiteSpace(p.LicenseGeneratorServiceId)) ||
                productCheckoutAttributes.SelectMany(p => p.Options).Any(p =>
                                                                         p.Price > 0 ||
                                                                         !string.IsNullOrWhiteSpace(p.LicenseGeneratorServiceId));

            //ShowDownloadDemoVersionBtn
            result.ShowDownloadDemoVersionBtn = result.HasDemoVersion;

            return(result);
        }
Пример #21
0
        public bool AddProduct(TblProducts Product)
        {
            string StoreProc = "spAddProduct";

            return(db.Update(StoreProc, TakeProduct(Product)) > 0);
        }
Пример #22
0
        protected virtual List <Tuple <TblUserGroups, string> > GenerateUserGroupDiscountsDescription(TblProducts product, TblUsers user)
        {
            if (product == null)
            {
                throw new ArgumentNullException(nameof(product));
            }

            var result = new List <Tuple <TblUserGroups, string> >();

            var fromGroup = user?.UserGroupId != null ? user.UserGroup.GroupPriority : int.MinValue;
            var discounts = _productDiscountsForUserGroupsService.FindProductDiscounts(product.Id);

            foreach (var discount in discounts.Where(p => p.UserGroup.GroupPriority >= fromGroup))
            {
                var price     = product.Price - (discount.DiscountPercent * product.Price) / 100;
                var groupName = discount.UserGroup.GetLocalized(p => p.GroupName);

                if (price <= 0)
                {
                    //Free
                    if (discount.ApplyDiscountToHigherUserGroups)
                    {
                        result.Add(new Tuple <TblUserGroups, string>(discount.UserGroup, string.Format(
                                                                         _localizationService.GetResource("FreeForUserGroupsOrHigher"),
                                                                         groupName,
                                                                         discount.UserGroup.Id,
                                                                         discount.UserGroup.GroupPriority,
                                                                         product.Id,
                                                                         product.Slug)));
                    }
                    else
                    {
                        result.Add(new Tuple <TblUserGroups, string>(discount.UserGroup, string.Format(
                                                                         _localizationService.GetResource("FreeForUserGroups"),
                                                                         groupName,
                                                                         discount.UserGroup.Id,
                                                                         discount.UserGroup.GroupPriority,
                                                                         product.Id,
                                                                         product.Slug)));
                    }
                }
                else
                {
                    if (discount.ApplyDiscountToHigherUserGroups)
                    {
                        result.Add(new Tuple <TblUserGroups, string>(discount.UserGroup, string.Format(
                                                                         _localizationService.GetResource("DiscountForUserGroupsOrHigher"),
                                                                         discount.DiscountPercent,
                                                                         groupName,
                                                                         price.ExchangeCurrencyStr(),
                                                                         discount.UserGroup.Id,
                                                                         discount.UserGroup.GroupPriority,
                                                                         product.Id,
                                                                         product.Slug)));
                    }
                    else
                    {
                        result.Add(new Tuple <TblUserGroups, string>(discount.UserGroup, string.Format(
                                                                         _localizationService.GetResource("DiscountForUserGroups"),
                                                                         discount.DiscountPercent,
                                                                         groupName,
                                                                         price.ExchangeCurrencyStr(),
                                                                         discount.UserGroup.Id,
                                                                         discount.UserGroup.GroupPriority,
                                                                         product.Id,
                                                                         product.Slug)));
                    }
                }
            }

            return(result);
        }