示例#1
0
        private int CalculatePrice(Data.Models.Product product, List <ProductEngine.common.InputModel.Product> products)
        {
            var orderedProduct = products.Find(x => x.Id == product.ProductId);
            int totalCost      = 0;

            var productDiscount = product.ProductDiscount.FirstOrDefault();
            int reminder        = 0;

            if (productDiscount != null)
            {
                var unitNo = productDiscount.DiscountUnit;
                if (unitNo <= orderedProduct.Quantity)
                {
                    int absoluteResult = Math.DivRem(orderedProduct.Quantity, unitNo.Value, out reminder);

                    totalCost += ((product.ProductPricing.FirstOrDefault().BasePrice *absoluteResult *unitNo) * (100 - productDiscount.DiscountValue) / 100).Value;
                    totalCost += (product.ProductPricing.FirstOrDefault().BasePrice *reminder).Value;
                }
                else
                {
                    totalCost += (product.ProductPricing.FirstOrDefault().BasePrice *orderedProduct.Quantity).Value;
                }
            }
            else
            {
                totalCost += (product.ProductPricing.FirstOrDefault().BasePrice *orderedProduct.Quantity).Value;
            }
            return(totalCost);
        }
示例#2
0
        public void SaveProduct(string json)
        {
            DTO.ProductSaveDto productSave = Newtonsoft.Json.JsonConvert.DeserializeObject <DTO.ProductSaveDto>(json);

            Data.Models.Product product = new Data.Models.Product()

            {
                Name        = productSave.ProductName,
                Description = productSave.ProductDescription,
                StateId     = (int)Enums.State.Active,
                CategoryId  = productSave.CategoryId,
                CreateDate  = DateTime.UtcNow
            };
            product = productAdapter.Insert <Data.Models.Product>(product);
            //using (ECommerceContext eCommerceContext = new ECommerceContext())
            //{
            //    eCommerceContext.Products.Add(new Models.Product()
            //    {
            //        Name = productSave.ProductName,
            //        Description = productSave.ProductDescription,
            //        StateId = (int)Enums.State.Active,
            //        CategoryId = productSave.CategoryId,
            //        CreateDate = DateTime.UtcNow,

            //    });

            //    eCommerceContext.SaveChanges();
            //}
        }
示例#3
0
        public ServiceResponse <Data.Models.Product> CreateProduct(Data.Models.Product product)
        {
            try
            {
                _db.Products.Add(product);

                var newInventory = new ProductInventory
                {
                    Product        = product,
                    QuantityOnHand = 0,
                    IdealQuantity  = 10,
                };
                _db.ProductInventories.Add(newInventory);

                _db.SaveChanges();

                return(new ServiceResponse <Data.Models.Product>
                {
                    Data = product,
                    IsSuccess = true,
                    Time = DateTime.UtcNow,
                    Message = "Saved new product"
                });
            }
            catch (Exception e)
            {
                return(new ServiceResponse <Data.Models.Product>
                {
                    Data = product,
                    Time = DateTime.UtcNow,
                    IsSuccess = false,
                    Message = "Error saving product"
                });
            }
        }
示例#4
0
        public ServiceResponse <Data.Models.Product> CreateProduct(Data.Models.Product product)
        {
            try
            {
                this.db.Products.Add(product);

                var newInventory = new ProductInventory()
                {
                    Product        = product,
                    QuantityOnHand = 0,
                    IdealQuantity  = 10,
                };

                this.db.ProductInventories.Add(newInventory);

                this.db.SaveChanges();

                return(new ServiceResponse <Data.Models.Product>()
                {
                    Data = product,
                    Time = DateTime.UtcNow,
                    Message = "Saved new product",
                    IsSuccess = true
                });
            } catch (Exception e)
            {
                return(new ServiceResponse <Data.Models.Product>()
                {
                    Data = product,
                    Time = DateTime.UtcNow,
                    Message = e.StackTrace,
                    IsSuccess = false
                });
            }
        }
示例#5
0
        public async Task <ActionResult> CreateNewRateable([FromBody] CreateRateableRequest ratable)
        {
            var rate = new Rateable()
            {
                Base64Image = ratable.Base64Image,
                FileName    = ratable.FileName,
                ProductName = ratable.Name
            };
            var res = await _googleService.CreateNewRateable(rate);

            var product = new Data.Models.Product()
            {
                ProductName = ratable.Name,
                Rating      = new List <Rating>()
                {
                }
            };

            product.Rating.Add(new Rating()
            {
                Value = ratable.Rating
            });
            _ratingCoreContext.Products.Add(product);
            int saved = _ratingCoreContext.SaveChanges();

            return(Ok(product.ProductId));
        }
示例#6
0
 internal static Product ToViewModel(Data.Models.Product product)
 {
     return(new Product()
     {
         Id = product.Id,
         Name = product.Name,
         Price = product.Price
     });
 }
