private Concert ConcertWithCurrentDateAndConcertDate(DateTime now, DateTime concertDate)
        {
            SystemDate systemDate = new SystemDate(new DateTime(2017, 12, 01));
            var        concert    = concertFactory.Create("a", "b", "c",
                                                          concertDate, systemDate);

            return(concert);
        }
        public Task Consume(ConsumeContext <CreateConcertCommand> context)
        {
            CreateConcertCommand command = context.Message;

            Logger.LogInformation($"Processing command Create concert: Maximum number of tickets:{command.MaximumNumberOfTickets}, Place: {command.Place}, Title: {command.Title} - started. ");

            try
            {
                Concert concert = ConcertFactory.Create(command.Place, command.MaximumNumberOfTickets, command.Date, command.Title, ConcertRepository.GetNextId());

                ConcertRepository.Add(concert);

                foreach (var @event in concert.Changes)
                {
                    var publisher = EventHandlerFactory.CreatePublisher(@event);
                    publisher.Publish(@event, context);
                }

                Logger.LogInformation($"Processing command Create concert: Maximum number of tickets:{command.MaximumNumberOfTickets}, Place: {command.Place}, Title: {command.Title} - finished successfully. ");
            }
            catch (IntialTicketsCapacityNotSet ticketsCapacityNotSetException)
            {
                Logger.LogError($"{ticketsCapacityNotSetException.Message}. Can not execute command Create concert: Maximum number of tickets:{command.MaximumNumberOfTickets}, Place: {command.Place}, Title: {command.Title}.Command rejected. ");
            }
            return(Task.CompletedTask);
        }