/// <summary> /// Updates the product image. /// </summary> /// <param name="productID">The product identifier.</param> /// <param name="file">The image file.</param> /// <returns>The image id</returns> public async Task <string> UpdateProductImageAsync(Guid productID, IFormFile file) { string imageID = null; using (var fileStream = file.OpenReadStream()) using (var ms = new MemoryStream()) { fileStream.CopyTo(ms); imageID = DriveAPI.UploadImage(ms, file.FileName); } BsonDocument document = await this.Documents .Aggregate() .Match(p => p._Id == productID) .Project(Builders <Product> .Projection .Include("Characteristics.Image")) .FirstOrDefaultAsync(); Product product = BsonSerializer.Deserialize <Product>(document); DriveAPI.DeleteFile(product.Characteristics["Image"]); product.Characteristics["Image"] = imageID; UpdateDefinition <Product> update = Builders <Product> .Update.Set("Characteristics.Image", product.Characteristics["Image"]); await this.Documents.UpdateOneAsync(p => p._Id == productID, update); return(imageID); }
static void Main(string[] args) { DriveAPI drive = new DriveAPI(); var list = drive.files; string path = list[0].WebContentLink; Console.WriteLine(QRCodeUtil.getQRCode(path)); Console.ReadKey(); }
/// <summary> /// Updates the product image. /// </summary> /// <param name="productID">The product identifier.</param> /// <param name="file">The image file.</param> /// <returns>The image identifier</returns> public async Task <string> UpdateProductImage(int productID, IFormFile file) { string imageID = null; using (var fileStream = file.OpenReadStream()) using (var ms = new MemoryStream()) { fileStream.CopyTo(ms); imageID = DriveAPI.UploadImage(ms, file.FileName); } ProductCharacteristic characteristic = await this.unitOfWork.Set <ProductCharacteristic>() .Where(pc => pc.ProductID == productID && pc.Characteristic.Name == "Image") .FirstOrDefaultAsync(); DriveAPI.DeleteFile(characteristic.Value); characteristic.Value = imageID; await this.unitOfWork.SaveAsync(); return(imageID); }