示例#7
0
        public bool AddPost(PostCreateModel postCreate, string currentUserName)
        {
            var product     = this.UOW.ProductRepository.List().Where(p => p.ProductTypeId == postCreate.ProductTypeId).FirstOrDefault();
            var currentUser = this.UOW.UserManager.FindByNameAsync(currentUserName).Result;

            if (product is null)
            {
                product = new Data.Models.Product
                {
                    ProductTypeId = postCreate.ProductTypeId,
                    Count         = postCreate.Count
                };
                this.UOW.ProductRepository.Save(product);
            }
            var post = this.Mapper.Map <PostCreateModel, Data.Models.Post>(postCreate);

            post.Product   = product;
            post.ProductId = product.ProductId;
            post.UserId    = currentUser.Id;
            if (post.PostType == PostType.ForSale)
            {
                var postList = this.UOW.PostRepository.List().Where(p => p.PostType != PostType.ForSale && p.UserId != post.UserId);
                if (post.PostId != 0)
                {
                    foreach (var p in postList)
                    {
                        var productType = this.UOW.ProductTypeRepository.List().Where(t => t.ProductTypeId == post.Product.ProductTypeId).FirstOrDefault();
                        var message     = $"{post.PostName} postum popoxutyun e katarvel\n" +
                                          $"Full Name: - Ars\n" +
                                          $"Phone: - 094940708\n" +
                                          $"Post Name: - {postCreate.PostName}\n" +
                                          $"Price: - {postCreate.Price}\n" +
                                          $"Post description: - I am selling {productType.ProductTypeName} {post.Product.Count}\n" +
                                          $"Post Link: - https://localhost:44372/Post/PostView/{post.PostId}";
                        var userTo = UOW.UserRepository.GetByID(p.UserId);
                        EmailSender.SendEmailMessage("*****@*****.**", "Quick Response Soft", userTo.Email, message, "Post updated");
                    }
                    return(this.UOW.PostRepository.Update(post));
                }
                foreach (var p in postList)
                {
                    var message = $"Full Name: - {currentUser.FirstName} {currentUser.LastName}\n" +
                                  $"Phone: - {currentUser.PhoneNumber}\n" +
                                  $"Post Name: - {postCreate.PostName}\n" +
                                  $"Price: - {postCreate.Price}\n" +
                                  $"Post description: - I am selling {postCreate.Body} {postCreate.Count}\n" +
                                  $"Post Link: - https://localhost:44372/Post/PostView/{post.PostId}";;
                    var user = this.UOW.UserRepository.GetByID(p.UserId);
                    EmailSender.SendEmailMessage("*****@*****.**", "Quick Response Soft", user.Email, message, "New post");
                }
            }
            else if (post.PostId != 0)
            {
                return(this.UOW.PostRepository.Update(post));
            }
            return(this.UOW.PostRepository.Save(post));
        }
示例#8
0
        public async Task <ActionResult <Product> > PostProduct(Data.Models.Product product)
        {
            if (product == null)
            {
                return(BadRequest());
            }

            product.Slug = Slug.Generate(product.Title);

            await _productService.Create(product);

            return(CreatedAtAction("GetProduct", new { id = product.Id }, product));
        }
示例#9
0
 //Maps a Product data model to a productModel view model
 public static ProductModel SerializeProductModel(Data.Models.Product product)
 {
     return(new ProductModel
     {
         Id = product.Id,
         CreatedOn = product.CreatedOn,
         UpdatedOn = product.UpdatedOn,
         Price = product.Price,
         Name = product.Name,
         Description = product.Description,
         IsArchived = product.IsArchived
     });
 }
示例#10
0
        public async Task AddAsync(string name, string description, double price)
        {
            var product = new Data.Models.Product
            {
                Name        = name,
                Description = description,
                Price       = price
            };

            await this.dbContext.Products.AddAsync(product);

            await this.dbContext.SaveChangesAsync();
        }
示例#11
0
        public IActionResult Index(int id)
        {
            Data.Models.Product product = _productRepository.Find(id);

            //Data.Models.Product product;

            //using (ECommerce.Data.ECommerceContext eCommerceContext = new ECommerce.Data.ECommerceContext())
            //{
            //    product = eCommerceContext.Products.SingleOrDefault(a => a.Id == id);
            //}

            return(View(product));
        }
示例#12
0
 public void SaveProduct(string json)
 {
     DTO.ProductSaveDto  productSave = Newtonsoft.Json.JsonConvert.DeserializeObject <DTO.ProductSaveDto>(json);
     Data.Models.Product product     = new Data.Models.Product()
     {
         Name        = productSave.ProductName,
         Description = productSave.ProductDescription,
         StateId     = (int)Enums.State.Active,
         CategoryId  = productSave.CategoryId,
         CreateDate  = DateTime.UtcNow
     };
     productAdapter.Insert <Data.Models.Product>(product);
 }
