Example #1
0
        public static IMessageResponse SoapMessage(string controller, string body, IWebSocketConnection socket)
        {
            if (string.IsNullOrWhiteSpace(controller))
            {
                throw new ArgumentException("API cannot be Empty.");
            }

            var method = WebSocketEntryClass.GetMethod(controller, BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);

            if (method == null)
            {
                throw new ArgumentException(string.Format("API'{0}' cannot found.", controller));
            }

            var type = ReflectHepler.GetMethodTypes(method).FirstOrDefault();

            IMessageRequest request = null;

            if (body != null)
            {
                request = JsonConvert.DeserializeObject(body, type) as IMessageRequest;
                if (request != null)
                {
                    request.Head        = request.Head ?? new MessageHead();
                    request.Head.Socket = socket;
                }
            }
            var response = method.Invoke(null, new object[] { request }) as IMessageResponse;

            if (response != null)
            {
                response.Status = ResponseStatus.Success();
            }
            return(response);
        }
Example #2
0
        public Task SendMessage(IMessageRequest request)
        {
            var bytesRequest = request.GetBytes();

            return(Task.Run(() =>
            {
                Write(bytesRequest);
            }));
        }
Example #3
0
            /// <summary>
            /// 
            /// </summary>
            /// <param name="req"></param>
            /// <returns></returns>
            public IMessageResponse Publish(IMessageRequest req)
            {
                if (req != null)
                {
                    Type type = req.Data != null ? req.Data.GetType() : null;
                    return Repository[req.Topic, type].Publish(req);
                }

                return MessageResult.Empty;
            }
Example #4
0
            /// <summary>
            ///
            /// </summary>
            /// <param name="req"></param>
            /// <returns></returns>
            public IMessageResponse Publish(IMessageRequest req)
            {
                if (req != null)
                {
                    Type type = req.Data != null?req.Data.GetType() : null;

                    return(Repository[req.Topic, type].Publish(req));
                }

                return(MessageResult.Empty);
            }
Example #5
0
        public async Task <T> SendMessageWithResonse <T>(IMessageRequest request) where T : IMessageResponse
        {
            var bytesRequest = request.GetBytes();

            var bytesResponse = await WriteAndRead(bytesRequest);

            var response = Activator.CreateInstance <T>();

            response.Parse(bytesResponse);

            return(response);
        }
Example #6
0
        public IMessageResponse Publish(IMessageRequest req)
        {
            CheckNotDisposed();

            var ctx = new MessageResult(req);
            Queue.Enqueue(ctx);
            if (req.IsAsync)
            {
                ThreadPool.QueueUserWorkItem(s => Executor.Execute());
                return ctx;
            }
            return Executor.Execute();
        }
Example #7
0
        public IMessageResponse Publish(IMessageRequest req)
        {
            CheckNotDisposed();

            var ctx = new MessageResult(req);

            Queue.Enqueue(ctx);
            if (req.IsAsync)
            {
                ThreadPool.QueueUserWorkItem(s => Executor.Execute());
                return(ctx);
            }
            return(Executor.Execute());
        }
Example #8
0
 public VehicleRequest(
     ControllerContext controller,
     VehicleFilter model,
     IMessageRequest <VehicleFilterModel, IEnumerable <DomainModels.Business.VehicleDomain.Vehicle> > request,
     MiddlewareConfiguration middlewareConfiguration,
     Guid correlationId,
     IOperationalUnit operationalUnit)
 {
     _controller              = controller;
     _model                   = model;
     _correlationId           = correlationId;
     _operationalUnit         = operationalUnit;
     _request                 = request;
     _middlewareConfiguration = middlewareConfiguration;
 }
Example #9
0
 public VehicleController(
     ILogger <VehicleController> logger,
     IMediator mediator,
     IMessageCommand messagePublisher,
     IMessageRequest <VehicleFilterModel, IEnumerable <DomainModels.Business.VehicleDomain.Vehicle> > messageRequest,
     IOperationalUnit operationalUnit,
     MiddlewareConfiguration middlewareConfiguration)
 {
     _logger                  = logger;
     _mediator                = mediator;
     _messagePublisher        = messagePublisher;
     _messageRequest          = messageRequest;
     _correlationId           = Guid.NewGuid();
     _operationalUnit         = operationalUnit;
     _middlewareConfiguration = middlewareConfiguration;
 }
 public TrackingController(
     ILogger <TrackingController> logger,
     IMediator mediator,
     ICacheProvider cache,
     IMessageRequest <TrackingFilterModel, IEnumerable <DomainModels.Business.TrackingDomain.Tracking> > messageQuery,
     IOperationalUnit opertationalUnit,
     MiddlewareConfiguration middlewareConfiguration)
 {
     _logger                  = logger;
     _mediator                = mediator;
     _redisCache              = cache;
     _messageQuery            = messageQuery;
     _correlationId           = Guid.NewGuid();
     _opertationalUnit        = opertationalUnit;
     _middlewareConfiguration = middlewareConfiguration;
 }
