Example #1
0
        public async Task <IMessage> Riffsy(IInvocationContext context, string message)
        {
            using (HttpClient client = new HttpClient())
            {
                string json =
                    await client.GetStringAsync(
                        $"http://api.riffsy.com/v1/search?key=KXSAYTVBST24&limit=50&tag={WebUtility.UrlEncode(message)}");

                var jsonObj = JsonConvert.DeserializeObject <JObject>(json);
                var url     = jsonObj["results"].Where(x =>
                {
                    try
                    {
                        return((long)x["media"][0]["gif"]["size"] < 6000000);
                    }
                    catch
                    {
                        return(false);
                    }
                }).GetRandom()["media"][0]["gif"]["url"].ToString();

                MemoryStream imageStream = await client.GetStreamAndBufferToMemory(url);

                return(Message.Create(null, new StreamAttachment(imageStream, message + ".gif")));
            }
        }
Example #2
0
 public void SetClientStatus(IInvocationContext context, string status)
 {
     if (context.OriginClient is IClientUserStatus userStatus)
     {
         userStatus.UserStatus = status;
     }
 }
Example #3
0
        private void OnException(IInvocationContext ctx, Exception ex)
        {
            var method = ctx.Method;
            var logger = LogManager.GetLogger(method.DeclaringType.Name);

            if (method.IsSpecialName)
            {
                Log(logger, "Invoke  property " + method.Name + " exception : " + ex.Message);
            }
            else
            {
                Type[] args = Type.GetTypeArray(ctx.Parameters);

                String argMessage = "(";
                foreach (Type arg in args)
                {
                    argMessage += " " + arg.Name;
                }
                argMessage += ")";

                Log(logger, "Invoke method " + method.Name + argMessage + " exception : " + ex.Message);
            }

            logger.Error(ex.Message, ex);
        }
Example #4
0
        private void OnException(IInvocationContext ctx,Exception ex)
        {
            var method = ctx.Method;
            var logger = LogManager.GetLogger(method.DeclaringType.Name);

            if (method.IsSpecialName)
            {
                Log(logger, "Invoke  property " + method.Name + " exception : " + ex.Message);
            }
            else
            {
                Type[] args = Type.GetTypeArray(ctx.Parameters);

                String argMessage = "(";
                foreach (Type arg in args)
                {
                    argMessage += " " + arg.Name;
                }
                argMessage += ")";

                Log(logger, "Invoke method " + method.Name + argMessage + " exception : " + ex.Message);
            }

            logger.Error(ex.Message,ex);
        }
Example #5
0
        public void CommandList(IInvocationContext context, IMessage message)
        {
            ISendable target = context.Raiser;

            if (context.User.Permissions != UserPermission.BotOwner)
            {
                target = context.User;
            }
            StringBuilder sb = new StringBuilder();

            foreach (
                var cmd in
                _commandRegistry.CommandAttributes.OrderBy(x => x.Name)
                .Where(x => x.MinimumPermissionLevel <= context.User.Permissions))
            {
                string args = string.Empty;
                if (!string.IsNullOrEmpty(cmd.Arguments))
                {
                    args = string.Join(" ", cmd.Arguments.Split('|').Select(x => $"[{x.Trim()}]"));
                }
                sb.AppendLine($"{"." + cmd.Name + " " + args}");
            }

            target.Send(context.OriginClient.Features.HasFlag(ClientFeature.Markdown)
                ? Message.Create($"```css\n{sb.ToString()}\n```")
                : Message.Create(sb.ToString()));
        }
        /// <inheritdoc/>
        public object Intercept(IInvocationContext invocationContext)
        {
            var methodInfo = invocationContext.Method;
            var target = _targetFactory(invocationContext.Target);

            return methodInfo.Invoke(target, invocationContext.Parameters);
        }
Example #7
0
 public HandlerInvoker(IFubuRequest request, THandler handler, IInvocationContext context, HandlerInvocation <THandler> invocation) : base(PartialBehavior.Executes)
 {
     _request    = request;
     _handler    = handler;
     _context    = context;
     _invocation = invocation;
 }
Example #8
0
        public async Task <IMessage> ExecuteCommandAsync(string commandName, IInvocationContext context, IMessage message)
        {
            var selectedCommand = GetCommand(commandName);

            if (selectedCommand == null)
            {
                return(null);
            }

            return(await Task.Run(async() =>
            {
                var result = _commandMap[selectedCommand](context, message);

                // Check if the command is actually a task, if so, start that bad boy up and return result.
                if (result is Task)
                {
                    await(Task) result;
                    result = result.GetType().GetRuntimeProperty("Result")?.GetValue(result);
                }

                if (result == null)
                {
                    return Message.Create(String.Empty);
                }

                if (result is IMessage)
                {
                    return (IMessage)result;
                }

                return Message.Create(result.ToString());
            }));
        }
        public void BeforeProceed(IInvocationContext context)
        {
            foreach (var item in context.Arguments)
            {
                if (item == null)
                {
                    continue;
                }

                var itemType = item.GetType();
                if (itemType.IsPrimitive || itemType.IsArray)
                {
                    continue;
                }

                var type      = typeof(ICustomValidator <>).MakeGenericType(item.GetType());
                var validator = (ICustomValidator)DependencyContainer.Container.Resolve(type);
                if (validator == null)
                {
                    continue;
                }

                var result = validator.Validate(item, currentContext.Current.ActionType);
                if (result.IsValid)
                {
                    continue;
                }

                foreach (var errorItem in result.Errors)
                {
                    throw new DenialException(errorItem.ErrorMessage, errorItem.PropertyName);
                    // TODO: throw exception for all error messages
                }
            }
        }
