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); }
public Task SendMessage(IMessageRequest request) { var bytesRequest = request.GetBytes(); return(Task.Run(() => { Write(bytesRequest); })); }
/// <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; }
/// <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); }
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); }
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(); }
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()); }
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; }
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; }
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"); } }
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"); } }
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);
public Task SayHello(IMessageRequest req, IMessageResponse resp) { return(resp.SendAsync(new { msg = "hello , meow ~~!" })); }
[POST("meow")] //按照约定,GET和POST的一大区别是:使用POST方法时,客户端会在消息中携带参数。 public Task SayMeow(IMessageRequest req, IMessageResponse resp) { return(resp.SendTextAsync(" meow~! meow~! " + req.GetTextMessage())); }
public async Task SendBinaryAsync(string socketId, IMessageRequest messageRequest) { await SendAsync(socketId, SerializeToBinary(messageRequest)); }
public async Task SendTextAsync(string socketId, IMessageRequest messageRequest) { await SendAsync(socketId, SerializeToText(messageRequest)); }