Esempio n. 1
0
        static async Task Main(string[] args)
        {
            var order = new Order
            {
                Products = new List <Product>
                {
                    new Product {
                        Title = "Пицца", Price = 100
                    },
                    new Product {
                        Title = "Хот-дог", Price = 30
                    },
                }
            };

            var jsonOrder = JsonConvert.SerializeObject(order);

            //var result = await client.PostAsync("API_LINK", new StringContent(jsonOrder, Encoding.UTF8));

            using var connection = await EventStoreHelpers.CreateConnection();

            var streamName = $"order-{order.Id}";

            var evt = EventStoreHelpers.CreateEvent(nameof(EventType.OrderCreated), order);

            await Task.Delay(TimeSpan.FromSeconds(3));

            await connection.AppendToStreamAsync(streamName, ExpectedVersion.Any, evt);
        }
Esempio n. 2
0
        static async Task Main(string[] args)
        {
            #pragma warning disable 4014
            Task.Run(async() => await RunStateChecker());
            #pragma warning restore 4014

            using var connection = await EventStoreHelpers.CreateConnection();

            await using var context = new AccountDbContext();

            await Task.Delay(TimeSpan.FromSeconds(3));

            //var withdrawAmount = 580;

            //var accountCheckpoint = await context
            //    .AccountStateCheckpoints
            //    .Include(checkpoint => checkpoint.AccountState)
            //    .FirstOrDefaultAsync(checkpoint => checkpoint.AccountStateId == AccountGuid);

            //if (accountCheckpoint.AccountState.MoneyAmount - withdrawAmount >= 0)
            //{
            //    var withdrawEvt = EventStoreHelpers.CreateEvent("Withdrawal", new
            //    {
            //        amount = withdrawAmount
            //    });

            //    var expectedEventNumber = accountCheckpoint.LastProcessedEventNumber;

            //    await connection.AppendToStreamAsync(StreamName, expectedEventNumber, withdrawEvt);
            //}

            Console.ReadLine();
        }
Esempio n. 3
0
        static async Task RunStateChecker()
        {
            using var context = new AccountDbContext();
            await context.Database.EnsureCreatedAsync();

            using var connection = await EventStoreHelpers.CreateConnection();

            await ProcessLastEvents(connection, context);
        }
Esempio n. 4
0
        static async Task Main(string[] args)
        {
            _connection = await EventStoreHelpers.CreateConnection();

            var stream = "$et-OrderCreated";

            await _connection.SubscribeToLinkedStream(stream, ProcessEvent);

            Console.WriteLine("processing events");
            Console.ReadLine();
        }
Esempio n. 5
0
        static async Task Main(string[] args)
        {
            using var connection = await EventStoreHelpers.CreateConnection();

            var stream = "my-first-stream";

            await connection.SubscribeToStream(stream, ProcessEvent);

            Console.WriteLine("processing events");
            Console.ReadLine();
            var pm    = EventStoreHelpers.CreateProjectionsManager();
            var creds = EventStoreHelpers.GetCredentials();

            var projection  = "money-for-accounts";
            var partitionId = "account-e3f62a80-a504-4cfb-97f1-b9a003535da8";
            var result      = await pm.GetPartitionResultAsync(projection, partitionId, creds);

            Console.WriteLine(result);

            // projection create from file sample
            //var fileStr = await File.ReadAllTextAsync("test.js");
            //await pm.CreateContinuousAsync("test", fileStr);
        }