@@ -45,12 +45,31 @@ public async Task<string> DeleteFileAsync(string id)
4545 } ) ;
4646 }
4747
48- public Task IncrementDownloadCountAsync ( string id )
49- {
50- throw new NotImplementedException ( ) ;
51- }
48+ public async Task IncrementDownloadCountAsync ( string id )
49+ {
50+ await Task . Run ( ( ) =>
51+ {
52+ var collection = _liteDatabase . GetCollection < FileDetails > ( "FileDetails" ) ;
53+ var fileDetails = collection . FindById ( id ) ;
54+ if ( fileDetails != null )
55+ {
56+ // Increment the download count
57+ fileDetails . DownloadCount ++ ;
58+ // Update the file details in the collection
59+ var success = collection . Update ( fileDetails ) ;
60+ if ( ! success )
61+ {
62+ throw new Exception ( "Error while updating download count" ) ;
63+ }
64+ }
65+ else
66+ {
67+ throw new Exception ( "File not found" ) ;
68+ }
69+ } ) ;
70+ }
5271
53- public async Task < IEnumerable < FileDetails > > GetAllFileDetailsAsync ( )
72+ public async Task < IEnumerable < FileDetails > > GetAllFileDetailsAsync ( )
5473 {
5574 return await Task . Run ( ( ) =>
5675 {
@@ -92,16 +111,13 @@ public async Task<FileDetails> UpdateFileDetailsAsync(FileDetails details)
92111 } ) ;
93112 }
94113
95- public async Task < FileDetails > UploadFileAsync ( Stream fileStream , FileDetails fileDetails )
96- {
97- return await Task . Run ( ( ) =>
98- {
99- var collection = _liteDatabase . GetCollection < FileDetails > ( "FileDetails" ) ;
100- fileDetails . Id = ObjectId . NewObjectId ( ) . ToString ( ) ;
101- collection . Insert ( fileDetails . Id , fileDetails ) ;
102- var obj = _liteDatabase . FileStorage . Upload ( fileDetails . Id , fileDetails . Name , fileStream ) ;
103- return fileDetails ;
104- } ) ;
105- }
106- }
114+ public async Task < FileDetails > UploadFileAsync ( Stream fileStream , FileDetails fileDetails )
115+ {
116+ var collection = _liteDatabase . GetCollection < FileDetails > ( "FileDetails" ) ;
117+ fileDetails . Id = ObjectId . NewObjectId ( ) . ToString ( ) ;
118+ collection . Insert ( fileDetails . Id , fileDetails ) ;
119+ var obj = _liteDatabase . FileStorage . Upload ( fileDetails . Id , fileDetails . Name , fileStream ) ;
120+ return fileDetails ;
121+ }
122+ }
107123}
0 commit comments