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); }
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); } }