示例#1
0
        public virtual async Task <HttpResponseMessage> UploadResources(HttpRequestMessage request, long productId)
        {
            HttpResponseMessage httpResponseMessage;

            try
            {
                if (this.Request.Files.Count <= 0 || this.Request.Files[0] == null)
                {
                    throw new UserFriendlyException(this.L("ProductResource_Change_Error"));
                }
                HttpPostedFileBase item = this.Request.Files[0];
                if (item.ContentLength <= 2097152)
                {
                    Product product = await this._productAppService.GetProduct(productId);

                    BinaryObject binaryObject = new BinaryObject(item.InputStream.GetAllBytes());
                    await this._binaryObjectManager.SaveAsync(binaryObject);

                    UpdateProductResourceInput updateProductResourceInput = new UpdateProductResourceInput()
                    {
                        Id            = (long)0,
                        ProductId     = product.Id,
                        ResourceId    = new Guid?(binaryObject.Id),
                        FileName      = item.FileName,
                        FileExtension = Path.GetExtension(item.FileName),
                        FileSize      = item.ContentLength.ToString(),
                        IsActive      = true
                    };
                    await this._productAppService.SaveProductResourceAsync(updateProductResourceInput);

                    httpResponseMessage = request.CreateResponse(HttpStatusCode.OK);
                }
                else
                {
                    HttpResponseMessage httpResponseMessage1 = request.CreateResponse <string>(HttpStatusCode.BadRequest, this.L("ProductResource_Warn_SizeLimit"));
                    httpResponseMessage = httpResponseMessage1;
                }
            }
            catch (UserFriendlyException)
            {
                HttpResponseMessage httpResponseMessage2 = request.CreateResponse <string>(HttpStatusCode.BadRequest, this.L("ProductResource_UploadException"));
                httpResponseMessage = httpResponseMessage2;
            }
            return(httpResponseMessage);
        }
示例#2
0
        public async Task SaveProductResourceAsync(UpdateProductResourceInput input)
        {
            Guid?resourceId;

            if (input.Id <= (long)0)
            {
                ProductResource productResource = new ProductResource()
                {
                    Id = (long)0
                };
                resourceId = input.ResourceId;
                productResource.BinaryObjectId = Guid.Parse(resourceId.ToString());
                productResource.ProductId      = input.ProductId;
                productResource.Name           = input.FileName;
                productResource.FileName       = input.FileName;
                productResource.FileExtension  = input.FileExtension;
                productResource.FileSize       = input.FileSize;
                productResource.Category       = this.GetCategoryFromFileExtension(input.FileExtension);
                productResource.IsActive       = input.IsActive;
                await this._productResourceRepository.InsertAsync(productResource);
            }
            else
            {
                ProductResource async = await this._productResourceRepository.GetAsync(input.Id);

                if (async != null)
                {
                    resourceId           = input.ResourceId;
                    async.BinaryObjectId = Guid.Parse(resourceId.ToString());
                    async.ProductId      = input.ProductId;
                    async.FileExtension  = input.FileExtension;
                    async.FileName       = input.FileName;
                    async.FileSize       = input.FileSize;
                    async.Category       = this.GetCategoryFromFileExtension(input.FileExtension);
                    async.IsActive       = input.IsActive;
                }
                await this._productResourceRepository.UpdateAsync(async);
            }
        }