public async Task CreateParsingStatusesForNewFile(Guid fileId, string md5) { ArgumentValidator.Requires(() => fileId != default, nameof(fileId)); ArgumentValidator.NotNullOrWhiteSpace(() => md5); var allMetadataSources = typeof(MetadataSource).GetEnumValues().Cast <MetadataSource>(); foreach (var metadataSource in allMetadataSources) { var check = await _parsingStatusRepository.Get(fileId, metadataSource); if (check != null) { _logger.LogWarning( "Can't create a parsing status with duplicate key {FileId}, {Source}", fileId, metadataSource); continue; } var parsingStatus = ParsingStatus.Create(fileId, md5, metadataSource); await _parsingStatusRepository.Add(parsingStatus); } }
public static ParsingStatus Create(Guid fileId, string md5, MetadataSource source) { ArgumentValidator.Requires(() => fileId != default, nameof(fileId)); ArgumentValidator.NotNullOrWhiteSpace(() => md5); ArgumentValidator.IsEnumDefined(() => source); var created = new ParsingStatus(fileId, md5, source, DateTimeOffset.Now, Status.SearchRequested); created.Add(new ParsingStatusCreated(created)); return(created); }