diff --git a/Rock/Communication/Transport/OneSignal.cs b/Rock/Communication/Transport/OneSignal.cs index 4869a60..c302325 100644 --- a/Rock/Communication/Transport/OneSignal.cs +++ b/Rock/Communication/Transport/OneSignal.cs @@ -168,74 +168,77 @@ public override void Send( Model.Communication communication, int mediumEntityTy { if (ValidRecipient(recipient, communication.IsBulkCommunication)) { - try + if ( recipient.PersonAliasId.HasValue ) { - var mergeObjects = recipient.CommunicationMergeValues(mergeFields); - var message = ResolveText(communication.PushMessage, currentPerson, communication.EnabledLavaCommands, mergeObjects, publicAppRoot); - var title = ResolveText(communication.PushTitle, currentPerson, communication.EnabledLavaCommands, mergeObjects, publicAppRoot); - var sound = ResolveText( communication.PushSound, currentPerson, communication.EnabledLavaCommands, mergeObjects, publicAppRoot ); - var data = ResolveText(communication.PushData, currentPerson, communication.EnabledLavaCommands, mergeFields, publicAppRoot); - var jsonData = Newtonsoft.Json.JsonConvert.DeserializeObject(data); - var url = jsonData.Url; - string appId = GetAttributeValue("AppId"); - string restApiKey = GetAttributeValue("RestAPIKey"); - OneSignalClient client = new OneSignalClient(restApiKey); - - var options = new NotificationCreateOptions + try { - AppId = new Guid(appId), - IncludeExternalUserIds = new List { recipient.PersonAliasId.ToString() } - }; + var mergeObjects = recipient.CommunicationMergeValues(mergeFields); + var message = ResolveText(communication.PushMessage, currentPerson, communication.EnabledLavaCommands, mergeObjects, publicAppRoot); + var title = ResolveText(communication.PushTitle, currentPerson, communication.EnabledLavaCommands, mergeObjects, publicAppRoot); + var sound = ResolveText( communication.PushSound, currentPerson, communication.EnabledLavaCommands, mergeObjects, publicAppRoot ); + var data = ResolveText(communication.PushData, currentPerson, communication.EnabledLavaCommands, mergeFields, publicAppRoot); + var jsonData = Newtonsoft.Json.JsonConvert.DeserializeObject(data); + var url = jsonData.Url; + string appId = GetAttributeValue("AppId"); + string restApiKey = GetAttributeValue("RestAPIKey"); + OneSignalClient client = new OneSignalClient(restApiKey); - options.Headings.Add(LanguageCodes.English, title); - options.Contents.Add(LanguageCodes.English, message); - options.Url = url; - NotificationCreateResult response = client.Notifications.Create(options); + var options = new NotificationCreateOptions + { + AppId = new Guid(appId), + IncludeExternalUserIds = new List { recipient.PersonAliasId.ToString() } + }; - bool failed = !string.IsNullOrWhiteSpace(response.Error); + options.Headings.Add(LanguageCodes.English, title); + options.Contents.Add(LanguageCodes.English, message); + options.Url = url; + NotificationCreateResult response = client.Notifications.Create(options); - var status = failed ? CommunicationRecipientStatus.Failed : CommunicationRecipientStatus.Delivered; + bool failed = !string.IsNullOrWhiteSpace(response.Error); - if (failed) - { - recipient.StatusNote = "OneSignal failed to notify devices"; - } - else - { - recipient.SendDateTime = RockDateTime.Now; - } + var status = failed ? CommunicationRecipientStatus.Failed : CommunicationRecipientStatus.Delivered; - recipient.Status = status; - recipient.TransportEntityTypeName = this.GetType().FullName; - recipient.UniqueMessageId = response.Id; + if (failed) + { + recipient.StatusNote = "OneSignal failed to notify devices"; + } + else + { + recipient.SendDateTime = RockDateTime.Now; + } - try - { - var historyService = new HistoryService(recipientRockContext); - historyService.Add(new History + recipient.Status = status; + recipient.TransportEntityTypeName = this.GetType().FullName; + recipient.UniqueMessageId = response.Id; + + try + { + var historyService = new HistoryService(recipientRockContext); + historyService.Add(new History + { + CreatedByPersonAliasId = communication.SenderPersonAliasId, + EntityTypeId = personEntityTypeId, + CategoryId = communicationCategoryId, + EntityId = recipient.PersonAlias.PersonId, + Verb = History.HistoryVerb.Sent.ConvertToString().ToUpper(), + ChangeType = History.HistoryChangeType.Record.ToString(), + ValueName = "Push Notification", + Caption = message.Truncate(200), + RelatedEntityTypeId = communicationEntityTypeId, + RelatedEntityId = communication.Id + }); + } + catch (Exception ex) { - CreatedByPersonAliasId = communication.SenderPersonAliasId, - EntityTypeId = personEntityTypeId, - CategoryId = communicationCategoryId, - EntityId = recipient.PersonAlias.PersonId, - Verb = History.HistoryVerb.Sent.ConvertToString().ToUpper(), - ChangeType = History.HistoryChangeType.Record.ToString(), - ValueName = "Push Notification", - Caption = message.Truncate(200), - RelatedEntityTypeId = communicationEntityTypeId, - RelatedEntityId = communication.Id - }); + ExceptionLogService.LogException(ex, null); + } + } catch (Exception ex) { - ExceptionLogService.LogException(ex, null); + recipient.Status = CommunicationRecipientStatus.Failed; + recipient.StatusNote = "OneSignal Exception: " + ex.Message; } - - } - catch (Exception ex) - { - recipient.Status = CommunicationRecipientStatus.Failed; - recipient.StatusNote = "OneSignal Exception: " + ex.Message; } } diff --git a/Versions/12.0/apollosProject.OneSignal.dll b/Versions/12.0/apollosProject.OneSignal.dll index f61c3de..503f853 100644 Binary files a/Versions/12.0/apollosProject.OneSignal.dll and b/Versions/12.0/apollosProject.OneSignal.dll differ diff --git a/apollosProject.OneSignal.csproj b/apollosProject.OneSignal.csproj index cac7567..cd4f337 100644 --- a/apollosProject.OneSignal.csproj +++ b/apollosProject.OneSignal.csproj @@ -46,9 +46,9 @@ .\packages\RestSharp.105.2.3\lib\net452\RestSharp.dll - + False - ..\RockWeb\Bin\Rock.dll + ..\Rock\RockWeb\Bin\Rock.dll @@ -76,4 +76,4 @@ xcopy /Y /R "$(ProjectDir)bin\Apollos.OneSignal.RestAPIv3.Client.dll" "$(SolutionDir)RockWeb\bin" xcopy /Y /I /E "$(ProjectDir)Communication\Transport\*.*" "$(SolutionDir)Rock\Communication\Transport" - + \ No newline at end of file diff --git a/bin/DotLiquid.dll b/bin/DotLiquid.dll index ca51b50..ed6df18 100644 Binary files a/bin/DotLiquid.dll and b/bin/DotLiquid.dll differ diff --git a/bin/DotLiquid.pdb b/bin/DotLiquid.pdb index 17b5854..126d78a 100644 Binary files a/bin/DotLiquid.pdb and b/bin/DotLiquid.pdb differ diff --git a/bin/Microsoft.IdentityModel.Logging.dll b/bin/Microsoft.IdentityModel.Logging.dll index 4d34ca6..b35b035 100644 Binary files a/bin/Microsoft.IdentityModel.Logging.dll and b/bin/Microsoft.IdentityModel.Logging.dll differ diff --git a/bin/Microsoft.IdentityModel.Tokens.dll b/bin/Microsoft.IdentityModel.Tokens.dll index d831aab..302fbcc 100644 Binary files a/bin/Microsoft.IdentityModel.Tokens.dll and b/bin/Microsoft.IdentityModel.Tokens.dll differ diff --git a/bin/Microsoft.IdentityModel.Tokens.xml b/bin/Microsoft.IdentityModel.Tokens.xml index c75d45c..8c857b0 100644 --- a/bin/Microsoft.IdentityModel.Tokens.xml +++ b/bin/Microsoft.IdentityModel.Tokens.xml @@ -74,26 +74,6 @@ The hash algorithm to use to create the hash value. - - - Returns the size of key in bytes - - Represents ecdsa curve -P256, P384, P521 - Size of the key in bytes - - - - Returns the magic value representing the curve corresponding to the curve id. - - Represents ecdsa curve -P256, P384, P512 - Whether the provider will create signatures or not - Uint representing the magic number - - - - Magic numbers identifying ECDSA blob types - - Produces a signature over the 'input' using the and algorithm passed to . @@ -246,6 +226,21 @@ 'key' is not a . 'algorithm, key' pair is not supported. + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + an instance of + 'key' is null. + 'algorithm' is null or empty. + If and algorithm pair are not supported. + 'key' is not a . + + When finished with the call . + + Creates a that supports the and algorithm. @@ -287,6 +282,18 @@ to be released. + + + When finished with a call this method for cleanup."/> + + to be released. + + + + When finished with a call this method for cleanup."/> + + to be released. + Returns a for a specific algorithm. @@ -371,7 +378,7 @@ - Initializes a new instance of the class. + Initializes a new instance of the class. The key encryption algorithm to apply. @@ -506,6 +513,11 @@ Represents a Json Web Key as defined in http://tools.ietf.org/html/rfc7517. + + + Magic numbers identifying ECDSA blob types + + Returns a new instance of . @@ -664,6 +676,21 @@ true if it has a private key; otherwise, false. + + + Returns the size of key in bytes + + Represents ecdsa curve -P256, P384, P521 + Size of the key in bytes + + + + Returns the magic value representing the curve corresponding to the curve id. + + Represents ecdsa curve -P256, P384, P512 + Whether the provider will create signatures or not + Uint representing the magic number + Constants for JsonWebKey Elliptical Curve Types @@ -756,6 +783,24 @@ Releases all resources used by the current instance of the class. + + + Decrypts data with the System.Security.Cryptography.RSA algorithm. + + The data to be decrypted. + true to perform direct System.Security.Cryptography.RSA decryption using OAEP padding (only available on a computer running Microsoft Windows XP or later);o + therwise, false to use PKCS#1 v1.5 padding. + + + + + Encrypts data with the System.Security.Cryptography.RSA algorithm. + + The data to be encrypted. + true to perform direct System.Security.Cryptography.RSA encryption using OAEP padding (only available on a computer running Microsoft Windows XP or later); + otherwise, false to use PKCS#1 v1.5 padding. + + Computes the hash value of the specified byte array using the specified hash algorithm, and signs the resulting hash value. @@ -819,7 +864,7 @@ see: http://tools.ietf.org/html/rfc7518#section-3 - + see: https://tools.ietf.org/html/rfc7518#section-4.1 @@ -1877,6 +1922,201 @@ Gets the authentication tag + + + Provides Wrap key and Unwrap key services. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by runtimes or for extensibility scenarios. + + + + Gets the that is being used. + + + + + Calls and + + + + + Can be over written in descendants to dispose of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer + + + + Unwrap a key. + + key to unwrap. + Unwrapped key. + + + + Wrap a key. + + the key to be wrapped + wrapped key. + + + + Provides RSA Wrap key and Unwrap key services. + + + + + Initializes a new instance of the class used for wrap key and unwrap key. + The that will be used for crypto operations. + The KeyWrap algorithm to apply. + Whether this is required to create decrypts then set this to true. + 'key' is null. + 'algorithm' is null. + The keysize doesn't match the algorithm. + If and algorithm pair are not supported. + Failed to create RSA algorithm with provided key and algorithm. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by runtimes or for extensibility scenarios. + + + + Gets the that is being used. + + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Checks if an algorithm is supported. + + The that will be used for crypto operations. + The KeyWrap algorithm to apply. + true if the algorithm is supported; otherwise, false. + + + + Unwrap a key using RSA decryption. + + the bytes to unwrap. + Unwrapped key + 'keyBytes' is null or length == 0. + If has been called. + Failed to unwrap the wrappedKey. + If the internal RSA algorithm is null. + + + + Wrap a key using RSA encryption. + + the key to be wrapped + A wrapped key + 'keyBytes' is null or has length == 0. + If has been called. + Failed to wrap the 'keyBytes'. + If the internal RSA algorithm is null. + + + + Provides Wrap key and Unwrap key services. + + + + + Initializes a new instance of the class used for wrap key and unwrap key. + The that will be used for crypto operations. + The KeyWrap algorithm to apply. + 'key' is null. + 'algorithm' is null. + If and algorithm pair are not supported. + The cannot be converted to byte array + The keysize doesn't match the algorithm. + Failed to create symmetric algorithm with provided key and algorithm. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by runtimes or for extensibility scenarios. + + + + Gets the that is being used. + + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Returns the . + + + The cannot be converted to byte array + The keysize doesn't match the algorithm. + Failed to create symmetric algorithm with provided key and algorithm. + + + + Answers if an algorithm is supported + + the + the algorithm to use + true if the algorithm is supported; otherwise, false. + + + + Unwrap a key using Symmmetric decryption. + + bytes to unwrap + Unwraped key + 'keyBytes' is null or length == 0. + 'keyBytes' is not a multiple of 8. + If has been called. + Failed to unwrap the wrappedKey. + + + + Wrap a key using Symmetric encryption. + + the key to be wrapped + The wrapped key result + 'keyBytes' is null or has length 0. + 'keyBytes' is not a multiple of 8. + If has been called. + Failed to wrap 'keyBytes'. + Represents a security token exception when decryption failed. @@ -2135,6 +2375,30 @@ Initializes a new instance of + + + Represents a key wrap exception when encryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + This exception is thrown when a security is missing an ExpirationTime. diff --git a/bin/Nest.dll b/bin/Nest.dll index d59cc6f..e4ea7f2 100644 Binary files a/bin/Nest.dll and b/bin/Nest.dll differ diff --git a/bin/Rock.Version.dll b/bin/Rock.Version.dll index f75d5e0..88fd090 100644 Binary files a/bin/Rock.Version.dll and b/bin/Rock.Version.dll differ diff --git a/bin/Rock.Version.pdb b/bin/Rock.Version.pdb index 9f41094..b77a9af 100644 Binary files a/bin/Rock.Version.pdb and b/bin/Rock.Version.pdb differ diff --git a/bin/Rock.dll b/bin/Rock.dll index a5b8cbf..9f5f673 100644 Binary files a/bin/Rock.dll and b/bin/Rock.dll differ diff --git a/bin/Rock.pdb b/bin/Rock.pdb index 32bf3f3..8ebde43 100644 Binary files a/bin/Rock.pdb and b/bin/Rock.pdb differ diff --git a/bin/StackExchange.Redis.StrongName.dll b/bin/StackExchange.Redis.StrongName.dll index c440f91..871ea27 100644 Binary files a/bin/StackExchange.Redis.StrongName.dll and b/bin/StackExchange.Redis.StrongName.dll differ diff --git a/bin/System.IdentityModel.Tokens.Jwt.dll b/bin/System.IdentityModel.Tokens.Jwt.dll index 9bed47d..4f2da32 100644 Binary files a/bin/System.IdentityModel.Tokens.Jwt.dll and b/bin/System.IdentityModel.Tokens.Jwt.dll differ diff --git a/bin/System.IdentityModel.Tokens.Jwt.xml b/bin/System.IdentityModel.Tokens.Jwt.xml index 2f39730..21fcdb7 100644 --- a/bin/System.IdentityModel.Tokens.Jwt.xml +++ b/bin/System.IdentityModel.Tokens.Jwt.xml @@ -1175,6 +1175,27 @@ A . If 'expires' <= 'notBefore'. + + + Creates a + + The issuer of the token. + The audience for this token. + The source of the (s) for this token. + The notbefore time for this token. + The expiration time for this token. + The issue time for this token. + Contains cryptographic material for generating a signature. + If is not null, then a claim { actort, 'value' } will be added to the payload. for details on how the value is created. + See for details on how the HeaderParameters are added to the header. + See for details on how the values are added to the payload. + Each on the added will have translated according to the mapping found in + . Adding and removing to will affect the name component of the Json claim. + is used to sign . + + A . + If 'expires' <= 'notBefore'. + Creates a Json Web Token (JWT). diff --git a/bin/apollosProject.OneSignal.dll b/bin/apollosProject.OneSignal.dll index f61c3de..503f853 100644 Binary files a/bin/apollosProject.OneSignal.dll and b/bin/apollosProject.OneSignal.dll differ diff --git a/bin/apollosProject.OneSignal.pdb b/bin/apollosProject.OneSignal.pdb index 10e3280..0693ee7 100644 Binary files a/bin/apollosProject.OneSignal.pdb and b/bin/apollosProject.OneSignal.pdb differ diff --git a/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 5f8e1be..9ea20e3 100644 Binary files a/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/obj/Debug/apollosProject.OneSignal.csproj.FileListAbsolute.txt b/obj/Debug/apollosProject.OneSignal.csproj.FileListAbsolute.txt index f5a9010..acd5a30 100644 --- a/obj/Debug/apollosProject.OneSignal.csproj.FileListAbsolute.txt +++ b/obj/Debug/apollosProject.OneSignal.csproj.FileListAbsolute.txt @@ -170,3 +170,200 @@ C:\Users\Vince\Desktop\apollos.local_Rockit\apollos-onesignal\obj\Debug\apollosP C:\Users\Vince\Desktop\apollos.local_Rockit\apollos-onesignal\obj\Debug\apollosProject.OneSignal.csproj.CopyComplete C:\Users\Vince\Desktop\apollos.local_Rockit\apollos-onesignal\obj\Debug\apollosProject.OneSignal.dll C:\Users\Vince\Desktop\apollos.local_Rockit\apollos-onesignal\obj\Debug\apollosProject.OneSignal.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\apollosProject.OneSignal.dll.config +E:\Rock Versions\12.4\apollos-onesignal\bin\apollosProject.OneSignal.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\apollosProject.OneSignal.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\Apollos.OneSignal.RestAPIv3.Client.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\EntityFramework.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\EntityFramework.SqlServer.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\RestSharp.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Rock.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\CSScriptLibrary.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Quartz.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\DotLiquid.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\HtmlAgilityPack.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\CommonMark.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\PreMailer.Net.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\NuGet.Core.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.Web.XmlTransform.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\OpenXmlPowerTools.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\DocumentFormat.OpenXml.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Nest.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Lucene.Net.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Lucene.Net.Analysis.Common.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\UAParser.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Rock.Common.Mobile.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Rock.DownhillCss.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\dotless.Core.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\EPPlus.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\ImageResizer.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.SqlServer.Types.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\StackExchange.Redis.StrongName.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\CacheManager.Core.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\CacheManager.StackExchange.Redis.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Apis.Storage.v1.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Cloud.Storage.V1.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Apis.Auth.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Api.Gax.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Apis.Core.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.Azure.Storage.Blob.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.Azure.Storage.Common.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\AWSSDK.S3.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\AWSSDK.Core.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.AspNet.SignalR.Core.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\EXIFextractor.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Owin.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\System.Net.Http.Formatting.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\IdentityModel.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\System.IdentityModel.Tokens.Jwt.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.IdentityModel.Tokens.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.IdentityModel.Protocols.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.IdentityModel.Clients.ActiveDirectory.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\System.Web.Http.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\DDay.iCal.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Serilog.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Humanizer.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Z.EntityFramework.Plus.EF6.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\FCM.Net.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Twilio.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\MassTransit.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\MassTransit.AzureServiceBusTransport.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\MassTransit.RabbitMqTransport.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\xxHashSharp.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Elasticsearch.Net.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\NodaTime.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\System.Web.Optimization.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\CacheManager.Serialization.Json.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Apis.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Rock.Version.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\BCrypt.Net.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\EntityFramework.Utilities.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\System.Web.Http.WebHost.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\CronExpressionDescriptor.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Serilog.Formatting.Compact.Reader.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Serilog.Formatting.Compact.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Serilog.Sinks.File.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\System.Linq.Dynamic.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\GreenPipes.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.CodeAnalysis.Scripting.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.CodeAnalysis.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Mono.CSharp.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.CodeAnalysis.CSharp.Scripting.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\C5.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\AngleSharp.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\System.IO.Packaging.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Api.Gax.Rest.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\System.Interactive.Async.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.Azure.KeyVault.Core.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.IdentityModel.Logging.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\System.ValueTuple.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\NewId.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Newtonsoft.Json.Bson.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.ServiceBus.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\RabbitMQ.Client.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\WebGrease.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.Web.Infrastructure.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\System.Reflection.Metadata.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.CodeAnalysis.CSharp.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.Diagnostics.Tracing.EventSource.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\EntityFramework.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\EntityFramework.SqlServer.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\RestSharp.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Rock.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\Rock.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\CSScriptLibrary.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\DotLiquid.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\HtmlAgilityPack.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\HtmlAgilityPack.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\CommonMark.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\CommonMark.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Nest.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Lucene.Net.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\Lucene.Net.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Lucene.Net.Analysis.Common.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\Lucene.Net.Analysis.Common.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\UAParser.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Rock.DownhillCss.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\dotless.Core.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\EPPlus.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\ImageResizer.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\StackExchange.Redis.StrongName.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\CacheManager.Core.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\CacheManager.StackExchange.Redis.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Apis.Storage.v1.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Apis.Storage.v1.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Cloud.Storage.V1.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Cloud.Storage.V1.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Apis.Auth.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Apis.Auth.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Api.Gax.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Api.Gax.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Apis.Core.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Apis.Core.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.Azure.Storage.Blob.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.Azure.Storage.Common.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\AWSSDK.S3.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\AWSSDK.S3.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\AWSSDK.Core.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\AWSSDK.Core.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.AspNet.SignalR.Core.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\System.Net.Http.Formatting.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\IdentityModel.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\System.IdentityModel.Tokens.Jwt.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.IdentityModel.Protocols.OpenIdConnect.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.IdentityModel.Tokens.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.IdentityModel.Protocols.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.IdentityModel.Clients.ActiveDirectory.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\System.Web.Http.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Serilog.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\Serilog.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Z.EntityFramework.Plus.EF6.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Twilio.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\MassTransit.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\MassTransit.AzureServiceBusTransport.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\MassTransit.RabbitMqTransport.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Elasticsearch.Net.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\System.Web.Optimization.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\CacheManager.Serialization.Json.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Apis.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Apis.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Rock.Version.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\BCrypt.Net.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\BCrypt.Net.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\System.Web.Http.WebHost.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Serilog.Formatting.Compact.Reader.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Serilog.Formatting.Compact.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Serilog.Sinks.File.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\Serilog.Sinks.File.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\GreenPipes.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\AngleSharp.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Api.Gax.Rest.pdb +E:\Rock Versions\12.4\apollos-onesignal\bin\Google.Api.Gax.Rest.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\System.Interactive.Async.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.Azure.KeyVault.Core.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.IdentityModel.Logging.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\System.ValueTuple.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\NewId.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Newtonsoft.Json.Bson.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.ServiceBus.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\RabbitMQ.Client.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\Microsoft.Diagnostics.Tracing.EventSource.xml +E:\Rock Versions\12.4\apollos-onesignal\bin\de\CronExpressionDescriptor.resources.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\es\CronExpressionDescriptor.resources.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\fr\CronExpressionDescriptor.resources.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\it\CronExpressionDescriptor.resources.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\nl\CronExpressionDescriptor.resources.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\no\CronExpressionDescriptor.resources.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\pl\CronExpressionDescriptor.resources.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\pt\CronExpressionDescriptor.resources.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\ro\CronExpressionDescriptor.resources.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\ru\CronExpressionDescriptor.resources.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\tr\CronExpressionDescriptor.resources.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\uk\CronExpressionDescriptor.resources.dll +E:\Rock Versions\12.4\apollos-onesignal\bin\zh-CHS\CronExpressionDescriptor.resources.dll +E:\Rock Versions\12.4\apollos-onesignal\obj\Debug\apollosProject.OneSignal.csproj.AssemblyReference.cache +E:\Rock Versions\12.4\apollos-onesignal\obj\Debug\apollosProject.OneSignal.csproj.CoreCompileInputs.cache +E:\Rock Versions\12.4\apollos-onesignal\obj\Debug\apollosProject.OneSignal.csproj.CopyComplete +E:\Rock Versions\12.4\apollos-onesignal\obj\Debug\apollosProject.OneSignal.dll +E:\Rock Versions\12.4\apollos-onesignal\obj\Debug\apollosProject.OneSignal.pdb diff --git a/obj/Debug/apollosProject.OneSignal.dll b/obj/Debug/apollosProject.OneSignal.dll index f61c3de..503f853 100644 Binary files a/obj/Debug/apollosProject.OneSignal.dll and b/obj/Debug/apollosProject.OneSignal.dll differ diff --git a/obj/Debug/apollosProject.OneSignal.pdb b/obj/Debug/apollosProject.OneSignal.pdb index 10e3280..0693ee7 100644 Binary files a/obj/Debug/apollosProject.OneSignal.pdb and b/obj/Debug/apollosProject.OneSignal.pdb differ