public async Task HandleGet_ShouldCallGetOnServiceAndReplyOnContext()
        {
            // Data
            var calendarEventModel = new CalendarEventModel {
                Name = "test_name"
            };
            var getCalendarEventCommand = new GetCalendarEventCommand {
                Model = calendarEventModel
            };
            IEnumerable <CalendarEventModel> calendarEvents = new List <CalendarEventModel>
            {
                calendarEventModel
            };

            //Setup
            _mockCalendarService.Setup(x => x.GetEvent(It.Is <CalendarEventModel>(y => y.Name == getCalendarEventCommand.Model.Name)))
            .Returns(Task.FromResult(calendarEvents)).Verifiable();
            _mockMessageHandlerContext.Setup(x => x.Reply(It.Is <GetResponse>(y => y.Models == calendarEvents), It.IsAny <ReplyOptions>()))
            .Returns(Task.CompletedTask).Verifiable();

            //Test
            var handler = new CalendarEventHandler(_mockCalendarService.Object);
            await handler.Handle(getCalendarEventCommand, _mockMessageHandlerContext.Object);

            //Analysis
            _mockCalendarService.Verify();
            _mockMessageHandlerContext.Verify();
        }
        public async Task <IActionResult> Get([FromBody] CalendarEventModel model)
        {
            var user = await _userManagerWrapper.FindByNameAsync(User.Identity.Name);

            model.UserId = user.Id;
            var getCalendarEventCommand = new GetCalendarEventCommand {
                Model = model
            };
            var sendOptions = new SendOptions();

            sendOptions.SetDestination("LifeManager.Calendar");
            var response = await _endpointInstance.Request <GetResponse>(getCalendarEventCommand, sendOptions).ConfigureAwait(false);

            return(Ok(new { Response = response.Models }));
        }
        public async Task Handle(GetCalendarEventCommand message, IMessageHandlerContext context)
        {
            var events = await _calendarService.GetEvent(message.Model);

            await context.Reply(new GetResponse { Models = events });
        }