public async Task <IAssetRegisterVersion> CreateAsync(IAssetRegisterVersion assetRegisterVersion, CancellationToken cancellationToken) { AssetRegisterVersionEntity assetRegisterVersionEntity = new AssetRegisterVersionEntity(assetRegisterVersion); Console.WriteLine($"{DateTime.UtcNow.TimeOfDay.ToString("g")}: Start Associate Entities with Asset Register Version"); assetRegisterVersionEntity.Assets = assetRegisterVersionEntity.Assets?.Select(s => { s.AssetRegisterVersion = assetRegisterVersionEntity; return(s); }).ToList(); Console.WriteLine($"{DateTime.UtcNow.TimeOfDay.ToString("g")}: Finish Associate Entities with Asset Register Version"); using (var context = new AssetRegisterContext(_databaseUrl)) { Console.WriteLine($"{DateTime.UtcNow.TimeOfDay.ToString("g")}: Start Add async"); await context.AssetRegisterVersions.AddAsync(assetRegisterVersionEntity).ConfigureAwait(false); Console.WriteLine($"{DateTime.UtcNow.TimeOfDay.ToString("g")}: Finish Add async"); Console.WriteLine($"{DateTime.UtcNow.TimeOfDay.ToString("g")}: Start Save Changes async"); await context.SaveChangesAsync(cancellationToken).ConfigureAwait(false); Console.WriteLine($"{DateTime.UtcNow.TimeOfDay.ToString("g")}: Finish Save Changes async"); Console.WriteLine($"{DateTime.UtcNow.TimeOfDay.ToString("g")}: Start Marshall Data"); IAssetRegisterVersion result = new AssetRegisterVersion { Id = assetRegisterVersionEntity.Id, ModifiedDateTime = assetRegisterVersionEntity.ModifiedDateTime, Assets = assetRegisterVersionEntity.Assets?.Select(s => new Asset(s) as IAsset).ToList() }; Console.WriteLine($"{DateTime.UtcNow.TimeOfDay.ToString("g")}: Finish Marshall Data"); return(result); } }
public async Task <IList <CreateAssetResponse> > ExecuteAsync(IList <CreateAssetRequest> requests, CancellationToken cancellationToken) { List <IAsset> assets = requests.Select(s => new Asset(s) as IAsset).ToList(); IAssetRegisterVersion assetRegisterVersion = new AssetRegisterVersion { Assets = assets, ModifiedDateTime = DateTime.UtcNow }; Console.WriteLine($" Inserting AssetRegisterVersion Start {DateTime.UtcNow.TimeOfDay.ToString("g")}"); var result = await _assetRegisterVersionCreator.CreateAsync(assetRegisterVersion, cancellationToken).ConfigureAwait(false); if (result == null) { throw new CreateAssetRegisterVersionException(); } Console.WriteLine($" Inserting AssetRegisterVersion Finish {DateTime.UtcNow.TimeOfDay.ToString("g")}"); List <CreateAssetResponse> responses = result.Assets.Select(s => new CreateAssetResponse { Asset = new AssetOutputModel(s) }).ToList(); return(responses); }
private async Task <IList <IAssetRegisterVersion> > CreateAssetRegisterVersions(int count) { IList <IAssetRegisterVersion> assetRegisterVersions = new List <IAssetRegisterVersion>(); for (int i = 0; i < count; i++) { var assetRegisterVersion = new AssetRegisterVersion { Assets = new List <IAsset> { new Asset { Address = $"test {i}" } } }; assetRegisterVersions.Add(await _assetRegisterVersionCreator.CreateAsync(assetRegisterVersion, CancellationToken.None).ConfigureAwait(false)); } return(assetRegisterVersions); }