diff --git a/Services/FilesService.cs b/Services/FilesService.cs index 87ad803..bd028aa 100644 --- a/Services/FilesService.cs +++ b/Services/FilesService.cs @@ -45,12 +45,31 @@ public async Task DeleteFileAsync(string id) }); } - public Task IncrementDownloadCountAsync(string id) - { - throw new NotImplementedException(); - } + public async Task IncrementDownloadCountAsync(string id) + { + await Task.Run(() => + { + var collection = _liteDatabase.GetCollection("FileDetails"); + var fileDetails = collection.FindById(id); + if (fileDetails != null) + { + // Increment the download count + fileDetails.DownloadCount++; + // Update the file details in the collection + var success = collection.Update(fileDetails); + if (!success) + { + throw new Exception("Error while updating download count"); + } + } + else + { + throw new Exception("File not found"); + } + }); + } - public async Task> GetAllFileDetailsAsync() + public async Task> GetAllFileDetailsAsync() { return await Task.Run(() => { @@ -92,16 +111,13 @@ public async Task UpdateFileDetailsAsync(FileDetails details) }); } - public async Task UploadFileAsync(Stream fileStream, FileDetails fileDetails) - { - return await Task.Run(() => - { - var collection = _liteDatabase.GetCollection("FileDetails"); - fileDetails.Id = ObjectId.NewObjectId().ToString(); - collection.Insert(fileDetails.Id, fileDetails); - var obj = _liteDatabase.FileStorage.Upload(fileDetails.Id, fileDetails.Name, fileStream); - return fileDetails; - }); - } - } + public async Task UploadFileAsync(Stream fileStream, FileDetails fileDetails) + { + var collection = _liteDatabase.GetCollection("FileDetails"); + fileDetails.Id = ObjectId.NewObjectId().ToString(); + collection.Insert(fileDetails.Id, fileDetails); + var obj = _liteDatabase.FileStorage.Upload(fileDetails.Id, fileDetails.Name, fileStream); + return fileDetails; + } + } } \ No newline at end of file