private void IncrementDownloads(string file) { FileMetaInformation metaToIncrement = _metadataRepository.Get(file); metaToIncrement.DownloadsCounter++; _metadataRepository.Update(metaToIncrement); }
public ICollection <BaseMetadata> SaveValue(IEnumerable <BaseMetadata> metadatas) { var results = new List <BaseMetadata>(); metadatas.ForEach(metadata => { var field = metadataFieldRepository.GetByJsonId(metadata.Field); if (!field.IsNull()) { metadata.Field = field; metadata.IsValid(); if (!field.Validator.IsNull()) { MetadataValidator _validatorResult = null; if (context.TryResolveNamed(field.Validator.Type.ToLower(), typeof(IMetadataValidatorService), out var validatorInfraService)) { _validatorResult = ((IMetadataValidatorService)validatorInfraService).Get(metadata); } else { _validatorResult = field.Validator; } var valid = _validatorResult.IsValid(metadata); if (!valid) { throw new ArgumentException("Valor informado no campo '{0}' no metadata não é válido para o tipo de validador '{1}'" .ToFormat(field.JsonId, field.Validator.Type.GetDescription())); } } BaseMetadata _metadata; var metadataDb = metadataRepository.Get(metadata as T); if (metadataDb.IsNull()) //is new meta { _metadata = metadata.Create(); } else { _metadata = metadataDb.Update(metadata); } metadataRepository.Save(_metadata as T); results.Add(_metadata); } }); return(results); }
public async Task <MetadataResponse> GetStatistics(string itemType) { MetadataType type = itemType.ToLower() switch { "album" => MetadataType.Album, "gif" => MetadataType.Gif, "picture" => MetadataType.Picture, "video" => MetadataType.Video, "tag" => MetadataType.Tag, _ => throw new ArgumentException() }; var aggregate = await _metadataRepository.Get(type); return(new MetadataResponse { ShortDescription = aggregate.ShortDescription, InfoItems = aggregate.MetadataDetails.InfoItems.ToList() }); } }