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 AssetRegisterVersion(IAssetRegisterVersion assetRegisterVersion)
 {
     Id = assetRegisterVersion.Id;
     ModifiedDateTime = assetRegisterVersion.ModifiedDateTime;
     Assets           = assetRegisterVersion.Assets;
 }
Exemple #3
0
 public AssetRegisterVersionEntity(IAssetRegisterVersion assetRegisterVersion)
 {
     Id = assetRegisterVersion.Id;
     ModifiedDateTime = assetRegisterVersion.ModifiedDateTime;
     Assets           = assetRegisterVersion.Assets?.Select(s => new AssetEntity(s)).ToList();
 }
Exemple #4
0
 public AssetRegisterVersionOutputModel(IAssetRegisterVersion assetRegisterVersion)
 {
     Id        = assetRegisterVersion.Id;
     CreatedAt = assetRegisterVersion.ModifiedDateTime;
 }