async public Task <IActionResult> Post([FromBody] Event body) { if (body.Object != null && body.Object != "page") { return(NotFound()); } var entry = body.Entry.First(); var user = await _userRepo.Get(entry.Messaging.First().Sender.Id); try { var message = entry.Messaging.First().Message; var messageText = message.QuickReply?.Payload ?? message.Text; var(response, updatedUser) = await _commandFactory .Create(user, messageText) .Process(); await response.SendMessage(updatedUser.Id, _messanger); updatedUser.Gmt = await _messanger.QueryUserTimezone(updatedUser.Id); await _userRepo.Save(updatedUser); return(Ok()); } catch (Exception) { await new WebClient.TextMessage("Sorry, something went wrong") .SendMessage(user.Id, _messanger); return(Ok()); } }