public async Task onFileRemoveAsync(ZIFile file, string id = defaultDocumentId){ var filter = Builders<Statistics>.Filter.Eq(statistic => statistic.Id, id); var update = Builders<Statistics>.Update .Inc(nameof(Statistics.TotalDataStored),-file.Size) .Inc(nameof(Statistics.NumberOfFiles), -1); await _context.Collection.UpdateOneAsync(filter,update); }
public async Task onFileUploadAsync(ZIFile file, string id = defaultDocumentId){ var extension = (file.Extension == null || file.Extension.Equals(""))?"unknownType":file.Extension; var date = DateTime.Now.ToShortDateString(); await addToSet(nameof(Statistics.Extensions),extension); await addToSet(nameof(Statistics.UploadDates),date); var filter = Builders<Statistics>.Filter.Eq(statistic => statistic.Id, id); var update = Builders<Statistics>.Update .Inc(nameof(Statistics.TotalDataStored),file.Size) .Inc(nameof(Statistics.NumberOfFiles),1) .Inc(nameof(Statistics.Extensions)+".$[extension].v",1) .Inc(nameof(Statistics.UploadDates)+".$[date].v",1); var arrayFilters = new List<ArrayFilterDefinition>{ (ArrayFilterDefinition<BsonDocument>) new BsonDocument("extension.k", extension), (ArrayFilterDefinition<BsonDocument>) new BsonDocument("date.k",date) }; var updateOptions = new UpdateOptions { ArrayFilters = arrayFilters, IsUpsert = true }; await _context.Collection.UpdateOneAsync(filter,update,updateOptions); }
public async Task <IActionResult> Delete([FromBody] ZIFile file) { await _statisticsRepository.onFileRemoveAsync(file); return(new OkResult()); }
public async Task <ActionResult <ZIFile> > Post([FromBody] ZIFile file) { await _statisticsRepository.onFileUploadAsync(file); return(new OkObjectResult(file)); }