public void Any(PostObjectToChannel request) { if (request.ToUserId != null) { if (request.CustomType != null) { ServerEvents.NotifyUserId(request.ToUserId, request.Selector ?? Selector.Id <CustomType>(), request.CustomType); } if (request.SetterType != null) { ServerEvents.NotifyUserId(request.ToUserId, request.Selector ?? Selector.Id <SetterType>(), request.SetterType); } } else { if (request.CustomType != null) { ServerEvents.NotifyChannel(request.Channel, request.Selector ?? Selector.Id <CustomType>(), request.CustomType); } if (request.SetterType != null) { ServerEvents.NotifyChannel(request.Channel, request.Selector ?? Selector.Id <SetterType>(), request.SetterType); } } }
public void Any(PostRawToChannel request) { if (!IsAuthenticated && AppSettings.Get("LimitRemoteControlToAuthenticatedUsers", false)) { throw new HttpError(HttpStatusCode.Forbidden, "You must be authenticated to use remote control."); } // Ensure the subscription sending this notification is still active var sub = ServerEvents.GetSubscriptionInfo(request.From); if (sub == null) { throw HttpError.NotFound("Subscription {0} does not exist".Fmt(request.From)); } // Check to see if this is a private message to a specific user if (request.ToUserId != null) { // Only notify that specific user ServerEvents.NotifyUserId(request.ToUserId, request.Selector, request.Message); } else { // Notify everyone in the channel for public messages ServerEvents.NotifyChannel(request.Channel, request.Selector, request.Message); } }
public NotifyResponse Post(NotifyUserAuthIdRequest request) { NotifyResponse res = new NotifyResponse(); try { Console.WriteLine("Reached in NotifyUserAuthIdRequest"); if (!String.IsNullOrEmpty(request.To_UserAuthId)) { if (request.ToChannel == null) { ServerEvents.NotifyUserId(request.To_UserAuthId, request.Selector, request.Msg); } else { foreach (string channel in request.ToChannel) { ServerEvents.NotifyUserId(request.To_UserAuthId, request.Selector, request.Msg); } } } else { Console.WriteLine("UserAuthId doesn't Exist"); res.ResponseStatus.Message = "UserAuthId doesn't Exist"; } } catch (Exception e) { Console.WriteLine(e.Message + e.StackTrace); res.ResponseStatus.Message = e.Message; } return(res); }
public object Any(PostChatToChannel request) { // Ensure the subscription sending this notification is still active var sub = ServerEvents.GetSubscriptionInfo(request.From); if (sub == null) { throw HttpError.NotFound("Subscription {0} does not exist".Fmt(request.From)); } var channel = request.Channel; // Create a DTO ChatMessage to hold all required info about this message var msg = new ChatMessage { Id = ChatHistory.GetNextMessageId(channel), Channel = request.Channel, FromUserId = sub.UserId, FromName = sub.DisplayName, Message = request.Message, }; // Check to see if this is a private message to a specific user if (request.ToUserId != null) { // Mark the message as private so it can be displayed differently in Chat msg.Private = true; // Send the message to the specific user Id ServerEvents.NotifyUserId(request.ToUserId, request.Selector, msg); // Also provide UI feedback to the user sending the private message so they // can see what was sent. Relay it to all senders active subscriptions var toSubs = ServerEvents.GetSubscriptionInfosByUserId(request.ToUserId); foreach (var toSub in toSubs) { // Change the message format to contain who the private message was sent to msg.Message = "@{0}: {1}".Fmt(toSub.DisplayName, msg.Message); ServerEvents.NotifySubscription(request.From, request.Selector, msg); } } else { // Notify everyone in the channel for public messages ServerEvents.NotifyChannel(request.Channel, request.Selector, msg); } if (!msg.Private) { ChatHistory.Log(channel, msg); } return(msg); }