示例#1
0
		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);
		}
示例#2
0
		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);
		}
示例#3
0
        public async Task <IActionResult> Delete([FromBody] ZIFile file)
        {
            await _statisticsRepository.onFileRemoveAsync(file);

            return(new OkResult());
        }
示例#4
0
        public async Task <ActionResult <ZIFile> > Post([FromBody] ZIFile file)
        {
            await _statisticsRepository.onFileUploadAsync(file);

            return(new OkObjectResult(file));
        }