コード例 #1
0
ファイル: CommentConfig.cs プロジェクト: omsharp/Amigo-issues
        public void SaveChanges(string filePath)
        {
            using (var file = File.Create(filePath))
                Serializer.Serialize(file, new CommentConfigDTO(this));

            ChangesSaved?.Invoke(this, EventArgs.Empty);
        }
コード例 #2
0
ファイル: BlogContext.cs プロジェクト: GataullinRR/Blog
        public override async Task <int> SaveChangesAsync(CancellationToken cancellationToken = default)
        {
            SavingChanges?.Invoke(_eventHandlerProcessing);
            await _eventHandlerProcessing.WaitAsync();

            var saveChangesResult = await trySaveChangesAsync();

            ChangesSaved?.Invoke(saveChangesResult, _eventHandlerProcessing);
            await _eventHandlerProcessing.WaitAsync();

            return(saveChangesResult.IsSuccessful
                ? saveChangesResult.RowsUpdated
                : throw saveChangesResult.Exception);

            //////////////////////////////////////////

            async Task <SaveChangesResult> trySaveChangesAsync()
            {
                SaveChangesResult result = null;

                try
                {
                    var rowsUpdated = await base.SaveChangesAsync(cancellationToken);

                    result = new SaveChangesResult(rowsUpdated);
                }
                catch (Exception ex)
                {
                    result = new SaveChangesResult(ex);
                }

                return(result);
            }
        }
コード例 #3
0
        public void RaiseSaveEvent(bool changesSaved)
        {
            PostSave(changesSaved);

            ChangesSaved?.Invoke(this, new ChangesSaveEventArgs()
            {
                ChangesSaved = changesSaved
            });
        }
コード例 #4
0
        public async Task SaveChangesAsync()
        {
            SavingChanges?.Invoke(this, new SaveEventArgs {
                TrackedItems = _trackedEntities.Values
            });
            try
            {
                var deleted = new List <GraphDataEntity>();
                foreach (var graphDataEntity in from i in _trackedEntities where i.Value.IsDirty select i)
                {
                    await _connector.ExecuteAsync(graphDataEntity.Value.GetUpdateStatement());

                    foreach (var edges in graphDataEntity.Value.GetEdges())
                    {
                        await edges.SaveChangesAsync();
                    }
                    if (graphDataEntity.Value.IsDeleted)
                    {
                        deleted.Add(graphDataEntity.Value);
                    }
                }
                foreach (var graphDataEntity in from i in _trackedEntities where i.Value.IsDirty select i)
                {
                    foreach (var edges in graphDataEntity.Value.GetEdges())
                    {
                        await edges.SaveChangesAsync();
                    }
                    if (graphDataEntity.Value.IsDeleted)
                    {
                        deleted.Add(graphDataEntity.Value);
                    }
                }
                foreach (var graphDataEntity in deleted)
                {
                    _trackedEntities.TryRemove(graphDataEntity._entityKey, out var d);
                }
                foreach (var graphDataEntity in _trackedEntities)
                {
                    graphDataEntity.Value.Reset(false);
                }
            }
            catch (Exception ex)
            {
                SaveChangesError?.Invoke(this, new SaveEventArgs {
                    TrackedItems = _trackedEntities.Values, Error = ex
                });
            }
            ChangesSaved?.Invoke(this, new SaveEventArgs {
                TrackedItems = _trackedEntities.Values
            });
        }
コード例 #5
0
 private void RaiseChangesSaved(List <OneEntityChanging> changes)
 {
     ChangesSaved?.Invoke(this, new SaveChangesEventArgs(changes));
 }
コード例 #6
0
 /// <summary>Raises the<see
 ///     cref="E:MyBlogLister.BusinessLayer.BusinessLayer.BloggingServiceBase.ChangesSaved" />
 /// event.</summary>
 /// <param name="rowsAffected">(Required.) Integer that specifies the total number of rows affected by the Save operation.</param>
 protected virtual void OnChangesSaved(int rowsAffected) => ChangesSaved?.Invoke(rowsAffected);