示例#1
0
        public IActionResult InsertCatProductParameters(long catProductId, List <long> parametersIdList)
        {
            try
            {
                var deletedList = _repository.CatProductParameters.FindByCondition(c => c.CatProductId == catProductId && !parametersIdList.Contains(c.ParametersId.Value))
                                  .ToList();
                _repository.CatProductParameters.RemoveRange(deletedList);

                var indbIDs = _repository.CatProductParameters.FindByCondition(c => c.CatProductId == catProductId && c.DaDate == null && c.Ddate == null)
                              .Select(c => c.ParametersId.Value).ToList();

                var tobeInsertedList = parametersIdList.Except(indbIDs).ToList();

                tobeInsertedList.ForEach(c =>
                {
                    CatProductParameters catp = new CatProductParameters
                    {
                        CatProductId = catProductId,
                        ParametersId = c,
                        Cdate        = DateTime.Now.Ticks,
                        CuserId      = ClaimPrincipalFactory.GetUserId(User)
                    };


                    var productlist = _repository.Product.FindByCondition(c => c.CatProductId == catProductId)
                                      .Select(c => c.Id).ToList();
                    productlist.ForEach(c =>
                    {
                        var productparams = new ProductCatProductParameters
                        {
                            Value     = null,
                            Cdate     = DateTime.Now.Ticks,
                            CuserId   = ClaimPrincipalFactory.GetUserId(User),
                            ProductId = c,
                        };
                        catp.ProductCatProductParameters.Add(productparams);
                    });
                    _repository.CatProductParameters.Create(catp);
                });

                _repository.Save();
                return(Ok(""));
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message);
                return(BadRequest("Internal Server Error"));
            }
        }
示例#2
0
        public IActionResult InsertProduct()
        {
            var coverpath    = "";
            var downloadpath = "";

            try
            {
                var product       = JsonSerializer.Deserialize <Product>(HttpContext.Request.Form["Product"]);
                var releventList  = JsonSerializer.Deserialize <List <long> >(HttpContext.Request.Form["releventList"]);
                var coverImageUrl = HttpContext.Request.Form.Files.GetFile("CoverImage");
                var downloadLink  = HttpContext.Request.Form.Files.GetFile("DownloadLink");



                if (coverImageUrl != null)
                {
                    var uploadFileStatus = FileManeger.FileUploader(coverImageUrl, 1, "ProductImages");
                    if (uploadFileStatus.Status == 200)
                    {
                        coverpath = uploadFileStatus.Path;
                    }
                    else
                    {
                        return(BadRequest(uploadFileStatus.Path));
                    }
                }
                if (downloadLink != null && product.VirtualProduct.Value)
                {
                    var uploadFileStatus = FileManeger.FileUploader(downloadLink, 3, "ProductFiles");
                    if (uploadFileStatus.Status == 200)
                    {
                        downloadpath = uploadFileStatus.Path;
                    }
                    else
                    {
                        return(BadRequest(uploadFileStatus.Path));
                    }
                }


                product.CoverImageUrl = coverpath;
                product.DownloadLink  = downloadpath;
                product.CuserId       = ClaimPrincipalFactory.GetUserId(User);
                product.Cdate         = DateTime.Now.Ticks;

                var counter = (_repository.Product
                               .FindByCondition(c => c.Coding.ToString().Substring(0, 9) == product.Coding.ToString())
                               .Count() + 1).ToString();
                counter = counter.PadLeft(3, '0');

                product.Coding = Convert.ToInt64(string.Concat(product.Coding.ToString(), counter));

                product.LastSeenDate = DateTime.Now.Ticks;
                product.SeenCount    = 0;


                var parameters = _repository.CatProductParameters
                                 .FindByCondition(c => c.CatProductId == product.CatProductId).ToList();

                parameters.ForEach(c =>
                {
                    var paramss = new ProductCatProductParameters
                    {
                        CatProductParametersId = c.Id,
                        CuserId = ClaimPrincipalFactory.GetUserId(User),
                        Cdate   = DateTime.Now.Ticks
                    };
                    product.ProductCatProductParameters.Add(paramss);
                });
                releventList.ForEach(c =>
                {
                    var pro = new RelatedProduct
                    {
                        CuserId         = ClaimPrincipalFactory.GetUserId(User),
                        Cdate           = DateTime.Now.Ticks,
                        DestinProductId = c
                    };
                    product.RelatedProductOriginProduct.Add(pro);
                });

                _repository.Product.Create(product);


                _repository.Save();

                return(NoContent());
            }
            catch (Exception e)
            {
                FileManeger.FileRemover(new List <string> {
                    coverpath, downloadpath
                });
                _logger.LogError(e, MethodBase.GetCurrentMethod());
                return(BadRequest(e.Message));
            }
        }