Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 6
0
        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);
            }
Ejemplo n.º 7
0
        /// <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);
        }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
        /// <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);
        }
Ejemplo n.º 10
0
        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));
        }
Ejemplo n.º 12
0
 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
             }
         });
     }
 }
Ejemplo n.º 13
0
        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));
        }
Ejemplo n.º 14
0
 public UpdateStateRequest(Guid requestId, IActionRequest forRequest, IActionResponse forRequestResponse)
     : base(requestId, "UpdateState")
 {
     ForRequest         = forRequest;
     ForRequestResponse = forRequestResponse;
 }
Ejemplo n.º 15
0
        public virtual IActionResponseController GetActionResponseController(IActionResponse actionResponse)
        {
            Type actionResponseControllerGenericType = typeof(IActionResponseController <>).MakeGenericType(actionResponse.GetType());

            return((IActionResponseController)_serviceProvider.GetService(actionResponseControllerGenericType));
        }
Ejemplo n.º 16
0
 public static UpdateStateRequest New(IActionRequest forRequest, IActionResponse forRequestResponse) => new UpdateStateRequest(Guid.NewGuid(), forRequest, forRequestResponse);
Ejemplo n.º 17
0
 public void OnNext(IActionResponse value)
 {
     Responses.Add(value);
 }