/// <summary> /// Open up a port on the gateway. /// </summary> void Open(int port, bool tcp, OnPortRequest callback) { int id = (port << 8) | (tcp ? 1 : 0); if (port > 0 && !mPorts.Contains(id) && mStatus != Status.Failure) { mPorts.Add(id); ExtraParams xp = new ExtraParams(); xp.callback = callback; xp.port = port; xp.protocol = tcp ? ProtocolType.Tcp : ProtocolType.Udp; xp.action = "AddPortMapping"; xp.request = "<NewRemoteHost></NewRemoteHost>\n" + "<NewExternalPort>" + port + "</NewExternalPort>\n" + "<NewProtocol>" + (tcp ? "TCP" : "UDP") + "</NewProtocol>\n" + "<NewInternalPort>" + port + "</NewInternalPort>\n" + "<NewInternalClient>" + Tools.localAddress + "</NewInternalClient>\n" + "<NewEnabled>1</NewEnabled>\n" + "<NewPortMappingDescription>" + name + "</NewPortMappingDescription>\n" + "<NewLeaseDuration>0</NewLeaseDuration>\n"; xp.th = new Thread(OpenRequest); lock (mThreads) mThreads.Add(xp.th); xp.th.Start(xp); } else if (callback != null) { callback(this, port, tcp ? ProtocolType.Tcp : ProtocolType.Udp, false); } }
private void NotifyAbountGroupOccupantsOnUpdate(IList <int> currentOccupantsIds, IList <int> addedOccupantsIds, IList <int> deletedOccupantsIds, DateTime updatedAt) { if (currentOccupantsIds == null) { throw new ArgumentNullException(nameof(currentOccupantsIds)); } string currentOccupants = string.Join(",", currentOccupantsIds); var extraParams = new ExtraParams(); extraParams.AddNew(ExtraParamsList.save_to_history, "1"); extraParams.AddNew(ExtraParamsList.dialog_id, dialogId); extraParams.AddNew(ExtraParamsList.notification_type, NotificationTypes.GroupUpdate.ToIntString()); extraParams.AddNew(ExtraParamsList.current_occupant_ids, currentOccupants); extraParams.AddNew(ExtraParamsList.room_updated_date, updatedAt.ToUnixEpoch().ToString()); extraParams.AddNew(ExtraParamsList.dialog_update_info, DialogUpdateInfos.ModifiedOccupantsList.ToIntString()); if (addedOccupantsIds != null && addedOccupantsIds.Any()) { string addedOccupants = string.Join(",", addedOccupantsIds); extraParams.AddNew(ExtraParamsList.added_occupant_ids, addedOccupants); } if (deletedOccupantsIds != null && deletedOccupantsIds.Any()) { string deletedOccupants = string.Join(",", deletedOccupantsIds); extraParams.AddNew(ExtraParamsList.deleted_occupant_ids, deletedOccupants); } quickbloxClient.ChatXmppClient.SendMessage(groupJid, "Notification Message", extraParams, dialogId, null, MessageType.Groupchat); }
/// <summary> /// Stop port forwarding that was set up earlier. /// </summary> void Close(int port, bool tcp, OnPortRequest callback) { int id = (port << 8) | (tcp ? 1 : 0); if (port > 0 && mPorts.Remove(id) && mStatus == Status.Success) { ExtraParams xp = new ExtraParams(); xp.callback = callback; xp.port = port; xp.protocol = tcp ? ProtocolType.Tcp : ProtocolType.Udp; xp.action = "DeletePortMapping"; xp.request = "<NewRemoteHost></NewRemoteHost>\n" + "<NewExternalPort>" + port + "</NewExternalPort>\n" + "<NewProtocol>" + (tcp ? "TCP" : "UDP") + "</NewProtocol>\n"; if (callback != null) { xp.th = new Thread(CloseRequest); lock (mThreads) { mThreads.Add(xp.th); xp.th.Start(xp); } } else { CloseRequest(xp); } } else if (callback != null) { callback(this, port, tcp ? ProtocolType.Tcp : ProtocolType.Udp, false); } }
/// <summary> /// Sends a Message to other user. /// </summary> /// <param name="message">Message text</param> /// <returns>Is operation successful</returns> public void SendMessage(string message) { var extraParams = new ExtraParams(); extraParams.AddNew(ExtraParamsList.save_to_history, "1"); extraParams.AddNew(ExtraParamsList.dialog_id, dialogId); quickbloxClient.ChatXmppClient.SendMessage(groupJid, message, extraParams, dialogId, null, MessageType.Groupchat); }
public async Task <IActionResult> GetExtras(int hotelId, [FromQuery] ExtraParams extraParams) { var extras = await _repo.GetExtras(extraParams, hotelId); var extrasToReturn = _mapper.Map <IEnumerable <ExtraForListDto> >(extras); Response.AddPagination(extras.CurrentPage, extras.PageSize, extras.TotalCount, extras.TotalPages); return(Ok(extrasToReturn)); }
/// <summary> /// Sends an attachemnt to another user. /// </summary> /// <param name="attachment">Attachment</param> /// <returns></returns> public void SendAttachemnt(AttachmentTag attachment) { var extraParams = new ExtraParams(); extraParams.AddNew(ExtraParamsList.save_to_history, "1"); extraParams.AddNew(ExtraParamsList.dialog_id, dialogId); extraParams.Add(attachment); quickbloxClient.ChatXmppClient.SendMessage(groupJid, "Attachment", extraParams, dialogId, null, MessageType.Groupchat); }
private void SendFriendsNotification(string messageText, NotificationTypes notificationType) { var extraParams = new ExtraParams(); extraParams.AddNew(ExtraParamsList.save_to_history, "1"); extraParams.AddNew(ExtraParamsList.dialog_id, dialogId); extraParams.AddNew(ExtraParamsList.notification_type, ((int)notificationType).ToString()); quickbloxClient.ChatXmppClient.SendMessage(otherUserJid, messageText, extraParams, dialogId, null); }
/// <summary> /// Open up a port on the gateway. /// </summary> void Open(int port, bool tcp, OnPortRequest callback) { // IPv6 doesn't need port forwarding if (TcpProtocol.defaultListenerInterface.AddressFamily == AddressFamily.InterNetworkV6) { return; } if (port > 0) { int id = (port << 8) | (tcp ? 1 : 0); if (!mPorts.Contains(id) && mStatus != Status.Failure) { if (mStatus == Status.Inactive) { Start(); WaitForThreads(); } string addr = Tools.localAddress.ToString(); if (addr == "127.0.0.1") { return; } mPorts.Add(id); ExtraParams xp = new ExtraParams(); xp.callback = callback; xp.port = port; xp.protocol = tcp ? ProtocolType.Tcp : ProtocolType.Udp; xp.action = "AddPortMapping"; xp.request = "<NewRemoteHost></NewRemoteHost>\n" + "<NewExternalPort>" + port + "</NewExternalPort>\n" + "<NewProtocol>" + (tcp ? "TCP" : "UDP") + "</NewProtocol>\n" + "<NewInternalPort>" + port + "</NewInternalPort>\n" + "<NewInternalClient>" + addr + "</NewInternalClient>\n" + "<NewEnabled>1</NewEnabled>\n" + "<NewPortMappingDescription>" + name + "</NewPortMappingDescription>\n" + "<NewLeaseDuration>0</NewLeaseDuration>\n"; xp.th = new Thread(OpenRequest); lock (mThreads) mThreads.Add(xp.th); xp.th.Start(xp); return; } } if (callback != null) { callback(this, port, tcp ? ProtocolType.Tcp : ProtocolType.Udp, false); } }
/// <summary> /// Open up a port on the gateway. /// </summary> private void Open(int port, bool tcp, OnPortRequest callback) { int id = (port << 8) | (tcp ? 1 : 0); if (port > 0 && !mPorts.Contains(id) && mStatus != Status.Failure) { ListLessGarb <IPAddress> debug = NetworkUtility.localAddresses; if (mDiscover == null) { mDiscover = new Thread(ThreadDiscover); mThreads.Add(mDiscover); mDiscover.Start(mDiscover); } string addr = NetworkUtility.localAddress.ToString(); if (addr == "127.0.0.1") { return; } mPorts.Add(id); ExtraParams xp = new ExtraParams(); xp.callback = callback; xp.port = port; xp.protocol = tcp ? ProtocolType.Tcp : ProtocolType.Udp; xp.action = "AddPortMapping"; xp.request = "<NewRemoteHost></NewRemoteHost>\n" + "<NewExternalPort>" + port + "</NewExternalPort>\n" + "<NewProtocol>" + (tcp ? "TCP" : "UDP") + "</NewProtocol>\n" + "<NewInternalPort>" + port + "</NewInternalPort>\n" + "<NewInternalClient>" + addr + "</NewInternalClient>\n" + "<NewEnabled>1</NewEnabled>\n" + "<NewPortMappingDescription>" + name + "</NewPortMappingDescription>\n" + "<NewLeaseDuration>0</NewLeaseDuration>\n"; xp.th = new Thread(OpenRequest); lock (mThreads) { mThreads.Add(xp.th); } xp.th.Start(xp); Debug.Log("[UPnP:Open(" + port + ", " + (tcp ? "TCP" : "UDP") + ")] -> Requested"); } else if (callback != null) { callback(this, port, tcp ? ProtocolType.Tcp : ProtocolType.Udp, false); } }
/// <summary> /// Sends notification group chat Message that group chat name has been changed. /// </summary> /// <param name="groupName">New group chat name</param> /// <param name="updatedAt">DateTime when a group was updated (from update response)</param> /// <returns>Is operation successful</returns> public void NotifyGroupNameChanged(string groupName, DateTime updatedAt) { var extraParams = new ExtraParams(); extraParams.AddNew(ExtraParamsList.save_to_history, "1"); extraParams.AddNew(ExtraParamsList.dialog_id, dialogId); extraParams.AddNew(ExtraParamsList.notification_type, NotificationTypes.GroupUpdate.ToIntString()); extraParams.AddNew(ExtraParamsList.room_name, groupName); extraParams.AddNew(ExtraParamsList.room_updated_date, updatedAt.ToUnixEpoch().ToString()); extraParams.AddNew(ExtraParamsList.dialog_update_info, DialogUpdateInfos.UpdatedDialogName.ToIntString()); quickbloxClient.ChatXmppClient.SendMessage(groupJid, "Notification Message", extraParams, dialogId, null, MessageType.Groupchat); }
/// <summary> /// Open or close request. /// </summary> void SendRequest(ExtraParams xp) { string response = (mStatus == Status.Success) ? SendRequest(xp.action, xp.request, 10000, 3) : null; if (xp.callback != null) { xp.callback(this, xp.port, xp.protocol, !string.IsNullOrEmpty(response)); } if (xp.th != null) { lock (mThreads) mThreads.Remove(xp.th); } }
/// <summary> /// Open up a port on the gateway. /// </summary> void Open(int port, bool tcp, OnPortRequest callback) { if (port > 0) { int id = (port << 8) | (tcp ? 1 : 0); if (!mPorts.Contains(id) && mStatus != Status.Failure) { if (mStatus == Status.Inactive) { Start(); WaitForThreads(); } string addr = Tools.localAddress.ToString(); if (addr == "127.0.0.1") { return; } #if UNITY_EDITOR UnityEngine.Debug.Log("Opening " + (tcp ? "TCP" : "UDP") + " port " + port); #endif mPorts.Add(id); ExtraParams xp = new ExtraParams(); xp.callback = callback; xp.port = port; xp.protocol = tcp ? ProtocolType.Tcp : ProtocolType.Udp; xp.action = "AddPortMapping"; xp.request = "<NewRemoteHost></NewRemoteHost>\n" + "<NewExternalPort>" + port + "</NewExternalPort>\n" + "<NewProtocol>" + (tcp ? "TCP" : "UDP") + "</NewProtocol>\n" + "<NewInternalPort>" + port + "</NewInternalPort>\n" + "<NewInternalClient>" + addr + "</NewInternalClient>\n" + "<NewEnabled>1</NewEnabled>\n" + "<NewPortMappingDescription>" + name + "</NewPortMappingDescription>\n" + "<NewLeaseDuration>0</NewLeaseDuration>\n"; xp.th = new Thread(OpenRequest); lock (mThreads) mThreads.Add(xp.th); xp.th.Start(xp); return; } } if (callback != null) { callback(this, port, tcp ? ProtocolType.Tcp : ProtocolType.Udp, false); } }
private NotificationTypes GetNotificationType(XElement extraParams) { var notificationType = extraParams.Element(ExtraParams.GetXNameFor(ExtraParamsList.notification_type)); if (notificationType != null) { int intValue; if (int.TryParse(notificationType.Value, out intValue)) { if (Enum.IsDefined(typeof(NotificationTypes), intValue)) { return((NotificationTypes)intValue); } } } return(default(NotificationTypes)); }
private bool CheckIsSystemMessage(Xmpp.Im.Message xmppXmppMessage) { if (xmppXmppMessage.Type != Xmpp.Im.MessageType.Headline) { return(false); } if (xmppXmppMessage.ExtraParameters != null) { var moduleIdentifier = xmppXmppMessage.ExtraParameters.Element(ExtraParams.GetXNameFor(ExtraParamsList.moduleIdentifier)); if (moduleIdentifier == null || moduleIdentifier.Value != SystemMessage.SystemMessageModuleIdentifier) { return(false); } } return(true); }
private void FillUsualMessageExtraParamsFields(XElement extraParams, GeneralDataModel.Models.Message result) { if (extraParams != null) { result.ChatDialogId = GetExtraParam(extraParams, ExtraParamsList.dialog_id); var dateSent = extraParams.Element(ExtraParams.GetXNameFor(ExtraParamsList.date_sent)); if (dateSent != null) { long longValue; if (long.TryParse(dateSent.Value, out longValue)) { result.DateSent = longValue; } } var stringIntListConverter = new StringIntListConverter(); result.NotificationType = GetNotificationType(extraParams); result.RoomPhoto = GetExtraParam(extraParams, ExtraParamsList.room_photo); result.RoomName = GetExtraParam(extraParams, ExtraParamsList.room_name); result.CurrentOccupantsIds = stringIntListConverter.ConvertToIntList(GetExtraParam(extraParams, ExtraParamsList.current_occupant_ids)); result.AddedOccupantsIds = stringIntListConverter.ConvertToIntList(GetExtraParam(extraParams, ExtraParamsList.added_occupant_ids)); result.DeletedOccupantsIds = stringIntListConverter.ConvertToIntList(GetExtraParam(extraParams, ExtraParamsList.deleted_occupant_ids)); result.ExtraParameters = extraParams; double roomUpdateDate; if (Double.TryParse(GetExtraParam(extraParams, ExtraParamsList.room_updated_date), out roomUpdateDate)) { result.RoomUpdateDate = roomUpdateDate; } var deletedId = GetExtraParam(extraParams, ExtraParamsList.deleted_id); if (deletedId != null) { int deletedIdInt; if (int.TryParse(deletedId, out deletedIdInt)) { result.DeletedId = deletedIdInt; } } } }
private void FillAttachments(XElement extraParams, GeneralDataModel.Models.Message result) { if (extraParams != null) { var attachmentParam = extraParams.Element(ExtraParams.GetXNameFor(ExtraParamsList.attachment)); if (attachmentParam != null) { var attachemnt = new Attachment { Name = GetAttributeValue(attachmentParam, XName.Get("name")), Id = GetAttributeValue(attachmentParam, XName.Get("id")), Type = GetAttributeValue(attachmentParam, XName.Get("type")), Url = GetAttributeValue(attachmentParam, XName.Get("url")) }; result.Attachments = new Attachment[] { attachemnt }; } } }
public async Task <PagedList <Extra> > GetExtras(ExtraParams extraParams, int hotelID) { var extras = _context.Extras.Where(u => u.HotelId == hotelID).OrderBy(u => u.ExtraName).AsQueryable(); if (!string.IsNullOrEmpty(extraParams.OrderBy)) { switch (extraParams.OrderBy) { case "ExtraType": extras = extras.OrderBy(u => u.ExtraType).ThenBy(u => u.ExtraName); break; default: extras = extras.OrderBy(u => u.ExtraName); break; } } return(await PagedList <Extra> .CreateAsync(extras, extraParams.PageNumber, extraParams.PageSize)); }
private void SendGroupInfoSystemMessage(int userId, Dialog dialogInfo) { var extraParams = new ExtraParams(); extraParams.AddNew(ExtraParamsList.moduleIdentifier, SystemMessage.SystemMessageModuleIdentifier); extraParams.AddNew(ExtraParamsList.notification_type, NotificationTypes.GroupCreate.ToIntString()); extraParams.AddNew(ExtraParamsList.date_sent, DateTime.UtcNow.ToUnixEpoch().ToString()); extraParams.AddNew(ExtraParamsList.room_updated_date, dialogInfo.UpdateAt.ToUnixEpoch().ToString()); extraParams.AddNew(ExtraParamsList.dialog_id, dialogInfo.Id); extraParams.AddNew(ExtraParamsList.room_name, dialogInfo.Name); extraParams.AddNew(ExtraParamsList.current_occupant_ids, string.Join(",", dialogInfo.OccupantsIds)); extraParams.AddNew(ExtraParamsList.type, ((int)dialogInfo.Type).ToString()); if (!string.IsNullOrEmpty(dialogInfo.Photo)) { extraParams.AddNew(ExtraParamsList.room_photo, dialogInfo.Photo); } var userJid = ChatXmppClient.BuildJid(userId, quickbloxClient.ApplicationId, quickbloxClient.ChatEndpoint); quickbloxClient.ChatXmppClient.SendMessage(userJid, "Notification Message", extraParams, dialogId, null, MessageType.Headline); }
public void OnExtra(object sender, EventArgs e) { ExtraParams?.Invoke(this, e); }
internal IDictionary <string, string> GetExtraParams() { return(ExtraParams.FromByteArray( (keyBytes) => System.Text.Encoding.UTF8.GetString(keyBytes), (valueBytes) => System.Text.Encoding.UTF8.GetString(valueBytes))); }
/// <summary> /// Open or close request. /// </summary> void SendRequest(ExtraParams xp) { string response = (mStatus == Status.Success) ? SendRequest(xp.action, xp.request, 10000, 3) : null; if (xp.callback != null) xp.callback(this, xp.port, xp.protocol, !string.IsNullOrEmpty(response)); if (xp.th != null) lock (mThreads) mThreads.Remove(xp.th); }
/// <summary> /// Open up a port on the gateway. /// </summary> void Open(int port, bool tcp, OnPortRequest callback) { if (mStatus == Status.Inactive) { Start(); WaitForThreads(); } int id = (port << 8) | (tcp ? 1 : 0); if (port > 0 && !mPorts.Contains(id) && mStatus != Status.Failure) { string addr = Tools.localAddress.ToString(); if (addr == "127.0.0.1") return; mPorts.Add(id); ExtraParams xp = new ExtraParams(); xp.callback = callback; xp.port = port; xp.protocol = tcp ? ProtocolType.Tcp : ProtocolType.Udp; xp.action = "AddPortMapping"; xp.request = "<NewRemoteHost></NewRemoteHost>\n" + "<NewExternalPort>" + port + "</NewExternalPort>\n" + "<NewProtocol>" + (tcp ? "TCP" : "UDP") + "</NewProtocol>\n" + "<NewInternalPort>" + port + "</NewInternalPort>\n" + "<NewInternalClient>" + addr + "</NewInternalClient>\n" + "<NewEnabled>1</NewEnabled>\n" + "<NewPortMappingDescription>" + name + "</NewPortMappingDescription>\n" + "<NewLeaseDuration>0</NewLeaseDuration>\n"; xp.th = new Thread(OpenRequest); lock (mThreads) mThreads.Add(xp.th); xp.th.Start(xp); } else if (callback != null) { callback(this, port, tcp ? ProtocolType.Tcp : ProtocolType.Udp, false); } }
/// <summary> /// Stop port forwarding that was set up earlier. /// </summary> void Close(int port, bool tcp, OnPortRequest callback) { int id = (port << 8) | (tcp ? 1 : 0); if (port > 0 && mPorts.Remove(id) && mStatus == Status.Success) { ExtraParams xp = new ExtraParams(); xp.callback = callback; xp.port = port; xp.protocol = tcp ? ProtocolType.Tcp : ProtocolType.Udp; xp.action = "DeletePortMapping"; xp.request = "<NewRemoteHost></NewRemoteHost>\n" + "<NewExternalPort>" + port + "</NewExternalPort>\n" + "<NewProtocol>" + (tcp ? "TCP" : "UDP") + "</NewProtocol>\n"; if (callback != null) { xp.th = new Thread(CloseRequest); lock (mThreads) { mThreads.Add(xp.th); xp.th.Start(xp); } } else CloseRequest(xp); } else if (callback != null) { callback(this, port, tcp ? ProtocolType.Tcp : ProtocolType.Udp, false); } }
public void AddExtraParam(string key, string value) { ExtraParams.Add(key, value); }
private string GetExtraParam(XElement extraParams, ExtraParamsList neededExtraParam) { var extraParam = extraParams.Element(ExtraParams.GetXNameFor(neededExtraParam)); return(extraParam?.Value); }
public RequestContext SetExtraParam(object param) { ExtraParams.Merge(param); return(this); }