public Asset CreateAsset(object assetValue, string path) { path = Paths.GetProjectRelativePath(path); var asset = GetAsset(path); if (asset != null) { asset.Importer.Value = assetValue; asset.Importer.SaveAsset(); asset.Update(); AssetUpdated?.Invoke(path); } else { asset = new Asset(path); asset.Importer.Value = assetValue; asset.Importer.SaveAsset(); asset.Update(); AddAssetInternal(asset); } AssetGuidManager.AddNewGuid(asset.Guid, asset.Path, asset.Hash); if (!IsEditingAssets) { AssetGuidManager.Save(); } return(asset); }
/// <summary> /// Deletes a computer from the database. /// </summary> /// <param name="asset">The computer to be deleted.</param> public override void DeleteAsset(Computer asset) { Db.Remove(asset); Db.SaveChanges(); AssetUpdated?.Invoke(); }
/// <summary> /// Adds a new computer to the database. /// </summary> /// <param name="assets">The computer to be added</param> public override void AddAssets(IEnumerable <Computer> assets) { Db.AddRange(assets); Db.SaveChanges(); AssetUpdated?.Invoke(); }
protected Task On(AssetUpdated @event, EnvelopeHeaders headers) { return(Collection.UpdateAsync(@event, headers, a => { SimpleMapper.Map(@event, a); })); }
public async Task Should_backup_updated_asset() { var @event = new AssetUpdated { AssetId = Guid.NewGuid(), FileVersion = 3 }; await TestBackupEventAsync(@event, @event.FileVersion); }
public async Task Should_restore_updated_asset() { var @event = new AssetUpdated { AssetId = Guid.NewGuid(), FileVersion = 3 }; await TestRestoreAsync(@event, @event.FileVersion); }
public async Task Should_backup_updated_asset_with_missing_file() { var @event = new AssetUpdated { AssetId = DomainId.NewGuid(), FileVersion = 3 }; await TestBackupFailedAsync(@event, @event.FileVersion); }
/// <summary> /// This should be called whenever asset value was modified on disk. Updates hashes and asset value while keeping the reference /// </summary> private void UpdateAssetInternal(Asset oldAsset) { oldAsset.UpdateValueFromDisk(); GuidHashTable[oldAsset.Guid] = oldAsset.Hash; AssetGuidManager.AddNewGuid(oldAsset.Guid, oldAsset.Path, oldAsset.Hash); AssetUpdated?.Invoke(oldAsset.Path); }
public override void AddAsset(Computer asset) { if (asset.AssetRecords.Count == 0) { asset.ComputerRecords.Add(InitialRecord(asset)); } Db.Add(asset); Db.SaveChanges(); AssetUpdated?.Invoke(); }
public void SaveExistngAsset(Asset existingAsset, object newValue) { existingAsset.Importer.Value = newValue; existingAsset.Importer.SaveAsset(); existingAsset.Update(); AssetUpdated?.Invoke(existingAsset.Path); AssetGuidManager.AddNewGuid(existingAsset.Guid, existingAsset.Path, existingAsset.Hash); if (!IsEditingAssets) { AssetGuidManager.Save(); } }
public async Task Should_not_repair_updated_asset_if_found() { var @event = new AssetUpdated { AppId = appId, AssetId = DomainId.NewGuid(), FileVersion = 3 }; SetupEvent(@event); A.CallTo(() => assetFileStore.GetFileSizeAsync(appId.Id, @event.AssetId, 3, default)) .Returns(100); await sut.RepairAsync(); A.CallTo(() => assetFileStore.UploadAsync(appId.Id, @event.AssetId, 3, A <Stream> ._, default)) .MustNotHaveHappened(); }
public async Task Should_repair_updated_asset_if_not_found() { var @event = new AssetUpdated { AppId = appId, AssetId = DomainId.NewGuid(), FileVersion = 3 }; SetupEvent(@event); A.CallTo(() => assetFileStore.GetFileSizeAsync(appId.Id, @event.AssetId, 3, null, default)) .Throws(new AssetNotFoundException("file")); await sut.RepairAsync(); A.CallTo(() => assetFileStore.UploadAsync(appId.Id, @event.AssetId, 3, null, A <Stream> ._, true, default)) .MustHaveHappened(); }
protected Task On(AssetUpdated @event, EnvelopeHeaders headers) { return(UpdateSizeAsync(@event.AppId.Id, headers.Timestamp().ToDateTimeUtc().Date, @event.FileSize, 0)); }
protected void On(AssetUpdated @event) { fileVersion = @event.FileVersion; totalSize += @event.FileSize; }
protected void On(AssetUpdated @event) { SimpleMapper.Map(@event, this); TotalSize += @event.FileSize; }
/// <summary> /// This method is invoked by a property change in a computer, /// which saves the changes to the database and invokes the AssetUpdated event. /// </summary> protected override void OnAssetUpdated() { Db.SaveChanges(); AssetUpdated?.Invoke(); }