public HttpResponseMessage Create(HttpRequestMessage request, List <FileImageViewModel> fileImageVm)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                foreach (var item in fileImageVm)
                {
                    _fileImageService.DeleteMutiImage(item.ProductImageID);

                    if (!String.IsNullOrEmpty(item.FileName))
                    {
                        var image = ConvertData.Base64ToImage(item.FileName);
                        string extension = GetFileExtension.GetExtension(item.FileName);
                        Guid id = Guid.NewGuid();
                        string time = DateTime.Now.Millisecond.ToString();
                        string fileName = id.ToString() + time + "." + extension;

                        string filePath = Path.Combine(HttpContext.Current.Server.MapPath("~/fileman/Uploads/")
                                                       + CommonConstants.PathProduct + "/" + fileName);
                        image.Save(filePath, ImageFormat.Jpeg);

                        //_fileImageService.DeleteMutiImage(item.ProductImageID);

                        var fileImage = new FileImage();
                        fileImage.FileName = fileName;
                        fileImage.Extension = "." + extension;
                        fileImage.ProductImageID = item.ProductImageID;

                        _fileImageService.Add(fileImage);

                        response = request.CreateResponse(HttpStatusCode.OK, fileImage);
                    }
                }
                _fileImageService.Save();

                return response;
            }));
        }
        public HttpResponseMessage Update(HttpRequestMessage request)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;
                if (!ModelState.IsValid)
                {
                    request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
                }
                else
                {
                    var productJson = HttpContext.Current.Request.Unvalidated.Form["product"];
                    if (productJson == null)
                    {
                        response = request.CreateErrorResponse(HttpStatusCode.BadRequest, "Vui lòng cung cấp dữ liệu.");
                    }

                    var productVm = new JavaScriptSerializer {
                        MaxJsonLength = Int32.MaxValue, RecursionLimit = 100
                    }.Deserialize <ProductViewModel>(productJson);
                    var product = new Product();
                    product.UpdateProduct(productVm);

                    // Xử lý tag.
                    if (productVm.TagsVm != null)
                    {
                        string[] mylist = productVm.TagsVm.Select(x => x.Name).ToArray();
                        var checkDuplicate = new HashSet <string>(mylist);
                        product.Tags = string.Join(",", checkDuplicate);
                    }

                    // Convert chuỗi image.
                    if (!String.IsNullOrEmpty(productVm.Image))
                    {
                        string extension = GetFileExtension.GetExtension(productVm.Image);
                        var image = ConvertData.Base64ToImage(productVm.Image);

                        product.Image = product.ID + "_" + product.Name + "." + extension;

                        string filePath = Path.Combine(HttpContext.Current.Server.MapPath("~/fileman/Uploads/")
                                                       + CommonConstants.PathProduct + "/" + product.Image);
                        image.Save(filePath, ImageFormat.Jpeg);
                    }

                    product.UpdatedDate = DateTime.Now;
                    product.UpdatedBy = User.Identity.Name;

                    _productService.Update(product);
                    _productService.Save();

                    // Xử lý nhóm sản phẩm.
                    if (productVm.Groups != null)
                    {
                        var lstProductGroup = new List <ProductGroup>();
                        foreach (var group in productVm.Groups)
                        {
                            lstProductGroup.Add(new ProductGroup()
                            {
                                ProductID = product.ID,
                                GroupID = group.ID
                            });
                        }
                        _groupService.AddProductToGroups(lstProductGroup, product.ID);
                        _groupService.Save();
                    }


                    //if (productVm.MoreImages != null)
                    //{
                    //    foreach (var item in productVm.MoreImages)
                    //    {
                    //        if (!String.IsNullOrEmpty(item))
                    //        {
                    //            var image = ConvertData.Base64ToImage(item);
                    //            string extension = GetFileExtension.GetExtension(item);
                    //            Guid id = Guid.NewGuid();

                    //            string fileName = id.ToString() + "_" + product.Name + "." + extension;

                    //            string filePath = Path.Combine(HttpContext.Current.Server.MapPath("~/fileman/Uploads/")
                    //                + CommonConstants.PathProduct + "/" + fileName);

                    //            image.Save(filePath, ImageFormat.Jpeg);

                    //            _fileImageService.DeleteMutiImage(product.ID);

                    //            var fileImage = new FileImage()
                    //            {
                    //                FileName = fileName,
                    //                Extension = "." + extension,
                    //                ProdutImageID = product.ID
                    //            };

                    //            _fileImageService.Add(fileImage);
                    //        }
                    //    }
                    //}
                    //_fileImageService.Save();

                    var responseData = Mapper.Map <Product, ProductViewModel>(product);
                    response = request.CreateResponse(HttpStatusCode.OK, responseData);
                }

                return response;
            }));
        }
Example #3
0
        public void GetExtension_FileNameStringArrayInput_ReturnSringArrayOfExtensionNames(string[] arr, string[] expected)
        {
            var actual = GetFileExtension.GetExtension(arr);

            Assert.Equal(expected, actual);
        }