Пример #1
0
        public async Task HandleRenameDocument(RenameDocument command)
        {
            var aggregate = await _eventStreamReader.GetAggregate <DocumentAggregate>(command.StreamId);

            var @event = aggregate.RenameDocument(command);
            await aggregate.Save(@event);
        }
 public DocumentRenamed RenameDocument(RenameDocument command)
 {
     return(new DocumentRenamed
     {
         EventType = nameof(DocumentRenamed),
         Timstamp = DateTime.UtcNow,
         Name = command.Name
     });
 }
Пример #3
0
        private static async Task Main(string[] args)
        {
            IoC.RegisterServices();
            var commandHandler = new CommandHandler((IEventStreamReader)IoC.ServiceProvider.GetService(typeof(IEventStreamReader)));

            var  streamId = Guid.Parse("e8512419-0183-42c9-b6df-0c4ea603ad00");
            Guid documentId;

            var quit = false;

            while (!quit)
            {
                var key = UI();

                switch (key)
                {
                case "1":
                    var command = new CreateDocument
                    {
                        StreamId  = streamId,
                        Artifacts = new Dictionary <string, string>(),
                        Name      = Guid.NewGuid().ToString()
                    };
                    await commandHandler.HandleCreateDocument(command);

                    Console.WriteLine();
                    Console.WriteLine("Document created.");
                    Console.WriteLine();
                    break;

                case "2":
                    Console.WriteLine();
                    Console.WriteLine("Please, inform the new name of the dcocument:");
                    var name          = Console.ReadLine();
                    var commandRename = new RenameDocument
                    {
                        StreamId = streamId,
                        Name     = name
                    };
                    await commandHandler.HandleRenameDocument(commandRename);

                    Console.WriteLine();
                    Console.WriteLine($"Document renamed");
                    Console.WriteLine();
                    break;

                case "3":
                    Console.WriteLine();
                    var commandUpdate = new UpdateArtifacts
                    {
                        StreamId     = streamId,
                        AddArtifacts = new Dictionary <string, string>
                        {
                            { Guid.NewGuid().ToString(), Guid.NewGuid().ToString() }
                        },
                        RemoveArtifacts = new List <string>()
                    };
                    await commandHandler.HandleUpdateArtifacts(commandUpdate);

                    Console.WriteLine();
                    Console.WriteLine($"Artifacts Updated!");
                    Console.WriteLine();
                    break;

                case "4":
                    Console.WriteLine();
                    Console.WriteLine("Please, inform the approver name");
                    var approverName   = Console.ReadLine();
                    var commandApprove = new ApproveDocument
                    {
                        StreamId = streamId,
                        Approver = approverName
                    };
                    await commandHandler.HandleApproveDocument(commandApprove);

                    Console.WriteLine();
                    Console.WriteLine($"Document approved");
                    Console.WriteLine();
                    break;

                case "5":
                    Console.WriteLine();
                    Console.WriteLine("Please, inform the approver name");
                    var rejecterName  = Console.ReadLine();
                    var commandReject = new RejectDocument
                    {
                        StreamId = streamId,
                        Rejecter = rejecterName
                    };
                    await commandHandler.HandleRejectDocument(commandReject);

                    Console.WriteLine();
                    Console.WriteLine($"Document rejected");
                    Console.WriteLine();
                    break;

                case "6":
                    Console.WriteLine();
                    var commandDelete = new DeleteDocument
                    {
                        StreamId = streamId
                    };
                    await commandHandler.HandleDeleteDocument(commandDelete);

                    Console.WriteLine();
                    Console.WriteLine($"Document deleted");
                    Console.WriteLine();
                    break;

                case "Q":
                    quit = true;
                    break;

                case "q":
                    quit = true;
                    break;

                default:
                    Console.WriteLine();
                    Console.WriteLine("Invalid option, chose a valid command");
                    Console.WriteLine();
                    break;
                }
            }
        }