Example #10
0
 public string GreetUser(IInvocationContext context, string user)
 {
     if (string.IsNullOrEmpty(user))
     {
         // Get the user from the invocation context if a user wasn't provided as an argument.
         user = context?.User.Name;
     }
     return($"Hello {user}!");
 }
Example #11
0
        public Task <object> AroundInvoke(IInvocationContext invocationContext)
        {
            if (OnModelCreatingMethod == invocationContext.Method.GetBaseDefinition())
            {
                _entityRegistrar.RegisterEntities((DbModelBuilder)invocationContext.Arguments[0]);
            }

            return(invocationContext.Proceed());
        }
Example #12
0
 public ExceptionHandlerBehavior(IActionBehavior behavior, HandlerChain chain, Envelope envelope, IInvocationContext context, ILogger logger, IFubuRequest request)
 {
     _behavior = behavior;
     _chain    = chain;
     _envelope = envelope;
     _context  = context;
     _logger   = logger;
     _request  = request;
 }
Example #13
0
 public void RaiseIncoming(IInvocationContext context, IMessage message)
 {
     if (context == null || message == null)
     {
         return;
     }
     Log.Trace($"[{context.OriginClient?.Name}] [{context.Channel?.Name}] {context.User?.Name}: {message.Text}");
     Received?.Invoke(this, new MessageReceivedEventArgs(context, message));
 }
 public ExceptionHandlerBehavior(IActionBehavior behavior, HandlerChain chain, Envelope envelope, IInvocationContext context, ILogger logger, IFubuRequest request)
 {
     _behavior = behavior;
     _chain = chain;
     _envelope = envelope;
     _context = context;
     _logger = logger;
     _request = request;
 }
Example #15
0
        public object Intercept(IInvocationContext invocationContext)
        {
            var lazy = invocationContext.Target as ILazy;

            if (lazy != null)
            {
                if (!lazy.Loaded)
                {
                    lazy.Loaded = true;

                    // Perform lazy loading...
                }
            }

            return invocationContext.Proceed();
        }
Example #16
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="ctx"></param>
        private void OnInvocationExecuted(IInvocationContext ctx)
        {
            var method = ctx.Method;
            var logger = LogManager.GetLogger(method.DeclaringType.Name);

            if (method.IsSpecialName)
            {
                Log(logger, "Invoked  property " + method.Name);
            }
            else
            {
                Type[] args = Type.GetTypeArray(ctx.Parameters);

                String argMessage = "(";
                foreach (Type arg in args)
                {
                    argMessage += " " + arg.Name;
                }
                argMessage += ")";

                Log(logger, "Invoked  method " + method.Name + argMessage);
            }
        }
Example #17
0
        public object Intercept(IInvocationContext invocationContext)
        {
            InvocationCount++;

            return invocationContext.Proceed();
        }
Example #18
0
 public BarMock(IInvocationContext<IFoo> context)
 {
     this.context = context;
 }
 public ChainSuccessContinuation(IInvocationContext context)
 {
     _context = context;
 }
 public FakeCommunicationService()
 {
     FakeContext = new MockContext<ICommunicationService>();
 }
 public SendEmailServiceMock(IInvocationContext<ISendEmailService> context)
 {
     _context = context;
 }
Example #22
0
        public object Intercept(IInvocationContext invocationContext)
        {
            object result = null;
            try
            {
                OnInvocationExecuting(invocationContext);
                result = invocationContext.Proceed();
            }
            catch (Exception ex)
            {
                OnException(invocationContext, ex);
            }
            finally
            {
                OnInvocationExecuted(invocationContext);
            }

            return result;
        }
Example #23
0
 public object Intercept(IInvocationContext invocationContext)
 {
     Console.WriteLine("call :" + invocationContext.Method.Name);
     return invocationContext.Proceed();
 }
        /// <inheritdoc/>
        public object Intercept(IInvocationContext invocationContext)
        {
            var methodInfo = invocationContext.Method;

            return methodInfo.Invoke(_target, invocationContext.Parameters);
        }
 public DeviceViewModelMock(IInvocationContext<DeviceViewModel> context, IInvocationContext<Laboratory> labContext)
     : base(new LaboratoryMock(labContext))
 {
     this.context = context;
 }
Example #26
0
 public CloudAuthenticatorMock(IInvocationContext<CloudAuthenticator> context)
 {
     this.context = context;
 }
 public LaboratoryMock(IInvocationContext<Laboratory> context)
 {
     this.context = context;
 }
Example #28
0
 public PropMock(IInvocationContext<IProp> context)
 {
     _context = context;
 }
		public AssemblyScannerMock(IInvocationContext<IAssemblyScanner> context)
		{
			this.context = context;
		}