示例#13
0
        public void ProductUpdate(string json)
        {
            DTO.ProductUpdateDto productUpdate = Newtonsoft.Json.JsonConvert.DeserializeObject <DTO.ProductUpdateDto>(json);
            using (Data.ECommerceContext eCommerceContext = new Data.ECommerceContext())
            {
                Data.Models.Product product = eCommerceContext.Products.SingleOrDefault(a => a.Id == productUpdate.ProductId);

                product.Description = productUpdate.ProductDescription;
                product.Name        = productUpdate.ProductName;

                eCommerceContext.Products.Update(product);
                eCommerceContext.SaveChanges();
            }
        }
示例#14
0
 public static ProductViewModel SerializeProductModel(Data.Models.Product product)
 {
     return(new ProductViewModel
     {
         Id = product.Id,
         DateCreated = product.DateCreated,
         DateUpdated = product.DateUpdated,
         Price = product.Price,
         Name = product.Name,
         Description = product.Description,
         IsTaxable = product.IsTaxable,
         IsArchived = product.IsArchived
     });
 }
示例#15
0
        public void Create(string name, decimal price, string imageUrl)
        {
            using (var db = new ByTheCakeDbContext())
            {
                var product = new Data.Models.Product()
                {
                    Name     = name,
                    Price    = price,
                    ImageUrl = imageUrl
                };

                db.Add(product);
                db.SaveChanges();
            }
        }
示例#16
0
        public IActionResult Edit(Data.Models.Product product)
        {
            using (ECommerce.Data.ECommerceContext context = new ECommerce.Data.ECommerceContext())
            {
                Data.Models.Product updatedProduct = context.Products.SingleOrDefault(x => x.Id == product.Id);
                if (updatedProduct != null)
                {
                    updatedProduct.Name        = product.Name;
                    updatedProduct.Description = product.Description;
                    updatedProduct.CategoryId  = product.CategoryId;

                    context.Products.Update(updatedProduct);
                    context.SaveChanges();
                }
            }
            //tekrar index metoduna yönlendiriyor
            return(RedirectToAction("Index", new { id = product.Id }));
        }
示例#17
0
        public bool UpdateProduct(string json)
        {
            bool result = false;

            DTO.ProductUpdate productUpdate = Newtonsoft.Json.JsonConvert.DeserializeObject <DTO.ProductUpdate>(json);
            using (ECommerceContext eCommerceContext = new ECommerceContext())
            {
                Data.Models.Product product = eCommerceContext.Products.SingleOrDefault(a => a.Id == productUpdate.ProductId);
                if (product != null)
                {
                    eCommerceContext.Products.Update(product);
                    eCommerceContext.SaveChanges();
                    result = true;
                }
            }

            return(result);
        }
示例#18
0
        public async Task <IActionResult> PutProduct(int id, Data.Models.Product product)
        {
            if (id != product.Id || product == null)
            {
                return(BadRequest());
            }

            var _productExists = await _productService.GetById(id);

            if (_productExists == null)
            {
                return(NotFound());
            }

            await _productService.Edit(product);

            return(NoContent());
        }
示例#19
0
        public ServiceResponse <Data.Models.Product> CreateProduct(Data.Models.Product product)
        {
            try
            {
                _db.Products.Add(product);

                var newInventory = new Data.Models.Inventory
                {
                    Product           = product,
                    AvailableQuantity = 0,
                    SupposedQuantity  = 10
                };

                _db.ProductInventories.Add(newInventory);

                _db.SaveChanges();

                return(new ServiceResponse <Data.Models.Product>
                {
                    Data = product,
                    Time = DateTime.UtcNow,
                    Message = "Saved new product",
                    IsSuccess = true
                });
            }

            catch (Exception e)
            {
                return(new ServiceResponse <Data.Models.Product>
                {
                    Data = product,
                    Time = DateTime.UtcNow,
                    Message = e.StackTrace,
                    IsSuccess = false
                });
            }
        }
示例#20
0
        /// <summary>
        /// Adds new product to DB
        /// </summary>
        /// <param name="product"></param>
        /// <returns></returns>
        public ServiceResponse <Data.Models.Product> CreateProduct(Data.Models.Product product)
        {
            try
            {
                _context.Products.Add(product);

                var newInventory = new ProductInventory
                {
                    InventoryProduct = product,
                    QuantityOnHand   = 0,
                    IdealQuantity    = 10
                };

                _context.ProductInventories.Add(newInventory);

                _context.SaveChanges();

                return(new ServiceResponse <Data.Models.Product>
                {
                    Data = product,
                    Time = DateTime.UtcNow,
                    Message = "Saved new product",
                    IsSuccess = true
                });
            }
            catch (Exception ex)
            {
                return(new ServiceResponse <Data.Models.Product>
                {
                    Data = product,
                    Time = DateTime.UtcNow,
                    Message = $"Error saving new product: {ex.Message}",
                    IsSuccess = false
                });
            }
        }
示例#21
0
 public ServiceResponse <bool> CreateProduct(Data.Models.Product product)
 {
     throw new System.NotImplementedException();
 }
示例#22
0
 public IActionResult Index(int id)
 {
     Data.Models.Product product = _productRepository.Find(id);
     return(View(product));
 }