public object Any(SMessage request)
        {
            var sw = Stopwatch.StartNew();

            if (!request.Defer)
            {
                var results = new List <SMessageReceipt>();
                results.AddRange(Email.Send(request));
                results.AddRange(Facebook.Send(request));
                results.AddRange(Twitter.Send(request));
                Db.InsertAll(results);
            }
            else
            {
                using (var producer = MsgFactory.CreateMessageProducer())
                {
                    Email.CreateMessages(request).ForEach(producer.Publish);
                    Facebook.CreateMessages(request).ForEach(producer.Publish);
                    Twitter.CreateMessages(request).ForEach(producer.Publish);
                }
            }

            return(new SMessageResponse {
                TimeTakenMs = sw.ElapsedMilliseconds,
            });
        }