Example #11
0
 public TrackingRequest(
     ControllerContext controller,
     TrackingFilter model,
     ICacheProvider cache,
     IMessageRequest <TrackingFilterModel, IEnumerable <DomainModels.Business.TrackingDomain.Tracking> > messageQuery,
     MiddlewareConfiguration middlewareConfiguration,
     Guid correlationId,
     IOperationalUnit operationalUnit)
 {
     _cache                   = cache;
     _controller              = controller;
     _correlationId           = correlationId;
     _model                   = model;
     _messageQuery            = messageQuery;
     _opertationalUnit        = operationalUnit;
     _middlewareConfiguration = middlewareConfiguration;
 }
        public string SendSMSMessage(IMessageRequest request)
        {
            Dictionary <string, Amazon.Pinpoint.Model.AddressConfiguration> addresses = new Dictionary <string, Amazon.Pinpoint.Model.AddressConfiguration>();
            bool valid = Helpers.IsPhoneNumberValid(request.PhoneNumber);

            if (valid)
            {
                try
                {
                    string phone = Helpers.GetPhoneDigits(request.PhoneNumber);
                    addresses.Add($"+1{phone}", new Amazon.Pinpoint.Model.AddressConfiguration {
                        ChannelType = Amazon.Pinpoint.ChannelType.SMS
                    });
                    Amazon.Pinpoint.Model.DirectMessageConfiguration messageConfiguration = new Amazon.Pinpoint.Model.DirectMessageConfiguration
                    {
                        SMSMessage = new Amazon.Pinpoint.Model.SMSMessage {
                            Body = request.Message, MessageType = Amazon.Pinpoint.MessageType.TRANSACTIONAL
                        }
                    };
                    Amazon.Pinpoint.Model.MessageRequest messageRequest = new Amazon.Pinpoint.Model.MessageRequest
                    {
                        Addresses            = addresses,
                        MessageConfiguration = messageConfiguration
                    };
                    Amazon.Pinpoint.Model.SendMessagesRequest sendmessagesRequest = new Amazon.Pinpoint.Model.SendMessagesRequest
                    {
                        ApplicationId  = "faaa84bb7f5d4a2a8348837876378e53",
                        MessageRequest = messageRequest
                    };
                    Amazon.Pinpoint.Model.SendMessagesResponse response = this.pinpointService.SendMessagesAsync(sendmessagesRequest).Result;
                    return(response.ResponseMetadata.RequestId);
                }
                catch (Exception ex) {
                    throw ex;
                }
            }
            else
            {
                throw new ArgumentException($"{request.PhoneNumber} is not a valid phone format");
            }
        }
Example #13
0
        public string SendMessage(IMessageRequest request)
        {
            PublishRequest publishRequest = new PublishRequest();
            bool           valid          = Helpers.IsPhoneNumberValid(request.PhoneNumber);

            if (valid)
            {
                try
                {
                    string phone = Helpers.GetPhoneDigits(request.PhoneNumber);
                    publishRequest.Message     = request.Message;
                    publishRequest.PhoneNumber = $"+1{phone}";
                    PublishResponse response = this.snsService.PublishAsync(publishRequest).Result;
                    return(response.MessageId);
                }
                catch (Exception ex) {
                    throw ex;
                }
            }
            else
            {
                throw new ArgumentException($"{request.PhoneNumber} is not a valid phone format");
            }
        }
Example #14
0
 public MessageResult(IMessageRequest req)
 {
     Request = req;
 }
 internal DataStoreRequest(Header header, IMessageRequest body)
 {
     this.Header = header;
     this.Request = body;
 }
 public async Task <IMessageResponse> ProcessRequestAsync(IMessageRequest messageRequest)
 => await ProcessRequest((TMessageRequest)messageRequest);
Example #17
0
 public Task SayHello(IMessageRequest req, IMessageResponse resp)
 {
     return(resp.SendAsync(new { msg = "hello , meow ~~!" }));
 }
Example #18
0
 [POST("meow")] //按照约定,GET和POST的一大区别是:使用POST方法时,客户端会在消息中携带参数。
 public Task SayMeow(IMessageRequest req, IMessageResponse resp)
 {
     return(resp.SendTextAsync(" meow~! meow~! " + req.GetTextMessage()));
 }
Example #19
0
 public async Task SendBinaryAsync(string socketId, IMessageRequest messageRequest)
 {
     await SendAsync(socketId, SerializeToBinary(messageRequest));
 }
Example #20
0
 public async Task SendTextAsync(string socketId, IMessageRequest messageRequest)
 {
     await SendAsync(socketId, SerializeToText(messageRequest));
 }