public void OnMessage(IBot bot, Message message) { if (bot == null || message == null) { throw new ArgumentException(); } AIResponse aiResponse = _aiService.TextRequest(message.Text); if (aiResponse.Result.Action == Data.BotAction.InputUnknown) { throw new UnrecognizableIntentException(); } IAction action = MapAiResponse(aiResponse); action.Message = message; IActionController actionController = GetActionController(action); IActionResponse actionResponse = actionController?.Handle(action); IActionResponseController actionResponseController = GetActionResponseController(actionResponse); actionResponseController?.HandleAsync(bot, actionResponse); }
/// <summary> /// Send any error events from response /// </summary> /// <param name="handler"></param> /// <param name="response"></param> /// <param name="errorKey"></param> public static void RaiseOnResponse(this IMediatorHandler handler, IActionResponse response, string errorKey) { if (handler == null || response == null) { return; } if (response.HasErrors) { response.ErrorMessages.ForEach(async e => { await handler.RaiseEvent(new DomainNotification(EventType.Error, errorKey, e)); }); } if (response.HasWarnings) { response.WarningMessages.ForEach(async e => { await handler.RaiseEvent(new DomainNotification(EventType.Warning, errorKey, e)); }); } if (response.HasInfo) { response.InfoMessages.ForEach(async e => { await handler.RaiseEvent(new DomainNotification(EventType.Info, errorKey, e)); }); } }
public async Task HandleAsync(IBot bot, IActionResponse actionResponseBase) { if (actionResponseBase == null) { throw new ArgumentNullException(); } if (!(actionResponseBase is NearestPokemonActionResponse actionResponse)) { throw new ArgumentException(); } if (actionResponse.SpawnPokemon == null) { throw new ArgumentException("SpawnPokemon cannot be null"); } var msg = _messageService.Generate(actionResponse); try { await bot.SendTextMessageAsync(actionResponse.Action.Message.Chat.Id, msg); await bot.SendLocationAsync( actionResponse.Action.Message.Chat.Id, actionResponse.SpawnPokemon.Latitude, actionResponse.SpawnPokemon.Longitude ); } catch (Exception e) { Console.Error.WriteLine(e.Message); } }
public virtual JsonResult FormSubmited(PricingItem model) { var response = new ActionResponse <bool>(); if (model.CategoryId == 0) { response.Message = string.Format(LocalMessage.NotSelectedWithFormat, LocalMessage.Category); return(Json(response, JsonRequestBehavior.AllowGet)); } if (model.PricingItemUnit == 0) { response.Message = string.Format(LocalMessage.NotSelectedWithFormat, LocalMessage.Unit); return(Json(response, JsonRequestBehavior.AllowGet)); } if (model.IsNull() || !ModelState.IsValid) { response.Message = LocalMessage.InvalidFormData; return(Json(response, JsonRequestBehavior.AllowGet)); } IActionResponse <int> bizResult = model.PricingItemId <= 0 ? bizResult = _pricingItemBusiness.Insert(model) : bizResult = _pricingItemBusiness.Update(model); response.Result = response.IsSuccessful = bizResult.IsSuccessful; response.Message = bizResult.Message; return(Json(response, JsonRequestBehavior.AllowGet)); }
public async Task HandleAsync(IBot bot, IActionResponse actionResponseBase) { if (!(actionResponseBase is AddPokemonFilterActionResponse actionResponse)) { throw new ArgumentException("Action response incorrect type"); } var msg = _messageService.Generate(actionResponse); await bot.SendTextMessageAsync(actionResponse.Action.Message.Chat.Id, msg); }
private bool UpdateState(IActionRequest request, IActionResponse response) { var stateChange = response.Result as IActionProcessingStateChange; var newState = stateChange.NewState; if (!(request is null) && request is IRequestWithState && request.Context.ProcessingState != newState) { _stateManager.Tell(UpdateStateRequest.New(request, response)); return(true); }
/// <summary> /// Supprime un TEntity de manière asynchrone /// </summary> /// <param name="key">Identifiant de TEntity</param> /// <returns>ActionResponse</returns> public virtual async Task <IActionResponse> DeleteAsync(TKey key) { IActionResponse actionResponse = this.NoContent(); try { await this.Repository.DeleteAsync(key); } catch (Exception e) { actionResponse = this.InternalServerError(e); } return(actionResponse); }
public virtual JsonResult FormSubmited(Role model) { var response = new ActionResponse <bool>(); if (model.IsNull() || !ModelState.IsValid) { response.Message = LocalMessage.InvalidFormData; return(Json(response, JsonRequestBehavior.AllowGet)); } IActionResponse <int> bizResult = model.RoleId <= 0 ? bizResult = _roleBusiness.Insert(model) : bizResult = _roleBusiness.Update(model); response.Result = response.IsSuccessful = bizResult.IsSuccessful; response.Message = bizResult.Message; return(Json(response, JsonRequestBehavior.AllowGet)); }
/// <summary> /// Supprime un TEntity /// </summary> /// <param name="key">Identifiant de TEntity></param> /// <returns>ActionResponse</returns> public virtual IActionResponse Delete(TKey key) { IActionResponse actionResponse = this.NoContent(); try { this.Repository.Delete(key); } catch (Exception e) { actionResponse = this.InternalServerError(e); } return(actionResponse); }
public virtual JsonResult FormSubmited(BankCard model) { var response = new ActionResponse <bool>(); model.UserId = (User as ICurrentUserPrincipal).UserId; if (model.IsNull() || !ModelState.IsValid) { response.Message = LocalMessage.InvalidFormData; return(Json(response, JsonRequestBehavior.AllowGet)); } IActionResponse <int> bizResult = model.BankCardId <= 0 ? bizResult = _BankCardBusiness.Insert(model) : bizResult = _BankCardBusiness.Update(model); response.Result = response.IsSuccessful = bizResult.IsSuccessful; response.Message = bizResult.Message; return(Json(response, JsonRequestBehavior.AllowGet)); }
public virtual JsonResult FormSubmited(SmsTemplate model) { var response = new ActionResponse <bool>(); ModelState.Remove(nameof(model.Key)); ModelState.Remove(nameof(model.MessagingType)); if (model.IsNull() || !ModelState.IsValid) { response.Message = LocalMessage.InvalidFormData; return(Json(response, JsonRequestBehavior.AllowGet)); } IActionResponse <SmsTemplate> bizResult = model.SmsTemplateId <= 0 ? bizResult = _SmsTemplateBusiness.Add(model) : bizResult = _SmsTemplateBusiness.Update(model); response.Result = response.IsSuccessful = bizResult.IsSuccessful; response.Message = bizResult.Message; return(Json(response, JsonRequestBehavior.AllowGet)); }
public void MergeResponse(IActionResponse response) { if (!response.Success) { Success = false; //set false if passed response failed } if (response.HasErrors) { response.ErrorMessages.ForEach(m => { if (!ErrorMessages.Contains(m)) { ErrorMessages.Add(m); //add any new messages } }); } if (response.HasWarnings) { response.WarningMessages.ForEach(m => { if (!WarningMessages.Contains(m)) { WarningMessages.Add(m); //add any new messages } }); } if (response.HasInfo) { response.InfoMessages.ForEach(m => { if (!InfoMessages.Contains(m)) { InfoMessages.Add(m); //add any new messages } }); } }
public virtual JsonResult FormSubmited(View model) { var response = new ActionResponse <bool>(); if (model.ParentId > 0) { if (string.IsNullOrEmpty(model.Controller)) { response.Message = LocalMessage.InvalidControllerName; return(Json(response, JsonRequestBehavior.AllowGet)); } if (string.IsNullOrEmpty(model.ActionName)) { response.Message = LocalMessage.InvalidActionName; return(Json(response, JsonRequestBehavior.AllowGet)); } } else { if (string.IsNullOrEmpty(model.Icon)) { response.Message = LocalMessage.InvalidIcon; return(Json(response, JsonRequestBehavior.AllowGet)); } } if (model.IsNull() || !ModelState.IsValid) { response.Message = LocalMessage.InvalidFormData; return(Json(response, JsonRequestBehavior.AllowGet)); } IActionResponse <int> bizResult = model.ViewId <= 0 ? bizResult = _viewBusiness.Insert(model) : bizResult = _viewBusiness.Update(model); response.Result = response.IsSuccessful = bizResult.IsSuccessful; response.Message = bizResult.Message; return(Json(response, JsonRequestBehavior.AllowGet)); }
public UpdateStateRequest(Guid requestId, IActionRequest forRequest, IActionResponse forRequestResponse) : base(requestId, "UpdateState") { ForRequest = forRequest; ForRequestResponse = forRequestResponse; }
public virtual IActionResponseController GetActionResponseController(IActionResponse actionResponse) { Type actionResponseControllerGenericType = typeof(IActionResponseController <>).MakeGenericType(actionResponse.GetType()); return((IActionResponseController)_serviceProvider.GetService(actionResponseControllerGenericType)); }
public static UpdateStateRequest New(IActionRequest forRequest, IActionResponse forRequestResponse) => new UpdateStateRequest(Guid.NewGuid(), forRequest, forRequestResponse);
public void OnNext(IActionResponse value) { Responses.Add(value); }