コード例 #1
0
ファイル: BasicTests.cs プロジェクト: kouweizhong/VisualRx
        public void ReturnTest()
        {
            IObservable <string> xs;

            using (ScopeFactory.Create())
            {
                xs = Observable.Return("Hello Rx");
                xs = xs.Monitor("Return", 1);
                xs.Subscribe();
            }
            GC.KeepAlive(xs);
        }
コード例 #2
0
ファイル: BasicTests.cs プロジェクト: kouweizhong/VisualRx
        public void IgnoreElementsBasicTest()
        {
            IObservable <int> ys;

            using (ScopeFactory.Create(2))
            {
                var xs = Observable.Range(0, 100).Take(10);
                xs = xs.Monitor("Range", 1);
                ys = xs.IgnoreElements();
                ys = ys.Monitor("Ignore", 2);
                ys.Subscribe();
            }
            GC.KeepAlive(ys);
        }
コード例 #3
0
ファイル: BasicTests.cs プロジェクト: kouweizhong/VisualRx
        public void ContainsTest()
        {
            Random rnd = new Random(Environment.TickCount);
            var    xs  = Observable.Interval(TimeSpan.FromSeconds(0.5))
                         .Take(15)
                         .Select(_ => rnd.Next(7))
                         .Monitor("Source", 1)
                         .Publish();

            using (ScopeFactory.Create(2))
            {
                var ys = xs.Contains(2);
                ys = ys.Monitor("Contains", 2);
                ys.Subscribe();
                xs.Connect();
            }
            GC.KeepAlive(xs);
        }
コード例 #4
0
        public override void Delete(TEntity[] entities)
        {
            Guard.Against <ArgumentNullException>(CurrentUser == null, string.Format("Ошибка удаления бизнес-процесса типа {0}: не задан тек. пользователь", typeof(TEntity)));
            Guard.Against <ArgumentNullException>(ScopeFactory == null, string.Format("Ошибка удаления бизнес-процесса типа {0}: не определена фабрика транзакций", typeof(TEntity)));
            Guard.Against <ArgumentNullException>(DeleteOperation == null, string.Format("Ошибка удаления бизнес-процесса типа {0}: не определена стратегия удаления", typeof(TEntity)));

            if (entities.IsNullOrEmpty())
            {
                return;
            }

            var _scope = ScopeFactory.Create();

            try
            {
                foreach (var entity in entities)
                {
                    ExecuteOperation(DeleteOperation, op =>
                    {
                        op.DeleteEntity(entity);
                    });

                    if (!IsValidLastOperation)
                    {
                        break;
                    }
                }

                if (IsValidLastOperation)
                {
                    _scope.Commit();
                }
            }
            catch (Exception e)
            {
                throw;
            }
            finally
            {
                _scope.Dispose();
            }
        }