From 5a5a80082c2f744eceb4c5ed4f9189d0742a0721 Mon Sep 17 00:00:00 2001 From: Kent Johnson Date: Tue, 6 Nov 2018 08:30:50 -0600 Subject: [PATCH] v1.1.0 --- Butterfly.Aws/Butterfly.Aws.csproj | 12 +- Butterfly.Client.Web/lib/butterfly-client.js | 1 + .../lib/butterfly-client.js.map | 2 +- .../lib/butterfly-client.min.js | 2 +- .../lib/butterfly-client.min.js.map | 2 +- Butterfly.Client.Web/package-lock.json | 2 +- Butterfly.Client.Web/package.json | 2 +- .../src/web-socket-channel-client.js | 1 + Butterfly.Core.Test/AuthTest.cs | 4 +- Butterfly.Core.Test/NotifyTest.cs | 4 +- Butterfly.Core/Auth/AuthManager.cs | 139 ++- Butterfly.Core/Auth/IAuthenticator.cs | 10 + Butterfly.Core/Auth/ShareCodeAuthenticator.cs | 65 ++ .../Auth/UserRefTokenAuthenticator.cs | 126 +++ Butterfly.Core/Butterfly.Core.csproj | 2 +- .../Channel/BaseChannelConnection.cs | 19 +- Butterfly.Core/Channel/IChannelConnection.cs | 2 +- Butterfly.Core/Database/BaseDatabase.cs | 9 +- Butterfly.Core/Database/BaseTransaction.cs | 14 +- Butterfly.Core/Database/ITransaction.cs | 3 +- Butterfly.Core/Database/OnCommitRef.cs | 13 + Butterfly.Core/Notify/NotifyManager.cs | 38 +- Butterfly.EmbedIO/Butterfly.EmbedIO.csproj | 2 +- Butterfly.MySql/Butterfly.MySql.csproj | 4 +- Butterfly.Postgres/Butterfly.Postgres.csproj | 2 +- .../Butterfly.RedHttpServer.csproj | 2 +- Butterfly.SQLite/Butterfly.SQLite.csproj | 2 +- .../Butterfly.SqlServer.csproj | 2 +- Butterfly.Twilio.Test/TwilioTest.cs | 4 +- Butterfly.Twilio/Butterfly.Twilio.csproj | 4 +- ...r.cs => TwilioPhoneNotifyMessageSender.cs} | 6 +- docfx_project/api/.manifest | 95 +- docfx_project/api/Butterfly.Aws.AwsModule.yml | 1 + ...fly.Aws.AwsSesEmailNotifyMessageSender.yml | 2 + .../api/Butterfly.Aws.Test.AwsTest.yml | 1 + .../Butterfly.Client.DotNet.Subscription.yml | 1 + ...y.Client.DotNet.WebSocketChannelClient.yml | 1 + .../api/Butterfly.Core.Auth.AuthManager.yml | 690 +++++++++------ .../api/Butterfly.Core.Auth.AuthToken.yml | 366 +------- .../Butterfly.Core.Auth.IAuthenticator.yml | 164 ++++ ...erfly.Core.Auth.ShareCodeAuthenticator.yml | 530 ++++++++++++ .../Butterfly.Core.Auth.ShareCodeToken.yml | 135 +++ .../api/Butterfly.Core.Auth.UserRefToken.yml | 457 ++++++++++ ...ly.Core.Auth.UserRefTokenAuthenticator.yml | 814 ++++++++++++++++++ docfx_project/api/Butterfly.Core.Auth.yml | 34 + ...fly.Core.Channel.BaseChannelConnection.yml | 78 +- ...erfly.Core.Channel.BaseSubscriptionApi.yml | 3 +- .../api/Butterfly.Core.Channel.Channel.yml | 1 + ...erfly.Core.Channel.ChannelSubscription.yml | 1 + ...terfly.Core.Channel.IChannelConnection.yml | 26 +- ...utterfly.Core.Channel.ISubscriptionApi.yml | 1 + .../Butterfly.Core.Database.BaseDatabase.yml | 60 +- .../Butterfly.Core.Database.BaseStatement.yml | 1 + ...utterfly.Core.Database.BaseTransaction.yml | 154 ++-- ...utterfly.Core.Database.CreateStatement.yml | 1 + ....Database.DataEventTransactionListener.yml | 1 + ...terfly.Core.Database.DatabaseException.yml | 5 +- ...utterfly.Core.Database.DeleteStatement.yml | 1 + ...Database.DuplicateKeyDatabaseException.yml | 5 +- ...Core.Database.Dynamic.BaseDynamicParam.yml | 2 + ...ore.Database.Dynamic.ChildDynamicParam.yml | 1 + ...rfly.Core.Database.Dynamic.DynamicView.yml | 1 + ...y.Core.Database.Dynamic.DynamicViewSet.yml | 1 + ...atabase.Dynamic.MultiValueDynamicParam.yml | 2 + ...tabase.Dynamic.SingleValueDynamicParam.yml | 2 + ...utterfly.Core.Database.Event.DataEvent.yml | 1 + ...re.Database.Event.DataEventTransaction.yml | 1 + ...e.Database.Event.InitialBeginDataEvent.yml | 1 + ...ore.Database.Event.InitialEndDataEvent.yml | 1 + ....Core.Database.Event.KeyValueDataEvent.yml | 1 + ...ly.Core.Database.Event.RecordDataEvent.yml | 1 + .../Butterfly.Core.Database.ITransaction.yml | 32 +- ...utterfly.Core.Database.InsertStatement.yml | 1 + ...ly.Core.Database.Memory.MemoryDatabase.yml | 3 +- ...erfly.Core.Database.Memory.MemoryTable.yml | 1 + ...Core.Database.Memory.MemoryTransaction.yml | 53 +- .../Butterfly.Core.Database.OnCommitRef.yml | 250 ++++++ ...utterfly.Core.Database.SelectStatement.yml | 1 + ...erfly.Core.Database.StatementEqualsRef.yml | 1 + ...terfly.Core.Database.StatementFieldRef.yml | 1 + ...tterfly.Core.Database.StatementFromRef.yml | 1 + .../api/Butterfly.Core.Database.Table.yml | 1 + .../Butterfly.Core.Database.TableFieldDef.yml | 1 + .../Butterfly.Core.Database.TableIndex.yml | 1 + ...abase.UnableToConnectDatabaseException.yml | 5 +- ...utterfly.Core.Database.UpdateStatement.yml | 1 + docfx_project/api/Butterfly.Core.Database.yml | 6 + ...ly.Core.Notify.BaseNotifyMessageSender.yml | 4 +- ...tify.NotifyManager.NotifyMessageEngine.yml | 25 +- .../Butterfly.Core.Notify.NotifyManager.yml | 109 +-- .../Butterfly.Core.Notify.NotifyMessage.yml | 1 + .../Butterfly.Core.Notify.Test.NotifyTest.yml | 33 +- .../api/Butterfly.Core.Test.AuthTest.yml | 1 + .../Butterfly.Core.Test.ChannelUnitTest.yml | 1 + .../Butterfly.Core.Test.DatabaseUnitTest.yml | 1 + .../Butterfly.Core.Test.DynamicUnitTest.yml | 1 + .../Butterfly.Core.Test.TestDisposable.yml | 1 + .../Butterfly.Core.Test.WebApiUnitTest.yml | 1 + .../api/Butterfly.Core.Util.CleverNameX.yml | 1 + .../Butterfly.Core.Util.CommandLineUtil.yml | 1 + .../api/Butterfly.Core.Util.ConsoleUtil.yml | 1 + .../api/Butterfly.Core.Util.DateTimeX.yml | 1 + ...y.Core.Util.DictionaryItemDisposable-2.yml | 1 + .../api/Butterfly.Core.Util.DictionaryX.yml | 1 + .../api/Butterfly.Core.Util.DynamicX.yml | 1 + .../api/Butterfly.Core.Util.EnvironmentX.yml | 1 + ...ly.Core.Util.Field.EmailFieldValidator.yml | 2 + ....Core.Util.Field.GenericFieldValidator.yml | 2 + ...fly.Core.Util.Field.NameFieldValidator.yml | 2 + ...ly.Core.Util.Field.PhoneFieldValidator.yml | 2 + .../api/Butterfly.Core.Util.FileX.yml | 1 + .../Butterfly.Core.Util.IHttpResponseX.yml | 1 + .../api/Butterfly.Core.Util.IWebRequestX.yml | 1 + .../api/Butterfly.Core.Util.Job.JobData.yml | 1 + .../Butterfly.Core.Util.Job.JobManager.yml | 1 + .../api/Butterfly.Core.Util.JsonUtil.yml | 1 + ...tterfly.Core.Util.ListItemDisposable-1.yml | 1 + ...tterfly.Core.Util.NameValueCollectionX.yml | 1 + ...ly.Core.Util.PermissionDeniedException.yml | 1 + .../api/Butterfly.Core.Util.ProcessX.yml | 1 + .../api/Butterfly.Core.Util.RandomUtil.yml | 1 + .../api/Butterfly.Core.Util.RunEvery.yml | 1 + .../api/Butterfly.Core.Util.SafeUtil.yml | 1 + .../api/Butterfly.Core.Util.SecureUtil.yml | 1 + .../api/Butterfly.Core.Util.StringX.yml | 1 + ...terfly.Core.Util.UnauthorizedException.yml | 1 + .../api/Butterfly.Core.Util.UriX.yml | 1 + ...tterfly.Core.Util.WebClientWithTimeout.yml | 184 ++++ docfx_project/api/Butterfly.Core.Util.yml | 6 + .../Butterfly.Core.WebApi.BaseHttpRequest.yml | 2 + .../api/Butterfly.Core.WebApi.BaseWebApi.yml | 2 + .../Butterfly.Core.WebApi.IHttpRequest.yml | 1 + .../api/Butterfly.Core.WebApi.IWebApi.yml | 1 + .../api/Butterfly.Core.WebApi.WebHandler.yml | 1 + .../api/Butterfly.EmbedIO.EmbedIOContext.yml | 1 + ...utterfly.EmbedIO.EmbedIOHttpWebRequest.yml | 2 + ...tterfly.EmbedIO.EmbedIOSubscriptionApi.yml | 4 +- ...bedIO.EmbedIOSubscriptionApiConnection.yml | 34 +- .../api/Butterfly.EmbedIO.EmbedIOWebApi.yml | 3 +- .../Butterfly.EmbedIO.EmbedIOWebResponse.yml | 2 + ...fly.EmbedIO.EmbedIOWebSocketWebRequest.yml | 2 + .../api/Butterfly.EmbedIO.MyWebModule.yml | 1 + .../Butterfly.EmbedIO.MyWebSocketsServer.yml | 1 + .../Butterfly.EmbedIO.Test.EmbedIOTest.yml | 1 + .../api/Butterfly.MySql.MySqlDatabase.yml | 3 +- .../api/Butterfly.MySql.MySqlTransaction.yml | 53 +- ...erfly.MySql.Test.MySqlDatabaseUnitTest.yml | 1 + .../api/Butterfly.MySql.Test.SQLiteTest.yml | 1 + .../Butterfly.Postgres.PostgresDatabase.yml | 3 +- ...Butterfly.Postgres.PostgresTransaction.yml | 53 +- .../Butterfly.Postgres.Test.PostgresTest.yml | 1 + .../Butterfly.RHttpServer.HttpRequestX.yml | 1 + ...erfly.RHttpServer.RedHttpServerContext.yml | 1 + ...ttpServer.RedHttpServerSubscriptionApi.yml | 4 +- ...terfly.RHttpServer.RedHttpServerWebApi.yml | 3 +- ...ly.RHttpServer.RedHttpServerWebRequest.yml | 2 + ...y.RHttpServer.RedHttpServerWebResponse.yml | 2 + ...erfly.RHttpServer.Test.RHttpServerTest.yml | 1 + ...erver.WebSocketDialogChannelConnection.yml | 34 +- ....RHttpServer.WebSocketDialogWebRequest.yml | 2 + .../api/Butterfly.SQLite.SQLiteDatabase.yml | 3 +- .../Butterfly.SQLite.SQLiteTransaction.yml | 53 +- ...tterfly.SqlServer.SqlServerTransaction.yml | 50 +- ...Twilio.TwilioPhoneNotifyMessageSender.yml} | 140 +-- docfx_project/api/Butterfly.Twilio.yml | 12 +- docfx_project/api/toc.yml | 18 +- .../api/Butterfly.Core.Auth.AuthManager.html | 171 ++-- .../api/Butterfly.Core.Auth.AuthToken.html | 169 +--- .../Butterfly.Core.Auth.IAuthenticator.html | 162 ++++ ...rfly.Core.Auth.ShareCodeAuthenticator.html | 355 ++++++++ .../Butterfly.Core.Auth.ShareCodeToken.html | 167 ++++ .../api/Butterfly.Core.Auth.UserRefToken.html | 349 ++++++++ ...y.Core.Auth.UserRefTokenAuthenticator.html | 540 ++++++++++++ docs/docfx/api/Butterfly.Core.Auth.html | 16 + ...ly.Core.Channel.BaseChannelConnection.html | 9 +- ...rfly.Core.Channel.BaseSubscriptionApi.html | 11 - ...erfly.Core.Channel.IChannelConnection.html | 9 +- ...tterfly.Core.Database.BaseTransaction.html | 15 +- .../Butterfly.Core.Database.ITransaction.html | 9 +- ...y.Core.Database.Memory.MemoryDatabase.html | 4 +- ...ore.Database.Memory.MemoryTransaction.html | 8 +- .../api/Butterfly.Core.Database.Memory.html | 8 +- .../Butterfly.Core.Database.OnCommitRef.html | 198 +++++ docs/docfx/api/Butterfly.Core.Database.html | 2 + ...y.Core.Notify.BaseNotifyMessageSender.html | 2 +- .../Butterfly.Core.Notify.NotifyManager.html | 42 +- ...Butterfly.Core.Notify.Test.NotifyTest.html | 6 +- ...terfly.Core.Util.WebClientWithTimeout.html | 213 +++++ docs/docfx/api/Butterfly.Core.Util.html | 2 + ...terfly.EmbedIO.EmbedIOSubscriptionApi.html | 15 +- ...edIO.EmbedIOSubscriptionApiConnection.html | 2 +- .../api/Butterfly.EmbedIO.EmbedIOWebApi.html | 4 +- docs/docfx/api/Butterfly.EmbedIO.html | 8 +- .../api/Butterfly.MySql.MySqlDatabase.html | 4 +- .../api/Butterfly.MySql.MySqlTransaction.html | 8 +- docs/docfx/api/Butterfly.MySql.html | 8 +- .../Butterfly.Postgres.PostgresDatabase.html | 4 +- ...utterfly.Postgres.PostgresTransaction.html | 8 +- docs/docfx/api/Butterfly.Postgres.html | 8 +- ...tpServer.RedHttpServerSubscriptionApi.html | 15 +- ...erfly.RHttpServer.RedHttpServerWebApi.html | 4 +- ...rver.WebSocketDialogChannelConnection.html | 2 +- docs/docfx/api/Butterfly.RHttpServer.html | 8 +- .../api/Butterfly.SQLite.SQLiteDatabase.html | 4 +- .../Butterfly.SQLite.SQLiteTransaction.html | 8 +- docs/docfx/api/Butterfly.SQLite.html | 8 +- ...terfly.SqlServer.SqlServerTransaction.html | 4 +- ...Twilio.TwilioPhoneNotifyMessageSender.html | 306 +++++++ docs/docfx/api/Butterfly.Twilio.html | 2 +- docs/docfx/api/toc.html | 23 +- docs/docfx/manifest.json | 398 +++++---- docs/docfx/xrefmap.yml | 735 +++++++++++----- 212 files changed, 7459 insertions(+), 1997 deletions(-) create mode 100644 Butterfly.Core/Auth/IAuthenticator.cs create mode 100644 Butterfly.Core/Auth/ShareCodeAuthenticator.cs create mode 100644 Butterfly.Core/Auth/UserRefTokenAuthenticator.cs create mode 100644 Butterfly.Core/Database/OnCommitRef.cs rename Butterfly.Twilio/{TwilioPhoneTextNotifyMessageSender.cs => TwilioPhoneNotifyMessageSender.cs} (86%) create mode 100644 docfx_project/api/Butterfly.Core.Auth.IAuthenticator.yml create mode 100644 docfx_project/api/Butterfly.Core.Auth.ShareCodeAuthenticator.yml create mode 100644 docfx_project/api/Butterfly.Core.Auth.ShareCodeToken.yml create mode 100644 docfx_project/api/Butterfly.Core.Auth.UserRefToken.yml create mode 100644 docfx_project/api/Butterfly.Core.Auth.UserRefTokenAuthenticator.yml create mode 100644 docfx_project/api/Butterfly.Core.Database.OnCommitRef.yml create mode 100644 docfx_project/api/Butterfly.Core.Util.WebClientWithTimeout.yml rename docfx_project/api/{Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.yml => Butterfly.Twilio.TwilioPhoneNotifyMessageSender.yml} (69%) create mode 100644 docs/docfx/api/Butterfly.Core.Auth.IAuthenticator.html create mode 100644 docs/docfx/api/Butterfly.Core.Auth.ShareCodeAuthenticator.html create mode 100644 docs/docfx/api/Butterfly.Core.Auth.ShareCodeToken.html create mode 100644 docs/docfx/api/Butterfly.Core.Auth.UserRefToken.html create mode 100644 docs/docfx/api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html create mode 100644 docs/docfx/api/Butterfly.Core.Database.OnCommitRef.html create mode 100644 docs/docfx/api/Butterfly.Core.Util.WebClientWithTimeout.html create mode 100644 docs/docfx/api/Butterfly.Twilio.TwilioPhoneNotifyMessageSender.html diff --git a/Butterfly.Aws/Butterfly.Aws.csproj b/Butterfly.Aws/Butterfly.Aws.csproj index 3ddf3694..c070459a 100644 --- a/Butterfly.Aws/Butterfly.Aws.csproj +++ b/Butterfly.Aws/Butterfly.Aws.csproj @@ -12,7 +12,7 @@ Kent Johnson Copyright 2017-2018 Fireshark Studios, LLC Implementation of Butterfly.Core.Notify.INotifyMessageSender for AWS SES - 1.0.5 + 1.1.0 Various improvements and bug fixes bin\$(Configuration)\$(TargetFramework)\$(MSBuildProjectName).xml @@ -22,11 +22,11 @@ - - - - - + + + + + diff --git a/Butterfly.Client.Web/lib/butterfly-client.js b/Butterfly.Client.Web/lib/butterfly-client.js index a9fe2f1e..77b62c54 100644 --- a/Butterfly.Client.Web/lib/butterfly-client.js +++ b/Butterfly.Client.Web/lib/butterfly-client.js @@ -655,6 +655,7 @@ function () { this._subscribing(); } else if (message.messageType === 'UNAUTHENTICATED') { + if (this._options.onUnauthenticated) this._options.onUnauthenticated(message.data); this.disconnect(); } } diff --git a/Butterfly.Client.Web/lib/butterfly-client.js.map b/Butterfly.Client.Web/lib/butterfly-client.js.map index ae81f245..d6323eb7 100644 --- a/Butterfly.Client.Web/lib/butterfly-client.js.map +++ b/Butterfly.Client.Web/lib/butterfly-client.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://butterfly-client/webpack/universalModuleDefinition","webpack://butterfly-client/webpack/bootstrap","webpack://butterfly-client/./src/array-data-event-handler.js","webpack://butterfly-client/./src/index.js","webpack://butterfly-client/./src/vuex-array-getters.js","webpack://butterfly-client/./src/vuex-array-handler.js","webpack://butterfly-client/./src/vuex-array-mutations.js","webpack://butterfly-client/./src/web-socket-channel-client.js"],"names":["config","_private","keyFieldNamesByName","batchSize","queue","queueCurrentOffset","handleQueueTimeout","getKeyValue","name","record","result","keyFieldNames","i","length","value","handleDataEvent","dataEvent","dataEventType","onInitialEnd","array","arrayMapping","console","error","splice","keyValue","index","findIndex","x","_keyValue","handleQueue","clearTimeout","begin","end","Math","min","setTimeout","messageType","data","arrayKey","push","dataEvents","onChannelMessage","arrayName","state","callback","store","getters","start","deleteCount","item","commit","options","_options","url","indexOf","_url","window","location","protocol","host","_state","_stateTimeout","_auth","_subscriptionByChannelKey","debug","onStateChange","_clearStateTimeout","auth","_setState","_connecting","connectingStartMillis","Date","getTime","_webSocket","close","e","hasReconnected","reconnect","elapsedMillis","reconnectEveryMillis","wait","bind","WebSocket","onmessage","_onMessage","onopen","_authenticating","onerror","onclose","text","success","_sendText","authenticateEveryMillis","key","subscription","sent","channelKey","vars","JSON","stringify","_markSubscriptionsSent","_connected","_lastSendTextMillis","heartbeatEveryMillis","max","handlers","send","event","message","parse","_subscribing","disconnect","channel","Array","isArray","handler","_removeSubscription","_addSubscription","onSubscriptionsUpdated","_unsubscribing"],"mappings":"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","file":"butterfly-client.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"butterfly-client\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"butterfly-client\"] = factory();\n\telse\n\t\troot[\"butterfly-client\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.js\");\n","export default function (config) {\r\n let _private = this;\r\n\r\n let keyFieldNamesByName = {};\r\n let batchSize = config.batchSize || 250;\n\n let queue = [];\n let queueCurrentOffset = 0;\n let handleQueueTimeout = null;\n\r\n _private.getKeyValue = function (name, record) {\r\n let result = '';\r\n let keyFieldNames = keyFieldNamesByName[name];\r\n for (let i = 0; i < keyFieldNames.length; i++) {\r\n let value = record[keyFieldNames[i]];\r\n if (!result && result.length > 0) result += ';';\r\n result += '' + value;\r\n }\r\n return result;\r\n }\r\n\n _private.handleDataEvent = function (dataEvent) {\n //console.debug('ArrayDataEventHandler.handle():dataEvent.type=' + dataEvent.dataEventType + ',name=', dataEvent.name + ',keyValue=' + dataEvent.keyValue);\r\n if (dataEvent.dataEventType === 'InitialEnd') {\r\n if (config.onInitialEnd) config.onInitialEnd();\r\n }\r\n else {\r\n let array = config.arrayMapping[dataEvent.name];\r\n if (!array) {\r\n console.error('No mapping for data event \\'' + dataEvent.name + '\\'');\r\n }\r\n else if (dataEvent.dataEventType === 'InitialBegin') {\r\n array.splice(0, array.length);\r\n keyFieldNamesByName[dataEvent.name] = dataEvent.keyFieldNames;\r\n }\r\n else if (dataEvent.dataEventType === 'Insert' || dataEvent.dataEventType === 'Initial') {\r\n let keyValue = _private.getKeyValue(dataEvent.name, dataEvent.record);\r\n let index = array.findIndex(x => x._keyValue == keyValue);\r\n if (index >= 0) {\r\n console.error('Duplicate key \\'' + keyValue + '\\' in table \\'' + dataEvent.name + '\\'');\r\n }\r\n else {\r\n dataEvent.record['_keyValue'] = keyValue;\r\n array.splice(array.length, 0, dataEvent.record);\r\n }\r\n }\r\n else if (dataEvent.dataEventType === 'Update') {\r\n let keyValue = _private.getKeyValue(dataEvent.name, dataEvent.record);\r\n let index = array.findIndex(x => x._keyValue == keyValue);\r\n if (index == -1) {\r\n console.error('Could not find key \\'' + keyValue + '\\' in table \\'' + dataEvent.name + '\\'');\r\n }\r\n else {\r\n dataEvent.record['_keyValue'] = keyValue;\r\n array.splice(index, 1, dataEvent.record);\r\n }\r\n }\r\n else if (dataEvent.dataEventType === 'Delete') {\r\n let keyValue = _private.getKeyValue(dataEvent.name, dataEvent.record);\r\n let index = array.findIndex(x => x._keyValue == keyValue);\r\n array.splice(index, 1);\r\n }\r\n }\r\n };\n\n _private.handleQueue = function () {\n if (handleQueueTimeout) clearTimeout(handleQueueTimeout);\n\n if (queue.length > 0) {\n let begin = queueCurrentOffset;\n let end = Math.min(begin + batchSize, queue[0].length);\n for (let i = begin; i < end; i++) {\n _private.handleDataEvent(queue[0][i]);\r\n }\n if (end === queue[0].length) {\n queue.splice(0, 1);\n queueCurrentOffset = 0;\r\n }\n else {\n queueCurrentOffset += batchSize;\n handleQueueTimeout = setTimeout(_private.handleQueue, 0);\r\n }\n }\r\n }\n\r\n return function (messageType, data) {\r\n if (messageType === 'RESET') {\r\n for (let arrayKey in config.arrayMapping) {\r\n let array = config.arrayMapping[arrayKey];\r\n if (array) array.splice(0, array.length);\r\n }\r\n }\r\n else if (messageType === 'DATA-EVENT-TRANSACTION') {\r\n queue.push(data.dataEvents);\n _private.handleQueue();\r\n }\r\n else if (config.onChannelMessage) {\r\n config.onChannelMessage(messageType, data);\r\n }\r\n }\r\n}\r\n","import ArrayDataEventHandler from './array-data-event-handler.js';\nimport VuexArrayGetters from './vuex-array-getters.js';\nimport VuexArrayHandler from './vuex-array-handler.js';\nimport VuexArrayMutations from './vuex-array-mutations.js';\nimport WebSocketChannelClient from './web-socket-channel-client.js';\n\nexport {\n ArrayDataEventHandler,\n VuexArrayGetters,\n VuexArrayHandler,\n VuexArrayMutations,\n WebSocketChannelClient\r\n};\n","export default function(arrayName) {\r\n\tlet result = {};\r\n\tresult[`${arrayName}Length`] = state => state[arrayName].length;\r\n\tresult[`${arrayName}FindIndex`] = state => callback => state[arrayName].findIndex(callback);\r\n\treturn result;\r\n}\r\n","export default function(store, arrayName) {\r\n\treturn {\r\n\t\tget length() { return store.getters[`${arrayName}Length`] },\r\n\t\tfindIndex(callback) { return store.getters[`${arrayName}FindIndex`](callback) },\r\n\t\tsplice(start, deleteCount, item) {\r\n\t\t\treturn store.commit(`${arrayName}Splice`, { start, deleteCount, item });\r\n\t\t},\r\n\t};\r\n}\r\n","export default function(arrayName) {\r\n\tlet result = {};\r\n\tresult[`${arrayName}Splice`] = (state, options) => {\r\n\t\tif (options.item) state[arrayName].splice(options.start, options.deleteCount, options.item);\r\n\t\telse state[arrayName].splice(options.start, options.deleteCount);\r\n\t};\r\n\treturn result;\r\n}\r\n","/*\n * States...\n * Disconnected - No WebSocket, no loop running\n * Connecting - Create WebSocket and wait for WebSocket.onopen()\n * Authenticating - Send Authentication and wait for server to send AUTHENTICATED or UNAUTHENTICATED\n * Subscribing - Send subscriptions and transition to Connected\n * Connected - Send heartbeats to server\n */\n\nexport default class {\r\n constructor(options) {\r\n this._options = options;\r\n\r\n let url = this._options.url;\n\r\n if (url.indexOf('://') === -1) {\r\n this._url = (window.location.protocol === 'https:' ? 'wss:' : 'ws:') + '//' + window.location.host + url;\r\n }\r\n else {\r\n this._url = url;\r\n }\r\n\r\n this._state = 'Disconnected';\n this._stateTimeout = null;\r\n this._auth = null;\r\n this._subscriptionByChannelKey = {};\r\n }\r\n\r\n _setState(value) {\r\n if (this._state !== value) {\n console.debug(`_setState():value=${value}`);\r\n this._state = value;\r\n if (this._options.onStateChange) this._options.onStateChange(value);\r\n this._clearStateTimeout();\n }\r\n }\r\n\n connect(auth) {\r\n console.debug('WebSocketChannelClient.connect()');\r\n this._auth = auth;\n\r\n this._setState('Connecting');\n this._connecting();\r\n }\r\n\r\n _connecting() {\n if (this._state === 'Disconnected') return;\n\n this._setState('Connecting');\n let connectingStartMillis = new Date().getTime();\n\n if (this._webSocket) {\n try {\n this._webSocket.close();\n }\n catch (e) { }\n this._webSocket = null;\r\n }\n\n let hasReconnected = false;\n let reconnect = error => {\n if (hasReconnected) return;\n hasReconnected = true;\n\n console.debug(`_connecting():reconnect():error=${error}`);\n let elapsedMillis = new Date().getTime() - connectingStartMillis;\n let reconnectEveryMillis = this._options.reconnectEveryMillis || 3000;\n\n if (elapsedMillis > reconnectEveryMillis) {\n this._connecting();\n }\n else {\n let wait = reconnectEveryMillis - elapsedMillis;\n\n this._stateTimeout = setTimeout(this._connecting.bind(this), wait);\r\n }\n };\n\r\n try {\r\n console.debug(`_connecting():new WebSocket(${this._url})`);\r\n this._webSocket = new WebSocket(this._url);\r\n this._webSocket.onmessage = this._onMessage.bind(this);\r\n this._webSocket.onopen = this._authenticating.bind(this);\n this._webSocket.onerror = reconnect.bind(this);\r\n this._webSocket.onclose = reconnect.bind(this);\r\n }\r\n catch (e) {\r\n reconnect(e);\r\n }\r\n }\n\n _authenticating() {\n if (this._state === 'Disconnected') return;\n\n this._setState('Authenticating');\n let text = 'Authorization:' + (this._auth || '');\n let success = this._sendText(text);\n\n if (success) {\n let authenticateEveryMillis = this._options.authenticateEveryMillis || 3000;\n\n this._stateTimeout = setTimeout(this._authenticating.bind(this), authenticateEveryMillis);\n }\r\n }\n\n _subscribing() {\r\n if (this._state === 'Disconnected') return;\n\n this._setState('Subscribing');\n\n // Build data\n let data = [];\n\r\n for (let key in this._subscriptionByChannelKey) {\r\n let subscription = this._subscriptionByChannelKey[key];\n\r\n if (!subscription.sent) {\r\n data.push({\r\n channelKey: key,\r\n vars: subscription.vars,\r\n });\r\n }\r\n }\n\n // Subscribe\n let success = true;\n\r\n if (data.length > 0) {\r\n success = this._sendText('Subscribe:' + JSON.stringify(data));\r\n }\n\n if (success) {\n this._markSubscriptionsSent(true);\r\n this._connected();\n }\r\n }\r\n\n _unsubscribing(channelKey) {\r\n if (this._state === 'Disconnected') return;\n\n this._setState('Unsubscribing');\n let success = this._sendText('Unsubscribe:' + JSON.stringify(channelKey));\n\n if (success) {\n this._connected();\r\n }\r\n }\n\r\n _connected() {\n this._setState('Connected');\n\n let elapsedMillis = new Date().getTime() - this._lastSendTextMillis;\n let heartbeatEveryMillis = this._options.heartbeatEveryMillis || 3000;\n\n if (elapsedMillis >= heartbeatEveryMillis) {\n this._sendText('!');\n this._connected();\n }\n else {\n let wait = Math.max(0, heartbeatEveryMillis - elapsedMillis);\n\n this._stateTimeout = setTimeout(this._connected.bind(this), wait);\n }\r\n }\n\n disconnect() {\r\n console.debug('WebSocketChannelClient.disconnect()')\r\n this._setState('Disconnected');\r\n if (this._webSocket != null) {\n try {\r\n this._webSocket.close();\n }\n catch (e) { }\r\n this._webSocket = null;\r\n }\n this._clearStateTimeout();\n for (let channelKey in this._subscriptionByChannelKey) {\r\n let subscription = this._subscriptionByChannelKey[channelKey];\n\r\n if (subscription.handlers) {\r\n for (let i = 0; i < subscription.handlers.length; i++) {\r\n subscription.handlers[i]('RESET');\r\n }\r\n }\r\n }\r\n }\r\n\n _clearStateTimeout() {\n if (this._stateTimeout) {\n clearTimeout(this._stateTimeout);\n this._stateTimeout = null;\n }\r\n }\r\n\n _sendText(text) {\n console.debug(`_sendText():text=${text}`);\n try {\n this._webSocket.send(text);\n this._lastSendTextMillis = new Date().getTime();\n return true;\n }\n catch (e) {\n console.error(e);\n this._connecting();\n return false;\r\n }\r\n }\n\n _onMessage(event) {\r\n let message = JSON.parse(event.data);\n\r\n console.debug(`_onMessage():message.messageType=${message.messageType}`);\r\n if (message.channelKey) {\r\n let subscription = this._subscriptionByChannelKey[message.channelKey];\n\r\n if (subscription.handlers) {\r\n for (let i = 0; i < subscription.handlers.length; i++) {\r\n subscription.handlers[i](message.messageType, message.data);\r\n }\r\n }\r\n }\r\n else if (message.messageType === 'AUTHENTICATED') {\n this._markSubscriptionsSent(false);\r\n this._subscribing();\r\n }\r\n else if (message.messageType === 'UNAUTHENTICATED') {\r\n this.disconnect();\r\n }\r\n }\r\n\n _markSubscriptionsSent(value) {\r\n for (let key in this._subscriptionByChannelKey) {\r\n this._subscriptionByChannelKey[key].sent = value;\r\n }\r\n }\r\n\n subscribe(options) {\r\n let channelKey = options.channel || 'default';\n let handlers = Array.isArray(options.handler) ? options.handler : [options.handler];\n let vars = options.vars;\n\r\n // console.debug(`WebSocketChannelClient.subscribe():channelKey=${channelKey}`);\r\n this._removeSubscription(channelKey);\r\n this._addSubscription(channelKey, {\r\n vars,\r\n handlers,\r\n sent: false\r\n });\n if (this._state === 'Connected') {\n this._subscribing();\n }\r\n if (this._options.onSubscriptionsUpdated) this._options.onSubscriptionsUpdated();\r\n }\r\n\r\n unsubscribe(channelKey) {\r\n // console.debug(`WebSocketChannelClient.unsubscribe():channelKey=${channelKey}`);\r\n if (!channelKey) channelKey = 'default';\r\n this._removeSubscription(channelKey);\r\n this._unsubscribing(channelKey);\r\n if (this._options.onSubscriptionsUpdated) this._options.onSubscriptionsUpdated();\r\n }\r\n\r\n _addSubscription(channelKey, subscription) {\r\n this._subscriptionByChannelKey[channelKey] = subscription;\r\n }\r\n\r\n _removeSubscription(channelKey) {\r\n delete this._subscriptionByChannelKey[channelKey];\r\n }\r\n\r\n}\r\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://butterfly-client/webpack/universalModuleDefinition","webpack://butterfly-client/webpack/bootstrap","webpack://butterfly-client/./src/array-data-event-handler.js","webpack://butterfly-client/./src/index.js","webpack://butterfly-client/./src/vuex-array-getters.js","webpack://butterfly-client/./src/vuex-array-handler.js","webpack://butterfly-client/./src/vuex-array-mutations.js","webpack://butterfly-client/./src/web-socket-channel-client.js"],"names":["config","_private","keyFieldNamesByName","batchSize","queue","queueCurrentOffset","handleQueueTimeout","getKeyValue","name","record","result","keyFieldNames","i","length","value","handleDataEvent","dataEvent","dataEventType","onInitialEnd","array","arrayMapping","console","error","splice","keyValue","index","findIndex","x","_keyValue","handleQueue","clearTimeout","begin","end","Math","min","setTimeout","messageType","data","arrayKey","push","dataEvents","onChannelMessage","arrayName","state","callback","store","getters","start","deleteCount","item","commit","options","_options","url","indexOf","_url","window","location","protocol","host","_state","_stateTimeout","_auth","_subscriptionByChannelKey","debug","onStateChange","_clearStateTimeout","auth","_setState","_connecting","connectingStartMillis","Date","getTime","_webSocket","close","e","hasReconnected","reconnect","elapsedMillis","reconnectEveryMillis","wait","bind","WebSocket","onmessage","_onMessage","onopen","_authenticating","onerror","onclose","text","success","_sendText","authenticateEveryMillis","key","subscription","sent","channelKey","vars","JSON","stringify","_markSubscriptionsSent","_connected","_lastSendTextMillis","heartbeatEveryMillis","max","handlers","send","event","message","parse","_subscribing","onUnauthenticated","disconnect","channel","Array","isArray","handler","_removeSubscription","_addSubscription","onSubscriptionsUpdated","_unsubscribing"],"mappings":"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","file":"butterfly-client.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"butterfly-client\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"butterfly-client\"] = factory();\n\telse\n\t\troot[\"butterfly-client\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.js\");\n","export default function (config) {\r\n let _private = this;\r\n\r\n let keyFieldNamesByName = {};\r\n let batchSize = config.batchSize || 250;\n\n let queue = [];\n let queueCurrentOffset = 0;\n let handleQueueTimeout = null;\n\r\n _private.getKeyValue = function (name, record) {\r\n let result = '';\r\n let keyFieldNames = keyFieldNamesByName[name];\r\n for (let i = 0; i < keyFieldNames.length; i++) {\r\n let value = record[keyFieldNames[i]];\r\n if (!result && result.length > 0) result += ';';\r\n result += '' + value;\r\n }\r\n return result;\r\n }\r\n\n _private.handleDataEvent = function (dataEvent) {\n //console.debug('ArrayDataEventHandler.handle():dataEvent.type=' + dataEvent.dataEventType + ',name=', dataEvent.name + ',keyValue=' + dataEvent.keyValue);\r\n if (dataEvent.dataEventType === 'InitialEnd') {\r\n if (config.onInitialEnd) config.onInitialEnd();\r\n }\r\n else {\r\n let array = config.arrayMapping[dataEvent.name];\r\n if (!array) {\r\n console.error('No mapping for data event \\'' + dataEvent.name + '\\'');\r\n }\r\n else if (dataEvent.dataEventType === 'InitialBegin') {\r\n array.splice(0, array.length);\r\n keyFieldNamesByName[dataEvent.name] = dataEvent.keyFieldNames;\r\n }\r\n else if (dataEvent.dataEventType === 'Insert' || dataEvent.dataEventType === 'Initial') {\r\n let keyValue = _private.getKeyValue(dataEvent.name, dataEvent.record);\r\n let index = array.findIndex(x => x._keyValue == keyValue);\r\n if (index >= 0) {\r\n console.error('Duplicate key \\'' + keyValue + '\\' in table \\'' + dataEvent.name + '\\'');\r\n }\r\n else {\r\n dataEvent.record['_keyValue'] = keyValue;\r\n array.splice(array.length, 0, dataEvent.record);\r\n }\r\n }\r\n else if (dataEvent.dataEventType === 'Update') {\r\n let keyValue = _private.getKeyValue(dataEvent.name, dataEvent.record);\r\n let index = array.findIndex(x => x._keyValue == keyValue);\r\n if (index == -1) {\r\n console.error('Could not find key \\'' + keyValue + '\\' in table \\'' + dataEvent.name + '\\'');\r\n }\r\n else {\r\n dataEvent.record['_keyValue'] = keyValue;\r\n array.splice(index, 1, dataEvent.record);\r\n }\r\n }\r\n else if (dataEvent.dataEventType === 'Delete') {\r\n let keyValue = _private.getKeyValue(dataEvent.name, dataEvent.record);\r\n let index = array.findIndex(x => x._keyValue == keyValue);\r\n array.splice(index, 1);\r\n }\r\n }\r\n };\n\n _private.handleQueue = function () {\n if (handleQueueTimeout) clearTimeout(handleQueueTimeout);\n\n if (queue.length > 0) {\n let begin = queueCurrentOffset;\n let end = Math.min(begin + batchSize, queue[0].length);\n for (let i = begin; i < end; i++) {\n _private.handleDataEvent(queue[0][i]);\r\n }\n if (end === queue[0].length) {\n queue.splice(0, 1);\n queueCurrentOffset = 0;\r\n }\n else {\n queueCurrentOffset += batchSize;\n handleQueueTimeout = setTimeout(_private.handleQueue, 0);\r\n }\n }\r\n }\n\r\n return function (messageType, data) {\r\n if (messageType === 'RESET') {\r\n for (let arrayKey in config.arrayMapping) {\r\n let array = config.arrayMapping[arrayKey];\r\n if (array) array.splice(0, array.length);\r\n }\r\n }\r\n else if (messageType === 'DATA-EVENT-TRANSACTION') {\r\n queue.push(data.dataEvents);\n _private.handleQueue();\r\n }\r\n else if (config.onChannelMessage) {\r\n config.onChannelMessage(messageType, data);\r\n }\r\n }\r\n}\r\n","import ArrayDataEventHandler from './array-data-event-handler.js';\nimport VuexArrayGetters from './vuex-array-getters.js';\nimport VuexArrayHandler from './vuex-array-handler.js';\nimport VuexArrayMutations from './vuex-array-mutations.js';\nimport WebSocketChannelClient from './web-socket-channel-client.js';\n\nexport {\n ArrayDataEventHandler,\n VuexArrayGetters,\n VuexArrayHandler,\n VuexArrayMutations,\n WebSocketChannelClient\r\n};\n","export default function(arrayName) {\r\n\tlet result = {};\r\n\tresult[`${arrayName}Length`] = state => state[arrayName].length;\r\n\tresult[`${arrayName}FindIndex`] = state => callback => state[arrayName].findIndex(callback);\r\n\treturn result;\r\n}\r\n","export default function(store, arrayName) {\r\n\treturn {\r\n\t\tget length() { return store.getters[`${arrayName}Length`] },\r\n\t\tfindIndex(callback) { return store.getters[`${arrayName}FindIndex`](callback) },\r\n\t\tsplice(start, deleteCount, item) {\r\n\t\t\treturn store.commit(`${arrayName}Splice`, { start, deleteCount, item });\r\n\t\t},\r\n\t};\r\n}\r\n","export default function(arrayName) {\r\n\tlet result = {};\r\n\tresult[`${arrayName}Splice`] = (state, options) => {\r\n\t\tif (options.item) state[arrayName].splice(options.start, options.deleteCount, options.item);\r\n\t\telse state[arrayName].splice(options.start, options.deleteCount);\r\n\t};\r\n\treturn result;\r\n}\r\n","/*\n * States...\n * Disconnected - No WebSocket, no loop running\n * Connecting - Create WebSocket and wait for WebSocket.onopen()\n * Authenticating - Send Authentication and wait for server to send AUTHENTICATED or UNAUTHENTICATED\n * Subscribing - Send subscriptions and transition to Connected\n * Connected - Send heartbeats to server\n */\n\nexport default class {\r\n constructor(options) {\r\n this._options = options;\r\n\r\n let url = this._options.url;\n\r\n if (url.indexOf('://') === -1) {\r\n this._url = (window.location.protocol === 'https:' ? 'wss:' : 'ws:') + '//' + window.location.host + url;\r\n }\r\n else {\r\n this._url = url;\r\n }\r\n\r\n this._state = 'Disconnected';\n this._stateTimeout = null;\r\n this._auth = null;\r\n this._subscriptionByChannelKey = {};\r\n }\r\n\r\n _setState(value) {\r\n if (this._state !== value) {\n console.debug(`_setState():value=${value}`);\r\n this._state = value;\r\n if (this._options.onStateChange) this._options.onStateChange(value);\r\n this._clearStateTimeout();\n }\r\n }\r\n\n connect(auth) {\r\n console.debug('WebSocketChannelClient.connect()');\r\n this._auth = auth;\n\r\n this._setState('Connecting');\n this._connecting();\r\n }\r\n\r\n _connecting() {\n if (this._state === 'Disconnected') return;\n\n this._setState('Connecting');\n let connectingStartMillis = new Date().getTime();\n\n if (this._webSocket) {\n try {\n this._webSocket.close();\n }\n catch (e) { }\n this._webSocket = null;\r\n }\n\n let hasReconnected = false;\n let reconnect = error => {\n if (hasReconnected) return;\n hasReconnected = true;\n\n console.debug(`_connecting():reconnect():error=${error}`);\n let elapsedMillis = new Date().getTime() - connectingStartMillis;\n let reconnectEveryMillis = this._options.reconnectEveryMillis || 3000;\n\n if (elapsedMillis > reconnectEveryMillis) {\n this._connecting();\n }\n else {\n let wait = reconnectEveryMillis - elapsedMillis;\n\n this._stateTimeout = setTimeout(this._connecting.bind(this), wait);\r\n }\n };\n\r\n try {\r\n console.debug(`_connecting():new WebSocket(${this._url})`);\r\n this._webSocket = new WebSocket(this._url);\r\n this._webSocket.onmessage = this._onMessage.bind(this);\r\n this._webSocket.onopen = this._authenticating.bind(this);\n this._webSocket.onerror = reconnect.bind(this);\r\n this._webSocket.onclose = reconnect.bind(this);\r\n }\r\n catch (e) {\r\n reconnect(e);\r\n }\r\n }\n\n _authenticating() {\n if (this._state === 'Disconnected') return;\n\n this._setState('Authenticating');\n let text = 'Authorization:' + (this._auth || '');\n let success = this._sendText(text);\n\n if (success) {\n let authenticateEveryMillis = this._options.authenticateEveryMillis || 3000;\n\n this._stateTimeout = setTimeout(this._authenticating.bind(this), authenticateEveryMillis);\n }\r\n }\n\n _subscribing() {\r\n if (this._state === 'Disconnected') return;\n\n this._setState('Subscribing');\n\n // Build data\n let data = [];\n\r\n for (let key in this._subscriptionByChannelKey) {\r\n let subscription = this._subscriptionByChannelKey[key];\n\r\n if (!subscription.sent) {\r\n data.push({\r\n channelKey: key,\r\n vars: subscription.vars,\r\n });\r\n }\r\n }\n\n // Subscribe\n let success = true;\n\r\n if (data.length > 0) {\r\n success = this._sendText('Subscribe:' + JSON.stringify(data));\r\n }\n\n if (success) {\n this._markSubscriptionsSent(true);\r\n this._connected();\n }\r\n }\r\n\n _unsubscribing(channelKey) {\r\n if (this._state === 'Disconnected') return;\n\n this._setState('Unsubscribing');\n let success = this._sendText('Unsubscribe:' + JSON.stringify(channelKey));\n\n if (success) {\n this._connected();\r\n }\r\n }\n\r\n _connected() {\n this._setState('Connected');\n\n let elapsedMillis = new Date().getTime() - this._lastSendTextMillis;\n let heartbeatEveryMillis = this._options.heartbeatEveryMillis || 3000;\n\n if (elapsedMillis >= heartbeatEveryMillis) {\n this._sendText('!');\n this._connected();\n }\n else {\n let wait = Math.max(0, heartbeatEveryMillis - elapsedMillis);\n\n this._stateTimeout = setTimeout(this._connected.bind(this), wait);\n }\r\n }\n\n disconnect() {\r\n console.debug('WebSocketChannelClient.disconnect()')\r\n this._setState('Disconnected');\r\n if (this._webSocket != null) {\n try {\r\n this._webSocket.close();\n }\n catch (e) { }\r\n this._webSocket = null;\r\n }\n this._clearStateTimeout();\n for (let channelKey in this._subscriptionByChannelKey) {\r\n let subscription = this._subscriptionByChannelKey[channelKey];\n\r\n if (subscription.handlers) {\r\n for (let i = 0; i < subscription.handlers.length; i++) {\r\n subscription.handlers[i]('RESET');\r\n }\r\n }\r\n }\r\n }\r\n\n _clearStateTimeout() {\n if (this._stateTimeout) {\n clearTimeout(this._stateTimeout);\n this._stateTimeout = null;\n }\r\n }\r\n\n _sendText(text) {\n console.debug(`_sendText():text=${text}`);\n try {\n this._webSocket.send(text);\n this._lastSendTextMillis = new Date().getTime();\n return true;\n }\n catch (e) {\n console.error(e);\n this._connecting();\n return false;\r\n }\r\n }\n\n _onMessage(event) {\r\n let message = JSON.parse(event.data);\n\r\n console.debug(`_onMessage():message.messageType=${message.messageType}`);\r\n if (message.channelKey) {\r\n let subscription = this._subscriptionByChannelKey[message.channelKey];\n\r\n if (subscription.handlers) {\r\n for (let i = 0; i < subscription.handlers.length; i++) {\r\n subscription.handlers[i](message.messageType, message.data);\r\n }\r\n }\r\n }\r\n else if (message.messageType === 'AUTHENTICATED') {\n this._markSubscriptionsSent(false);\r\n this._subscribing();\r\n }\r\n else if (message.messageType === 'UNAUTHENTICATED') {\r\n if (this._options.onUnauthenticated) this._options.onUnauthenticated(message.data);\r\n this.disconnect();\r\n }\r\n }\r\n\n _markSubscriptionsSent(value) {\r\n for (let key in this._subscriptionByChannelKey) {\r\n this._subscriptionByChannelKey[key].sent = value;\r\n }\r\n }\r\n\n subscribe(options) {\r\n let channelKey = options.channel || 'default';\n let handlers = Array.isArray(options.handler) ? options.handler : [options.handler];\n let vars = options.vars;\n\r\n // console.debug(`WebSocketChannelClient.subscribe():channelKey=${channelKey}`);\r\n this._removeSubscription(channelKey);\r\n this._addSubscription(channelKey, {\r\n vars,\r\n handlers,\r\n sent: false\r\n });\n if (this._state === 'Connected') {\n this._subscribing();\n }\r\n if (this._options.onSubscriptionsUpdated) this._options.onSubscriptionsUpdated();\r\n }\r\n\r\n unsubscribe(channelKey) {\r\n // console.debug(`WebSocketChannelClient.unsubscribe():channelKey=${channelKey}`);\r\n if (!channelKey) channelKey = 'default';\r\n this._removeSubscription(channelKey);\r\n this._unsubscribing(channelKey);\r\n if (this._options.onSubscriptionsUpdated) this._options.onSubscriptionsUpdated();\r\n }\r\n\r\n _addSubscription(channelKey, subscription) {\r\n this._subscriptionByChannelKey[channelKey] = subscription;\r\n }\r\n\r\n _removeSubscription(channelKey) {\r\n delete this._subscriptionByChannelKey[channelKey];\r\n }\r\n\r\n}\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/Butterfly.Client.Web/lib/butterfly-client.min.js b/Butterfly.Client.Web/lib/butterfly-client.min.js index 482c26d9..288944f5 100644 --- a/Butterfly.Client.Web/lib/butterfly-client.min.js +++ b/Butterfly.Client.Web/lib/butterfly-client.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("butterfly-client",[],t):"object"==typeof exports?exports["butterfly-client"]=t():e["butterfly-client"]=t()}(window,function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var s=t[i]={i:i,l:!1,exports:{}};return e[i].call(s.exports,s,s.exports,n),s.l=!0,s.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)n.d(i,s,function(t){return e[t]}.bind(null,s));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ArrayDataEventHandler",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"VuexArrayGetters",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"VuexArrayHandler",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"VuexArrayMutations",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(t,"WebSocketChannelClient",{enumerable:!0,get:function(){return a.default}});var i=c(n(1)),s=c(n(2)),o=c(n(3)),r=c(n(4)),a=c(n(5));function c(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=this,n={},i=e.batchSize||250,s=[],o=0,r=null;return t.getKeyValue=function(e,t){for(var i="",s=n[e],o=0;o0&&(i+=";"),i+=""+r}return i},t.handleDataEvent=function(i){if("InitialEnd"===i.dataEventType)e.onInitialEnd&&e.onInitialEnd();else{var s=e.arrayMapping[i.name];if(s){if("InitialBegin"===i.dataEventType)s.splice(0,s.length),n[i.name]=i.keyFieldNames;else if("Insert"===i.dataEventType||"Initial"===i.dataEventType){var o=t.getKeyValue(i.name,i.record);s.findIndex(function(e){return e._keyValue==o})>=0?console.error("Duplicate key '"+o+"' in table '"+i.name+"'"):(i.record._keyValue=o,s.splice(s.length,0,i.record))}else if("Update"===i.dataEventType){var r=t.getKeyValue(i.name,i.record),a=s.findIndex(function(e){return e._keyValue==r});-1==a?console.error("Could not find key '"+r+"' in table '"+i.name+"'"):(i.record._keyValue=r,s.splice(a,1,i.record))}else if("Delete"===i.dataEventType){var c=t.getKeyValue(i.name,i.record),u=s.findIndex(function(e){return e._keyValue==c});s.splice(u,1)}}else console.error("No mapping for data event '"+i.name+"'")}},t.handleQueue=function(){if(r&&clearTimeout(r),s.length>0){for(var e=o,n=Math.min(e+i,s[0].length),a=e;ao)e._connecting();else{var r=o-s;e._stateTimeout=setTimeout(e._connecting.bind(e),r)}}};try{console.debug("_connecting():new WebSocket(".concat(this._url,")")),this._webSocket=new WebSocket(this._url),this._webSocket.onmessage=this._onMessage.bind(this),this._webSocket.onopen=this._authenticating.bind(this),this._webSocket.onerror=i.bind(this),this._webSocket.onclose=i.bind(this)}catch(e){i(e)}}}},{key:"_authenticating",value:function(){if("Disconnected"!==this._state){this._setState("Authenticating");var e="Authorization:"+(this._auth||"");if(this._sendText(e)){var t=this._options.authenticateEveryMillis||3e3;this._stateTimeout=setTimeout(this._authenticating.bind(this),t)}}}},{key:"_subscribing",value:function(){if("Disconnected"!==this._state){this._setState("Subscribing");var e=[];for(var t in this._subscriptionByChannelKey){var n=this._subscriptionByChannelKey[t];n.sent||e.push({channelKey:t,vars:n.vars})}var i=!0;e.length>0&&(i=this._sendText("Subscribe:"+JSON.stringify(e))),i&&(this._markSubscriptionsSent(!0),this._connected())}}},{key:"_unsubscribing",value:function(e){"Disconnected"!==this._state&&(this._setState("Unsubscribing"),this._sendText("Unsubscribe:"+JSON.stringify(e))&&this._connected())}},{key:"_connected",value:function(){this._setState("Connected");var e=(new Date).getTime()-this._lastSendTextMillis,t=this._options.heartbeatEveryMillis||3e3;if(e>=t)this._sendText("!"),this._connected();else{var n=Math.max(0,t-e);this._stateTimeout=setTimeout(this._connected.bind(this),n)}}},{key:"disconnect",value:function(){if(console.debug("WebSocketChannelClient.disconnect()"),this._setState("Disconnected"),null!=this._webSocket){try{this._webSocket.close()}catch(e){}this._webSocket=null}for(var e in this._clearStateTimeout(),this._subscriptionByChannelKey){var t=this._subscriptionByChannelKey[e];if(t.handlers)for(var n=0;n0&&(i+=";"),i+=""+r}return i},t.handleDataEvent=function(i){if("InitialEnd"===i.dataEventType)e.onInitialEnd&&e.onInitialEnd();else{var s=e.arrayMapping[i.name];if(s){if("InitialBegin"===i.dataEventType)s.splice(0,s.length),n[i.name]=i.keyFieldNames;else if("Insert"===i.dataEventType||"Initial"===i.dataEventType){var o=t.getKeyValue(i.name,i.record);s.findIndex(function(e){return e._keyValue==o})>=0?console.error("Duplicate key '"+o+"' in table '"+i.name+"'"):(i.record._keyValue=o,s.splice(s.length,0,i.record))}else if("Update"===i.dataEventType){var r=t.getKeyValue(i.name,i.record),a=s.findIndex(function(e){return e._keyValue==r});-1==a?console.error("Could not find key '"+r+"' in table '"+i.name+"'"):(i.record._keyValue=r,s.splice(a,1,i.record))}else if("Delete"===i.dataEventType){var c=t.getKeyValue(i.name,i.record),u=s.findIndex(function(e){return e._keyValue==c});s.splice(u,1)}}else console.error("No mapping for data event '"+i.name+"'")}},t.handleQueue=function(){if(r&&clearTimeout(r),s.length>0){for(var e=o,n=Math.min(e+i,s[0].length),a=e;ao)e._connecting();else{var r=o-s;e._stateTimeout=setTimeout(e._connecting.bind(e),r)}}};try{console.debug("_connecting():new WebSocket(".concat(this._url,")")),this._webSocket=new WebSocket(this._url),this._webSocket.onmessage=this._onMessage.bind(this),this._webSocket.onopen=this._authenticating.bind(this),this._webSocket.onerror=i.bind(this),this._webSocket.onclose=i.bind(this)}catch(e){i(e)}}}},{key:"_authenticating",value:function(){if("Disconnected"!==this._state){this._setState("Authenticating");var e="Authorization:"+(this._auth||"");if(this._sendText(e)){var t=this._options.authenticateEveryMillis||3e3;this._stateTimeout=setTimeout(this._authenticating.bind(this),t)}}}},{key:"_subscribing",value:function(){if("Disconnected"!==this._state){this._setState("Subscribing");var e=[];for(var t in this._subscriptionByChannelKey){var n=this._subscriptionByChannelKey[t];n.sent||e.push({channelKey:t,vars:n.vars})}var i=!0;e.length>0&&(i=this._sendText("Subscribe:"+JSON.stringify(e))),i&&(this._markSubscriptionsSent(!0),this._connected())}}},{key:"_unsubscribing",value:function(e){"Disconnected"!==this._state&&(this._setState("Unsubscribing"),this._sendText("Unsubscribe:"+JSON.stringify(e))&&this._connected())}},{key:"_connected",value:function(){this._setState("Connected");var e=(new Date).getTime()-this._lastSendTextMillis,t=this._options.heartbeatEveryMillis||3e3;if(e>=t)this._sendText("!"),this._connected();else{var n=Math.max(0,t-e);this._stateTimeout=setTimeout(this._connected.bind(this),n)}}},{key:"disconnect",value:function(){if(console.debug("WebSocketChannelClient.disconnect()"),this._setState("Disconnected"),null!=this._webSocket){try{this._webSocket.close()}catch(e){}this._webSocket=null}for(var e in this._clearStateTimeout(),this._subscriptionByChannelKey){var t=this._subscriptionByChannelKey[e];if(t.handlers)for(var n=0;n 0) result += ';';\r\n result += '' + value;\r\n }\r\n return result;\r\n }\r\n\n _private.handleDataEvent = function (dataEvent) {\n //console.debug('ArrayDataEventHandler.handle():dataEvent.type=' + dataEvent.dataEventType + ',name=', dataEvent.name + ',keyValue=' + dataEvent.keyValue);\r\n if (dataEvent.dataEventType === 'InitialEnd') {\r\n if (config.onInitialEnd) config.onInitialEnd();\r\n }\r\n else {\r\n let array = config.arrayMapping[dataEvent.name];\r\n if (!array) {\r\n console.error('No mapping for data event \\'' + dataEvent.name + '\\'');\r\n }\r\n else if (dataEvent.dataEventType === 'InitialBegin') {\r\n array.splice(0, array.length);\r\n keyFieldNamesByName[dataEvent.name] = dataEvent.keyFieldNames;\r\n }\r\n else if (dataEvent.dataEventType === 'Insert' || dataEvent.dataEventType === 'Initial') {\r\n let keyValue = _private.getKeyValue(dataEvent.name, dataEvent.record);\r\n let index = array.findIndex(x => x._keyValue == keyValue);\r\n if (index >= 0) {\r\n console.error('Duplicate key \\'' + keyValue + '\\' in table \\'' + dataEvent.name + '\\'');\r\n }\r\n else {\r\n dataEvent.record['_keyValue'] = keyValue;\r\n array.splice(array.length, 0, dataEvent.record);\r\n }\r\n }\r\n else if (dataEvent.dataEventType === 'Update') {\r\n let keyValue = _private.getKeyValue(dataEvent.name, dataEvent.record);\r\n let index = array.findIndex(x => x._keyValue == keyValue);\r\n if (index == -1) {\r\n console.error('Could not find key \\'' + keyValue + '\\' in table \\'' + dataEvent.name + '\\'');\r\n }\r\n else {\r\n dataEvent.record['_keyValue'] = keyValue;\r\n array.splice(index, 1, dataEvent.record);\r\n }\r\n }\r\n else if (dataEvent.dataEventType === 'Delete') {\r\n let keyValue = _private.getKeyValue(dataEvent.name, dataEvent.record);\r\n let index = array.findIndex(x => x._keyValue == keyValue);\r\n array.splice(index, 1);\r\n }\r\n }\r\n };\n\n _private.handleQueue = function () {\n if (handleQueueTimeout) clearTimeout(handleQueueTimeout);\n\n if (queue.length > 0) {\n let begin = queueCurrentOffset;\n let end = Math.min(begin + batchSize, queue[0].length);\n for (let i = begin; i < end; i++) {\n _private.handleDataEvent(queue[0][i]);\r\n }\n if (end === queue[0].length) {\n queue.splice(0, 1);\n queueCurrentOffset = 0;\r\n }\n else {\n queueCurrentOffset += batchSize;\n handleQueueTimeout = setTimeout(_private.handleQueue, 0);\r\n }\n }\r\n }\n\r\n return function (messageType, data) {\r\n if (messageType === 'RESET') {\r\n for (let arrayKey in config.arrayMapping) {\r\n let array = config.arrayMapping[arrayKey];\r\n if (array) array.splice(0, array.length);\r\n }\r\n }\r\n else if (messageType === 'DATA-EVENT-TRANSACTION') {\r\n queue.push(data.dataEvents);\n _private.handleQueue();\r\n }\r\n else if (config.onChannelMessage) {\r\n config.onChannelMessage(messageType, data);\r\n }\r\n }\r\n}\r\n","export default function(arrayName) {\r\n\tlet result = {};\r\n\tresult[`${arrayName}Length`] = state => state[arrayName].length;\r\n\tresult[`${arrayName}FindIndex`] = state => callback => state[arrayName].findIndex(callback);\r\n\treturn result;\r\n}\r\n","export default function(store, arrayName) {\r\n\treturn {\r\n\t\tget length() { return store.getters[`${arrayName}Length`] },\r\n\t\tfindIndex(callback) { return store.getters[`${arrayName}FindIndex`](callback) },\r\n\t\tsplice(start, deleteCount, item) {\r\n\t\t\treturn store.commit(`${arrayName}Splice`, { start, deleteCount, item });\r\n\t\t},\r\n\t};\r\n}\r\n","export default function(arrayName) {\r\n\tlet result = {};\r\n\tresult[`${arrayName}Splice`] = (state, options) => {\r\n\t\tif (options.item) state[arrayName].splice(options.start, options.deleteCount, options.item);\r\n\t\telse state[arrayName].splice(options.start, options.deleteCount);\r\n\t};\r\n\treturn result;\r\n}\r\n","/*\n * States...\n * Disconnected - No WebSocket, no loop running\n * Connecting - Create WebSocket and wait for WebSocket.onopen()\n * Authenticating - Send Authentication and wait for server to send AUTHENTICATED or UNAUTHENTICATED\n * Subscribing - Send subscriptions and transition to Connected\n * Connected - Send heartbeats to server\n */\n\nexport default class {\r\n constructor(options) {\r\n this._options = options;\r\n\r\n let url = this._options.url;\n\r\n if (url.indexOf('://') === -1) {\r\n this._url = (window.location.protocol === 'https:' ? 'wss:' : 'ws:') + '//' + window.location.host + url;\r\n }\r\n else {\r\n this._url = url;\r\n }\r\n\r\n this._state = 'Disconnected';\n this._stateTimeout = null;\r\n this._auth = null;\r\n this._subscriptionByChannelKey = {};\r\n }\r\n\r\n _setState(value) {\r\n if (this._state !== value) {\n console.debug(`_setState():value=${value}`);\r\n this._state = value;\r\n if (this._options.onStateChange) this._options.onStateChange(value);\r\n this._clearStateTimeout();\n }\r\n }\r\n\n connect(auth) {\r\n console.debug('WebSocketChannelClient.connect()');\r\n this._auth = auth;\n\r\n this._setState('Connecting');\n this._connecting();\r\n }\r\n\r\n _connecting() {\n if (this._state === 'Disconnected') return;\n\n this._setState('Connecting');\n let connectingStartMillis = new Date().getTime();\n\n if (this._webSocket) {\n try {\n this._webSocket.close();\n }\n catch (e) { }\n this._webSocket = null;\r\n }\n\n let hasReconnected = false;\n let reconnect = error => {\n if (hasReconnected) return;\n hasReconnected = true;\n\n console.debug(`_connecting():reconnect():error=${error}`);\n let elapsedMillis = new Date().getTime() - connectingStartMillis;\n let reconnectEveryMillis = this._options.reconnectEveryMillis || 3000;\n\n if (elapsedMillis > reconnectEveryMillis) {\n this._connecting();\n }\n else {\n let wait = reconnectEveryMillis - elapsedMillis;\n\n this._stateTimeout = setTimeout(this._connecting.bind(this), wait);\r\n }\n };\n\r\n try {\r\n console.debug(`_connecting():new WebSocket(${this._url})`);\r\n this._webSocket = new WebSocket(this._url);\r\n this._webSocket.onmessage = this._onMessage.bind(this);\r\n this._webSocket.onopen = this._authenticating.bind(this);\n this._webSocket.onerror = reconnect.bind(this);\r\n this._webSocket.onclose = reconnect.bind(this);\r\n }\r\n catch (e) {\r\n reconnect(e);\r\n }\r\n }\n\n _authenticating() {\n if (this._state === 'Disconnected') return;\n\n this._setState('Authenticating');\n let text = 'Authorization:' + (this._auth || '');\n let success = this._sendText(text);\n\n if (success) {\n let authenticateEveryMillis = this._options.authenticateEveryMillis || 3000;\n\n this._stateTimeout = setTimeout(this._authenticating.bind(this), authenticateEveryMillis);\n }\r\n }\n\n _subscribing() {\r\n if (this._state === 'Disconnected') return;\n\n this._setState('Subscribing');\n\n // Build data\n let data = [];\n\r\n for (let key in this._subscriptionByChannelKey) {\r\n let subscription = this._subscriptionByChannelKey[key];\n\r\n if (!subscription.sent) {\r\n data.push({\r\n channelKey: key,\r\n vars: subscription.vars,\r\n });\r\n }\r\n }\n\n // Subscribe\n let success = true;\n\r\n if (data.length > 0) {\r\n success = this._sendText('Subscribe:' + JSON.stringify(data));\r\n }\n\n if (success) {\n this._markSubscriptionsSent(true);\r\n this._connected();\n }\r\n }\r\n\n _unsubscribing(channelKey) {\r\n if (this._state === 'Disconnected') return;\n\n this._setState('Unsubscribing');\n let success = this._sendText('Unsubscribe:' + JSON.stringify(channelKey));\n\n if (success) {\n this._connected();\r\n }\r\n }\n\r\n _connected() {\n this._setState('Connected');\n\n let elapsedMillis = new Date().getTime() - this._lastSendTextMillis;\n let heartbeatEveryMillis = this._options.heartbeatEveryMillis || 3000;\n\n if (elapsedMillis >= heartbeatEveryMillis) {\n this._sendText('!');\n this._connected();\n }\n else {\n let wait = Math.max(0, heartbeatEveryMillis - elapsedMillis);\n\n this._stateTimeout = setTimeout(this._connected.bind(this), wait);\n }\r\n }\n\n disconnect() {\r\n console.debug('WebSocketChannelClient.disconnect()')\r\n this._setState('Disconnected');\r\n if (this._webSocket != null) {\n try {\r\n this._webSocket.close();\n }\n catch (e) { }\r\n this._webSocket = null;\r\n }\n this._clearStateTimeout();\n for (let channelKey in this._subscriptionByChannelKey) {\r\n let subscription = this._subscriptionByChannelKey[channelKey];\n\r\n if (subscription.handlers) {\r\n for (let i = 0; i < subscription.handlers.length; i++) {\r\n subscription.handlers[i]('RESET');\r\n }\r\n }\r\n }\r\n }\r\n\n _clearStateTimeout() {\n if (this._stateTimeout) {\n clearTimeout(this._stateTimeout);\n this._stateTimeout = null;\n }\r\n }\r\n\n _sendText(text) {\n console.debug(`_sendText():text=${text}`);\n try {\n this._webSocket.send(text);\n this._lastSendTextMillis = new Date().getTime();\n return true;\n }\n catch (e) {\n console.error(e);\n this._connecting();\n return false;\r\n }\r\n }\n\n _onMessage(event) {\r\n let message = JSON.parse(event.data);\n\r\n console.debug(`_onMessage():message.messageType=${message.messageType}`);\r\n if (message.channelKey) {\r\n let subscription = this._subscriptionByChannelKey[message.channelKey];\n\r\n if (subscription.handlers) {\r\n for (let i = 0; i < subscription.handlers.length; i++) {\r\n subscription.handlers[i](message.messageType, message.data);\r\n }\r\n }\r\n }\r\n else if (message.messageType === 'AUTHENTICATED') {\n this._markSubscriptionsSent(false);\r\n this._subscribing();\r\n }\r\n else if (message.messageType === 'UNAUTHENTICATED') {\r\n this.disconnect();\r\n }\r\n }\r\n\n _markSubscriptionsSent(value) {\r\n for (let key in this._subscriptionByChannelKey) {\r\n this._subscriptionByChannelKey[key].sent = value;\r\n }\r\n }\r\n\n subscribe(options) {\r\n let channelKey = options.channel || 'default';\n let handlers = Array.isArray(options.handler) ? options.handler : [options.handler];\n let vars = options.vars;\n\r\n // console.debug(`WebSocketChannelClient.subscribe():channelKey=${channelKey}`);\r\n this._removeSubscription(channelKey);\r\n this._addSubscription(channelKey, {\r\n vars,\r\n handlers,\r\n sent: false\r\n });\n if (this._state === 'Connected') {\n this._subscribing();\n }\r\n if (this._options.onSubscriptionsUpdated) this._options.onSubscriptionsUpdated();\r\n }\r\n\r\n unsubscribe(channelKey) {\r\n // console.debug(`WebSocketChannelClient.unsubscribe():channelKey=${channelKey}`);\r\n if (!channelKey) channelKey = 'default';\r\n this._removeSubscription(channelKey);\r\n this._unsubscribing(channelKey);\r\n if (this._options.onSubscriptionsUpdated) this._options.onSubscriptionsUpdated();\r\n }\r\n\r\n _addSubscription(channelKey, subscription) {\r\n this._subscriptionByChannelKey[channelKey] = subscription;\r\n }\r\n\r\n _removeSubscription(channelKey) {\r\n delete this._subscriptionByChannelKey[channelKey];\r\n }\r\n\r\n}\r\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://butterfly-client/webpack/universalModuleDefinition","webpack://butterfly-client/webpack/bootstrap","webpack://butterfly-client/./src/index.js","webpack://butterfly-client/./src/array-data-event-handler.js","webpack://butterfly-client/./src/vuex-array-getters.js","webpack://butterfly-client/./src/vuex-array-handler.js","webpack://butterfly-client/./src/vuex-array-mutations.js","webpack://butterfly-client/./src/web-socket-channel-client.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_arrayDataEventHandler","_interopRequireDefault","_vuexArrayGetters","_vuexArrayHandler","_vuexArrayMutations","_webSocketChannelClient","config","_private","this","keyFieldNamesByName","batchSize","queue","queueCurrentOffset","handleQueueTimeout","getKeyValue","record","result","keyFieldNames","length","handleDataEvent","dataEvent","dataEventType","onInitialEnd","array","arrayMapping","splice","keyValue","findIndex","x","_keyValue","console","error","index","handleQueue","clearTimeout","begin","end","Math","min","setTimeout","messageType","data","arrayKey","push","dataEvents","onChannelMessage","arrayName","concat","state","callback","store","getters","start","deleteCount","item","commit","options","_class","_classCallCheck","_options","url","indexOf","_url","location","protocol","host","_state","_stateTimeout","_auth","_subscriptionByChannelKey","debug","onStateChange","_clearStateTimeout","auth","_setState","_connecting","_this","connectingStartMillis","Date","getTime","_webSocket","close","e","hasReconnected","reconnect","elapsedMillis","reconnectEveryMillis","wait","WebSocket","onmessage","_onMessage","onopen","_authenticating","onerror","onclose","text","_sendText","authenticateEveryMillis","subscription","sent","channelKey","vars","success","JSON","stringify","_markSubscriptionsSent","_connected","_lastSendTextMillis","heartbeatEveryMillis","max","handlers","send","event","message","parse","_subscribing","onUnauthenticated","disconnect","channel","Array","isArray","handler","_removeSubscription","_addSubscription","onSubscriptionsUpdated","_unsubscribing"],"mappings":"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","file":"butterfly-client.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"butterfly-client\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"butterfly-client\"] = factory();\n\telse\n\t\troot[\"butterfly-client\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import ArrayDataEventHandler from './array-data-event-handler.js';\nimport VuexArrayGetters from './vuex-array-getters.js';\nimport VuexArrayHandler from './vuex-array-handler.js';\nimport VuexArrayMutations from './vuex-array-mutations.js';\nimport WebSocketChannelClient from './web-socket-channel-client.js';\n\nexport {\n ArrayDataEventHandler,\n VuexArrayGetters,\n VuexArrayHandler,\n VuexArrayMutations,\n WebSocketChannelClient\r\n};\n","export default function (config) {\r\n let _private = this;\r\n\r\n let keyFieldNamesByName = {};\r\n let batchSize = config.batchSize || 250;\n\n let queue = [];\n let queueCurrentOffset = 0;\n let handleQueueTimeout = null;\n\r\n _private.getKeyValue = function (name, record) {\r\n let result = '';\r\n let keyFieldNames = keyFieldNamesByName[name];\r\n for (let i = 0; i < keyFieldNames.length; i++) {\r\n let value = record[keyFieldNames[i]];\r\n if (!result && result.length > 0) result += ';';\r\n result += '' + value;\r\n }\r\n return result;\r\n }\r\n\n _private.handleDataEvent = function (dataEvent) {\n //console.debug('ArrayDataEventHandler.handle():dataEvent.type=' + dataEvent.dataEventType + ',name=', dataEvent.name + ',keyValue=' + dataEvent.keyValue);\r\n if (dataEvent.dataEventType === 'InitialEnd') {\r\n if (config.onInitialEnd) config.onInitialEnd();\r\n }\r\n else {\r\n let array = config.arrayMapping[dataEvent.name];\r\n if (!array) {\r\n console.error('No mapping for data event \\'' + dataEvent.name + '\\'');\r\n }\r\n else if (dataEvent.dataEventType === 'InitialBegin') {\r\n array.splice(0, array.length);\r\n keyFieldNamesByName[dataEvent.name] = dataEvent.keyFieldNames;\r\n }\r\n else if (dataEvent.dataEventType === 'Insert' || dataEvent.dataEventType === 'Initial') {\r\n let keyValue = _private.getKeyValue(dataEvent.name, dataEvent.record);\r\n let index = array.findIndex(x => x._keyValue == keyValue);\r\n if (index >= 0) {\r\n console.error('Duplicate key \\'' + keyValue + '\\' in table \\'' + dataEvent.name + '\\'');\r\n }\r\n else {\r\n dataEvent.record['_keyValue'] = keyValue;\r\n array.splice(array.length, 0, dataEvent.record);\r\n }\r\n }\r\n else if (dataEvent.dataEventType === 'Update') {\r\n let keyValue = _private.getKeyValue(dataEvent.name, dataEvent.record);\r\n let index = array.findIndex(x => x._keyValue == keyValue);\r\n if (index == -1) {\r\n console.error('Could not find key \\'' + keyValue + '\\' in table \\'' + dataEvent.name + '\\'');\r\n }\r\n else {\r\n dataEvent.record['_keyValue'] = keyValue;\r\n array.splice(index, 1, dataEvent.record);\r\n }\r\n }\r\n else if (dataEvent.dataEventType === 'Delete') {\r\n let keyValue = _private.getKeyValue(dataEvent.name, dataEvent.record);\r\n let index = array.findIndex(x => x._keyValue == keyValue);\r\n array.splice(index, 1);\r\n }\r\n }\r\n };\n\n _private.handleQueue = function () {\n if (handleQueueTimeout) clearTimeout(handleQueueTimeout);\n\n if (queue.length > 0) {\n let begin = queueCurrentOffset;\n let end = Math.min(begin + batchSize, queue[0].length);\n for (let i = begin; i < end; i++) {\n _private.handleDataEvent(queue[0][i]);\r\n }\n if (end === queue[0].length) {\n queue.splice(0, 1);\n queueCurrentOffset = 0;\r\n }\n else {\n queueCurrentOffset += batchSize;\n handleQueueTimeout = setTimeout(_private.handleQueue, 0);\r\n }\n }\r\n }\n\r\n return function (messageType, data) {\r\n if (messageType === 'RESET') {\r\n for (let arrayKey in config.arrayMapping) {\r\n let array = config.arrayMapping[arrayKey];\r\n if (array) array.splice(0, array.length);\r\n }\r\n }\r\n else if (messageType === 'DATA-EVENT-TRANSACTION') {\r\n queue.push(data.dataEvents);\n _private.handleQueue();\r\n }\r\n else if (config.onChannelMessage) {\r\n config.onChannelMessage(messageType, data);\r\n }\r\n }\r\n}\r\n","export default function(arrayName) {\r\n\tlet result = {};\r\n\tresult[`${arrayName}Length`] = state => state[arrayName].length;\r\n\tresult[`${arrayName}FindIndex`] = state => callback => state[arrayName].findIndex(callback);\r\n\treturn result;\r\n}\r\n","export default function(store, arrayName) {\r\n\treturn {\r\n\t\tget length() { return store.getters[`${arrayName}Length`] },\r\n\t\tfindIndex(callback) { return store.getters[`${arrayName}FindIndex`](callback) },\r\n\t\tsplice(start, deleteCount, item) {\r\n\t\t\treturn store.commit(`${arrayName}Splice`, { start, deleteCount, item });\r\n\t\t},\r\n\t};\r\n}\r\n","export default function(arrayName) {\r\n\tlet result = {};\r\n\tresult[`${arrayName}Splice`] = (state, options) => {\r\n\t\tif (options.item) state[arrayName].splice(options.start, options.deleteCount, options.item);\r\n\t\telse state[arrayName].splice(options.start, options.deleteCount);\r\n\t};\r\n\treturn result;\r\n}\r\n","/*\n * States...\n * Disconnected - No WebSocket, no loop running\n * Connecting - Create WebSocket and wait for WebSocket.onopen()\n * Authenticating - Send Authentication and wait for server to send AUTHENTICATED or UNAUTHENTICATED\n * Subscribing - Send subscriptions and transition to Connected\n * Connected - Send heartbeats to server\n */\n\nexport default class {\r\n constructor(options) {\r\n this._options = options;\r\n\r\n let url = this._options.url;\n\r\n if (url.indexOf('://') === -1) {\r\n this._url = (window.location.protocol === 'https:' ? 'wss:' : 'ws:') + '//' + window.location.host + url;\r\n }\r\n else {\r\n this._url = url;\r\n }\r\n\r\n this._state = 'Disconnected';\n this._stateTimeout = null;\r\n this._auth = null;\r\n this._subscriptionByChannelKey = {};\r\n }\r\n\r\n _setState(value) {\r\n if (this._state !== value) {\n console.debug(`_setState():value=${value}`);\r\n this._state = value;\r\n if (this._options.onStateChange) this._options.onStateChange(value);\r\n this._clearStateTimeout();\n }\r\n }\r\n\n connect(auth) {\r\n console.debug('WebSocketChannelClient.connect()');\r\n this._auth = auth;\n\r\n this._setState('Connecting');\n this._connecting();\r\n }\r\n\r\n _connecting() {\n if (this._state === 'Disconnected') return;\n\n this._setState('Connecting');\n let connectingStartMillis = new Date().getTime();\n\n if (this._webSocket) {\n try {\n this._webSocket.close();\n }\n catch (e) { }\n this._webSocket = null;\r\n }\n\n let hasReconnected = false;\n let reconnect = error => {\n if (hasReconnected) return;\n hasReconnected = true;\n\n console.debug(`_connecting():reconnect():error=${error}`);\n let elapsedMillis = new Date().getTime() - connectingStartMillis;\n let reconnectEveryMillis = this._options.reconnectEveryMillis || 3000;\n\n if (elapsedMillis > reconnectEveryMillis) {\n this._connecting();\n }\n else {\n let wait = reconnectEveryMillis - elapsedMillis;\n\n this._stateTimeout = setTimeout(this._connecting.bind(this), wait);\r\n }\n };\n\r\n try {\r\n console.debug(`_connecting():new WebSocket(${this._url})`);\r\n this._webSocket = new WebSocket(this._url);\r\n this._webSocket.onmessage = this._onMessage.bind(this);\r\n this._webSocket.onopen = this._authenticating.bind(this);\n this._webSocket.onerror = reconnect.bind(this);\r\n this._webSocket.onclose = reconnect.bind(this);\r\n }\r\n catch (e) {\r\n reconnect(e);\r\n }\r\n }\n\n _authenticating() {\n if (this._state === 'Disconnected') return;\n\n this._setState('Authenticating');\n let text = 'Authorization:' + (this._auth || '');\n let success = this._sendText(text);\n\n if (success) {\n let authenticateEveryMillis = this._options.authenticateEveryMillis || 3000;\n\n this._stateTimeout = setTimeout(this._authenticating.bind(this), authenticateEveryMillis);\n }\r\n }\n\n _subscribing() {\r\n if (this._state === 'Disconnected') return;\n\n this._setState('Subscribing');\n\n // Build data\n let data = [];\n\r\n for (let key in this._subscriptionByChannelKey) {\r\n let subscription = this._subscriptionByChannelKey[key];\n\r\n if (!subscription.sent) {\r\n data.push({\r\n channelKey: key,\r\n vars: subscription.vars,\r\n });\r\n }\r\n }\n\n // Subscribe\n let success = true;\n\r\n if (data.length > 0) {\r\n success = this._sendText('Subscribe:' + JSON.stringify(data));\r\n }\n\n if (success) {\n this._markSubscriptionsSent(true);\r\n this._connected();\n }\r\n }\r\n\n _unsubscribing(channelKey) {\r\n if (this._state === 'Disconnected') return;\n\n this._setState('Unsubscribing');\n let success = this._sendText('Unsubscribe:' + JSON.stringify(channelKey));\n\n if (success) {\n this._connected();\r\n }\r\n }\n\r\n _connected() {\n this._setState('Connected');\n\n let elapsedMillis = new Date().getTime() - this._lastSendTextMillis;\n let heartbeatEveryMillis = this._options.heartbeatEveryMillis || 3000;\n\n if (elapsedMillis >= heartbeatEveryMillis) {\n this._sendText('!');\n this._connected();\n }\n else {\n let wait = Math.max(0, heartbeatEveryMillis - elapsedMillis);\n\n this._stateTimeout = setTimeout(this._connected.bind(this), wait);\n }\r\n }\n\n disconnect() {\r\n console.debug('WebSocketChannelClient.disconnect()')\r\n this._setState('Disconnected');\r\n if (this._webSocket != null) {\n try {\r\n this._webSocket.close();\n }\n catch (e) { }\r\n this._webSocket = null;\r\n }\n this._clearStateTimeout();\n for (let channelKey in this._subscriptionByChannelKey) {\r\n let subscription = this._subscriptionByChannelKey[channelKey];\n\r\n if (subscription.handlers) {\r\n for (let i = 0; i < subscription.handlers.length; i++) {\r\n subscription.handlers[i]('RESET');\r\n }\r\n }\r\n }\r\n }\r\n\n _clearStateTimeout() {\n if (this._stateTimeout) {\n clearTimeout(this._stateTimeout);\n this._stateTimeout = null;\n }\r\n }\r\n\n _sendText(text) {\n console.debug(`_sendText():text=${text}`);\n try {\n this._webSocket.send(text);\n this._lastSendTextMillis = new Date().getTime();\n return true;\n }\n catch (e) {\n console.error(e);\n this._connecting();\n return false;\r\n }\r\n }\n\n _onMessage(event) {\r\n let message = JSON.parse(event.data);\n\r\n console.debug(`_onMessage():message.messageType=${message.messageType}`);\r\n if (message.channelKey) {\r\n let subscription = this._subscriptionByChannelKey[message.channelKey];\n\r\n if (subscription.handlers) {\r\n for (let i = 0; i < subscription.handlers.length; i++) {\r\n subscription.handlers[i](message.messageType, message.data);\r\n }\r\n }\r\n }\r\n else if (message.messageType === 'AUTHENTICATED') {\n this._markSubscriptionsSent(false);\r\n this._subscribing();\r\n }\r\n else if (message.messageType === 'UNAUTHENTICATED') {\r\n if (this._options.onUnauthenticated) this._options.onUnauthenticated(message.data);\r\n this.disconnect();\r\n }\r\n }\r\n\n _markSubscriptionsSent(value) {\r\n for (let key in this._subscriptionByChannelKey) {\r\n this._subscriptionByChannelKey[key].sent = value;\r\n }\r\n }\r\n\n subscribe(options) {\r\n let channelKey = options.channel || 'default';\n let handlers = Array.isArray(options.handler) ? options.handler : [options.handler];\n let vars = options.vars;\n\r\n // console.debug(`WebSocketChannelClient.subscribe():channelKey=${channelKey}`);\r\n this._removeSubscription(channelKey);\r\n this._addSubscription(channelKey, {\r\n vars,\r\n handlers,\r\n sent: false\r\n });\n if (this._state === 'Connected') {\n this._subscribing();\n }\r\n if (this._options.onSubscriptionsUpdated) this._options.onSubscriptionsUpdated();\r\n }\r\n\r\n unsubscribe(channelKey) {\r\n // console.debug(`WebSocketChannelClient.unsubscribe():channelKey=${channelKey}`);\r\n if (!channelKey) channelKey = 'default';\r\n this._removeSubscription(channelKey);\r\n this._unsubscribing(channelKey);\r\n if (this._options.onSubscriptionsUpdated) this._options.onSubscriptionsUpdated();\r\n }\r\n\r\n _addSubscription(channelKey, subscription) {\r\n this._subscriptionByChannelKey[channelKey] = subscription;\r\n }\r\n\r\n _removeSubscription(channelKey) {\r\n delete this._subscriptionByChannelKey[channelKey];\r\n }\r\n\r\n}\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/Butterfly.Client.Web/package-lock.json b/Butterfly.Client.Web/package-lock.json index 028d3e18..ea830185 100644 --- a/Butterfly.Client.Web/package-lock.json +++ b/Butterfly.Client.Web/package-lock.json @@ -1,6 +1,6 @@ { "name": "butterfly-client", - "version": "2.0.3", + "version": "2.0.5", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/Butterfly.Client.Web/package.json b/Butterfly.Client.Web/package.json index 8899e98e..d90027d2 100644 --- a/Butterfly.Client.Web/package.json +++ b/Butterfly.Client.Web/package.json @@ -1,6 +1,6 @@ { "name": "butterfly-client", - "version": "2.0.4", + "version": "2.0.5", "description": "Client library for Butterfly Realtime Web App Server", "main": "lib/butterfly-client.js", "scripts": { diff --git a/Butterfly.Client.Web/src/web-socket-channel-client.js b/Butterfly.Client.Web/src/web-socket-channel-client.js index d0cbffc6..0aed39ff 100644 --- a/Butterfly.Client.Web/src/web-socket-channel-client.js +++ b/Butterfly.Client.Web/src/web-socket-channel-client.js @@ -224,6 +224,7 @@ export default class { this._subscribing(); } else if (message.messageType === 'UNAUTHENTICATED') { + if (this._options.onUnauthenticated) this._options.onUnauthenticated(message.data); this.disconnect(); } } diff --git a/Butterfly.Core.Test/AuthTest.cs b/Butterfly.Core.Test/AuthTest.cs index 12c8c33c..9ac85b78 100644 --- a/Butterfly.Core.Test/AuthTest.cs +++ b/Butterfly.Core.Test/AuthTest.cs @@ -33,14 +33,14 @@ public async Task SimpleAuthTest() { logger.Debug($"onForgotPassword():user={user}"); return Task.FromResult(0); }); - AuthToken registerAuthToken = await authManager.RegisterAsync(new { + UserRefToken registerAuthToken = await authManager.RegisterAsync(new { username = "johnsmith", first_name = "John", last_name = "Smith", email = "john@fireshark.com", password = "test123" }); - AuthToken authenticateAuthToken = await authManager.AuthenticateAsync(registerAuthToken.id); + AuthToken authToken = await authManager.AuthenticateAsync(UserRefTokenAuthenticator.AUTH_TYPE, registerAuthToken.id); await authManager.ForgotPasswordAsync("johnsmith"); diff --git a/Butterfly.Core.Test/NotifyTest.cs b/Butterfly.Core.Test/NotifyTest.cs index 33206c9d..c5bf3461 100644 --- a/Butterfly.Core.Test/NotifyTest.cs +++ b/Butterfly.Core.Test/NotifyTest.cs @@ -41,13 +41,13 @@ public static async Task SendEmailNotifyMessage(INotifyMessageSender notifyMessa } [TestMethod] - public static async Task SendPhoneTextNotifyMessage(INotifyMessageSender notifyMessageSender) { + public static async Task SendPhoneNotifyMessage(INotifyMessageSender notifyMessageSender) { IDatabase database = new Butterfly.Core.Database.Memory.MemoryDatabase(); await database.CreateFromResourceFileAsync(Assembly.GetExecutingAssembly(), "Butterfly.Notify.Test.db.sql"); database.SetDefaultValue("id", tableName => Guid.NewGuid().ToString()); database.SetDefaultValue("created_at", tableName => DateTime.Now); - var notifyMessageManager = new NotifyManager(database, phoneTextNotifyMessageSender: notifyMessageSender); + var notifyMessageManager = new NotifyManager(database, phoneNotifyMessageSender: notifyMessageSender); notifyMessageManager.Start(); var notifyMessage = new NotifyMessage("+1 316 712 7412", "+1 316 555 1212", null, "Just testing", null); using (ITransaction transaction = await database.BeginTransactionAsync()) { diff --git a/Butterfly.Core/Auth/AuthManager.cs b/Butterfly.Core/Auth/AuthManager.cs index bb7f4df9..30d012c7 100644 --- a/Butterfly.Core/Auth/AuthManager.cs +++ b/Butterfly.Core/Auth/AuthManager.cs @@ -91,6 +91,8 @@ public class AuthManager { protected readonly int resetTokenDurationMinutes; protected readonly string accountTableName; + protected readonly string accountTableIdFieldName; + protected readonly string accountTableShareCodeFieldName; protected readonly string userTableName; protected readonly string userTableIdFieldName; @@ -108,11 +110,6 @@ public class AuthManager { protected readonly string userTableAccountIdFieldName; protected readonly string userTableRoleFieldName; - protected readonly string authTokenTableName; - protected readonly string authTokenIdFieldName; - protected readonly string authTokenTableUserIdFieldName; - protected readonly string authTokenTableExpiresAtFieldName; - protected readonly string defaultRole; protected readonly Func onEmailVerify; @@ -128,6 +125,10 @@ public class AuthManager { protected readonly IFieldValidator emailFieldValidator; protected readonly IFieldValidator phoneFieldValidator; + protected readonly Dictionary authenticatorByType; + + protected readonly UserRefTokenAuthenticator userRefTokenAuthenticator; + protected readonly ShareCodeAuthenticator shareCodeAuthenticator; /// /// Create an instance of AuthManager @@ -137,6 +138,8 @@ public class AuthManager { /// How many digits should a reset code be /// How long new reset codes are valid for /// Table name of the account table (default is "account") + /// Field name of the id field on the account table (default is "id") + /// Field name of the share code field on the account table (default is "share_code") /// Table name of the user table (default is "user") /// Field name of the id field on the user table (default is "id") /// Field name of the username field on the user table (default is "username") @@ -152,10 +155,6 @@ public class AuthManager { /// Field name of the reset code expires at field on the user table (default is "reset_code_expires_at") /// Field name of the account id field on the user table (default is "account_id") /// Field name of the role field on the user table (default is "role") - /// Table name of the auth token table (default is "auth_token") - /// Field name of the id field on the auth token table (default is "id") - /// Field name of the user id field on the auth token table (default is "user_id") - /// Field name of the expires at field on the auth token table (default is "expires_at") /// Default value for the role field on a new user /// Callback when is called with an email address /// Callback when is called with a phone number @@ -168,6 +167,8 @@ public AuthManager( int resetCodeLength = 6, int resetTokenDurationMinutes = 90, string accountTableName = "account", + string accountTableIdFieldName = "id", + string accountTableShareCodeFieldName = "share_code", string userTableName = "user", string userTableIdFieldName = "id", string userTableUsernameFieldName = "username", @@ -183,10 +184,6 @@ public AuthManager( string userTableResetCodeExpiresAtFieldName = "reset_code_expires_at", string userTableAccountIdFieldName = "account_id", string userTableRoleFieldName = "role", - string authTokenTableName = "auth_token", - string authTokenIdFieldName = "id", - string authTokenTableUserIdFieldName = "user_id", - string authTokenTableExpiresAtFieldName = "expires_at", string defaultRole = null, Func onEmailVerify = null, Func onPhoneVerify = null, @@ -201,6 +198,8 @@ public AuthManager( this.resetTokenDurationMinutes = resetTokenDurationMinutes; this.accountTableName = accountTableName; + this.accountTableIdFieldName = accountTableIdFieldName; + this.accountTableShareCodeFieldName = accountTableShareCodeFieldName; this.userTableName = userTableName; this.userTableIdFieldName = userTableIdFieldName; @@ -218,11 +217,6 @@ public AuthManager( this.userTableAccountIdFieldName = userTableAccountIdFieldName; this.userTableRoleFieldName = userTableRoleFieldName; - this.authTokenTableName = authTokenTableName; - this.authTokenIdFieldName = authTokenIdFieldName; - this.authTokenTableUserIdFieldName = authTokenTableUserIdFieldName; - this.authTokenTableExpiresAtFieldName = authTokenTableExpiresAtFieldName; - this.defaultRole = defaultRole; this.onEmailVerify = onEmailVerify; @@ -236,6 +230,26 @@ public AuthManager( this.nameFieldValidator = new NameFieldValidator(this.userTableLastNameFieldName, allowNull: false, maxLength: 25); this.emailFieldValidator = new EmailFieldValidator(this.userTableEmailFieldName, allowNull: true); this.phoneFieldValidator = new PhoneFieldValidator(this.userTableEmailFieldName, allowNull: false); + + this.userRefTokenAuthenticator = new UserRefTokenAuthenticator( + database, + userTableName: this.userTableName, + userTableUsernameFieldName: this.userTableUsernameFieldName, + userTableAccountIdFieldName: this.userTableAccountIdFieldName, + userTableRoleFieldName: this.userTableRoleFieldName + ); + + this.shareCodeAuthenticator = new ShareCodeAuthenticator( + database, + accountTableName: this.accountTableName, + accountTableIdFieldName: this.accountTableIdFieldName, + accountTableShareCodeFieldName: this.accountTableShareCodeFieldName + ); + + this.authenticatorByType = new Dictionary { + [UserRefTokenAuthenticator.AUTH_TYPE] = this.userRefTokenAuthenticator, + [ShareCodeAuthenticator.AUTH_TYPE] = this.shareCodeAuthenticator + }; } protected readonly static Regex VERSION_CLEAN_REGEX = new Regex(@"[^\d\.]+"); @@ -268,14 +282,14 @@ public void SetupWebApi(IWebApi webApi, string pathPrefix = "/api/auth") { await res.WriteAsJsonAsync(available); }); - webApi.OnGet($"{pathPrefix}/check-auth-token/{{id}}", async (req, res) => { + webApi.OnGet($"{pathPrefix}/check-user-ref-token/{{id}}", async (req, res) => { string id = req.PathParams.GetAs("id", (string)null); string rawVersionText = req.QueryParams.GetAs("v", ""); string versionText = VERSION_CLEAN_REGEX.Replace(rawVersionText, ""); Version version = string.IsNullOrEmpty(versionText) ? null : Version.Parse(versionText); logger.Debug($"/check-auth-token/{id}?v={version}"); //?join_code={joinCode}"); if (this.onCheckVersion != null) this.onCheckVersion(version); - AuthToken authToken = await this.AuthenticateAsync(id); + AuthToken authToken = await this.AuthenticateAsync(UserRefTokenAuthenticator.AUTH_TYPE, id); await res.WriteAsJsonAsync(authToken); }); @@ -362,11 +376,11 @@ public async Task VerifyAsync(Dict data, string fieldName, string verifiedAtFiel /// /// /// - public async Task RegisterAsync(dynamic input, Dict notifyData = null) { + public async Task RegisterAsync(dynamic input, Dict notifyData = null) { Dict registration = this.ConvertInputToDict(input); // Handle registering an anonymous user - string userId = registration.GetAs(this.authTokenTableUserIdFieldName, (string)null); + string userId = registration.GetAs("user_id", (string)null); string accountId = null; logger.Trace($"RegisterAsync():userId={userId}"); if (!string.IsNullOrEmpty(userId)) { @@ -437,33 +451,18 @@ public async Task RegisterAsync(dynamic input, Dict notifyData = null } } - return await this.CreateAuthTokenAsync(userId); + return await this.CreateUserRefTokenAsync(userId); } /// /// Validates the auth token id returning an instance /// - /// + /// + /// /// An instance - public async Task AuthenticateAsync(string authTokenId) { - List fieldList = new List(); - if (!string.IsNullOrEmpty(this.authTokenIdFieldName)) fieldList.Add($"at.{ this.authTokenIdFieldName}"); - if (!string.IsNullOrEmpty(this.authTokenTableUserIdFieldName)) fieldList.Add($"at.{ this.authTokenTableUserIdFieldName}"); - if (!string.IsNullOrEmpty(this.userTableAccountIdFieldName)) fieldList.Add($"u.{ this.userTableAccountIdFieldName}"); - if (!string.IsNullOrEmpty(this.userTableUsernameFieldName)) fieldList.Add($"u.{ this.userTableUsernameFieldName}"); - if (!string.IsNullOrEmpty(this.userTableRoleFieldName)) fieldList.Add($"u.{ this.userTableRoleFieldName}"); - if (!string.IsNullOrEmpty(this.authTokenTableExpiresAtFieldName)) fieldList.Add($"at.{ this.authTokenTableExpiresAtFieldName}"); - Dict authTokenDict = await this.database.SelectRowAsync($"SELECT {string.Join(",", fieldList)} FROM {this.authTokenTableName} at INNER JOIN {this.userTableName} u ON at.user_id=u.id WHERE at.id=@authTokenId", new { - authTokenId - }); - logger.Debug($"Authenticate():authTokenDict={authTokenDict}"); - if (authTokenDict == null) throw new UnauthorizedException(); - - var authToken = AuthToken.FromDict(authTokenDict, this.authTokenIdFieldName, this.authTokenTableUserIdFieldName, this.userTableUsernameFieldName, this.userTableRoleFieldName, this.userTableAccountIdFieldName, this.authTokenTableExpiresAtFieldName); - logger.Debug($"Authenticate():authToken.expiresAt={authToken.expiresAt}"); - if (authToken.expiresAt == DateTime.MinValue || authToken.expiresAt < DateTime.Now) throw new UnauthorizedException(); - - return authToken; + public Task AuthenticateAsync(string authType, string authValue) { + if (!this.authenticatorByType.TryGetValue(authType, out IAuthenticator authenticator)) throw new Exception($"Unknown auth type {authType}"); + return authenticator.AuthenticateAsync(authType, authValue); } /// @@ -504,14 +503,11 @@ public async Task CreateAnonymousUserAsync() { string userId = await transaction.InsertAsync(this.userTableName, user); DateTime expiresAt = DateTime.Now.AddDays(this.authTokenDurationDays); - string id = await transaction.InsertAsync(this.authTokenTableName, new Dict { - { this.authTokenTableUserIdFieldName, userId }, - { this.authTokenTableExpiresAtFieldName, expiresAt }, - }); + string id = await this.userRefTokenAuthenticator.InsertAsync(transaction, userId, expiresAt); await transaction.CommitAsync(); - return new AuthToken(id, userId, null, role, accountId, expiresAt); + return new UserRefToken(id, userId, null, role, accountId, expiresAt); } } @@ -520,7 +516,7 @@ public async Task CreateAnonymousUserAsync() { /// /// /// The AuthToken instance created - public async Task CreateAuthTokenAsync(string userId) { + public async Task CreateUserRefTokenAsync(string userId) { List fieldNames = new List(); if (!string.IsNullOrEmpty(this.userTableUsernameFieldName)) fieldNames.Add(this.userTableUsernameFieldName); if (!string.IsNullOrEmpty(this.userTableRoleFieldName)) fieldNames.Add(this.userTableRoleFieldName); @@ -530,16 +526,17 @@ public async Task CreateAuthTokenAsync(string userId) { }); if (user==null) throw new Exception("Invalid user"); + string id; DateTime expiresAt = DateTime.Now.AddDays(this.authTokenDurationDays); - string id = await this.database.InsertAndCommitAsync(this.authTokenTableName, new Dict { - { this.authTokenTableUserIdFieldName, userId }, - { this.authTokenTableExpiresAtFieldName, expiresAt }, - }); + using (ITransaction transaction = await this.database.BeginTransactionAsync()) { + id = await this.userRefTokenAuthenticator.InsertAsync(transaction, userId, expiresAt); + await transaction.CommitAsync(); + } string username = string.IsNullOrEmpty(this.userTableUsernameFieldName) ? null : user.GetAs(this.userTableUsernameFieldName, (string)null); string role = string.IsNullOrEmpty(this.userTableRoleFieldName) ? null : user.GetAs(this.userTableRoleFieldName, (string)null); string accountId = string.IsNullOrEmpty(this.userTableAccountIdFieldName) ? null : user.GetAs(this.userTableAccountIdFieldName, (string)null); - return new AuthToken(id, userId, username, role, accountId, expiresAt); + return new UserRefToken(id, userId, username, role, accountId, expiresAt); } /// @@ -547,7 +544,7 @@ public async Task CreateAuthTokenAsync(string userId) { /// /// /// - public async Task LoginAsync(Dict login) { + public async Task LoginAsync(Dict login) { string username = login?.GetAs(this.userTableUsernameFieldName, (string)null); Dict user = await this.LookupUsernameAsync(username, string.Join(",", new string[] { this.userTableIdFieldName, this.userTableSaltFieldName, this.userTablePasswordHashFieldName })); if (user == null) throw new Exception("Invalid username '" + username + "'"); @@ -561,7 +558,7 @@ public async Task LoginAsync(Dict login) { if (newPasswordHash != passwordHash) throw new Exception("Incorrect password"); string userId = user.GetAs(this.userTableIdFieldName, (string)null); - return await this.CreateAuthTokenAsync(userId); + return await this.CreateUserRefTokenAsync(userId); } /// @@ -610,7 +607,7 @@ public async Task ResetPasswordAsync(Dict resetPassword) { }; await this.database.UpdateAndCommitAsync(this.userTableName, update); - return await this.CreateAuthTokenAsync(userId); + return await this.CreateUserRefTokenAsync(userId); } protected async Task CreateResetCodeAsync(string userId) { @@ -651,31 +648,15 @@ protected Dict ConvertInputToDict(dynamic input) { /// /// Represents the result of a successful or /// - public class AuthToken { - public readonly string id; - public readonly string userId; - public readonly string username; - public readonly string role; + public abstract class AuthToken { + public readonly string type; public readonly string accountId; - public readonly DateTime expiresAt; + public readonly string role; - public AuthToken(string id, string userId, string username, string role, string accountId, DateTime expiresAt) { - this.id = id; - this.userId = userId; - this.username = username; - this.role = role; + public AuthToken(string type, string accountId, string role) { + this.type = type; this.accountId = accountId; - this.expiresAt = expiresAt; - } - - public static AuthToken FromDict(Dict dict, string idFieldName, string userIdFieldName, string usernameFieldName, string roleFieldName, string accountIdFieldName, string expiresAtFieldName) { - string id = string.IsNullOrEmpty(idFieldName) ? null : dict.GetAs(idFieldName, (string)null); - string userId = string.IsNullOrEmpty(userIdFieldName) ? null : dict.GetAs(userIdFieldName, (string)null); - string username = string.IsNullOrEmpty(usernameFieldName) ? null : dict.GetAs(usernameFieldName, (string)null); - string role = string.IsNullOrEmpty(roleFieldName) ? null : dict.GetAs(roleFieldName, (string)null); - string accountId = string.IsNullOrEmpty(accountIdFieldName) ? null : dict.GetAs(accountIdFieldName, (string)null); - DateTime expiresAt = string.IsNullOrEmpty(expiresAtFieldName) ? DateTime.MaxValue : dict.GetAs(expiresAtFieldName, DateTime.MinValue); - return new AuthToken(id, userId, username, role, accountId, expiresAt); + this.role = role; } } diff --git a/Butterfly.Core/Auth/IAuthenticator.cs b/Butterfly.Core/Auth/IAuthenticator.cs new file mode 100644 index 00000000..57ef40e3 --- /dev/null +++ b/Butterfly.Core/Auth/IAuthenticator.cs @@ -0,0 +1,10 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace Butterfly.Core.Auth { + public interface IAuthenticator { + Task AuthenticateAsync(string authType, string authValue); + } +} diff --git a/Butterfly.Core/Auth/ShareCodeAuthenticator.cs b/Butterfly.Core/Auth/ShareCodeAuthenticator.cs new file mode 100644 index 00000000..c4973f2b --- /dev/null +++ b/Butterfly.Core/Auth/ShareCodeAuthenticator.cs @@ -0,0 +1,65 @@ +using System.Threading.Tasks; + +using NLog; + +using Butterfly.Core.Database; +using Butterfly.Core.Util; + +using Dict = System.Collections.Generic.Dictionary; + +namespace Butterfly.Core.Auth { + public class ShareCodeAuthenticator : IAuthenticator { + protected static readonly Logger logger = LogManager.GetCurrentClassLogger(); + + public const string AUTH_TYPE = "Share-Code"; + + protected readonly IDatabase database; + + protected readonly string accountTableName; + protected readonly string accountTableIdFieldName; + protected readonly string accountTableShareCodeFieldName; + + /// + /// + /// + /// + /// Table name of the auth token table (default is "auth_token") + /// Field name of the id field on the auth token table (default is "id") + /// Field name of the user id field on the auth token table (default is "user_id") + public ShareCodeAuthenticator( + IDatabase database, + string accountTableName = "account", + string accountTableIdFieldName = "id", + string accountTableShareCodeFieldName = "share_code" + ) { + this.database = database; + this.accountTableName = accountTableName; + this.accountTableIdFieldName = accountTableIdFieldName; + this.accountTableShareCodeFieldName = accountTableShareCodeFieldName; + } + + /// + /// Validates the auth token id returning an instance + /// + /// + /// + /// An instance + public async Task AuthenticateAsync(string authType, string authValue) { + string accountId = await this.database.SelectValueAsync($"SELECT {this.accountTableIdFieldName} FROM {this.accountTableName} WHERE {this.accountTableShareCodeFieldName}=@shareCode", new { + shareCode = authValue + }); + logger.Debug($"Authenticate():accountId={accountId}"); + if (string.IsNullOrEmpty(accountId)) throw new UnauthorizedException(); + return new ShareCodeToken(accountId, null); + } + } + + /// + /// Represents the result of a successful or + /// + public class ShareCodeToken : AuthToken { + public ShareCodeToken(string accountId, string role) : base(ShareCodeAuthenticator.AUTH_TYPE, accountId, role) { + } + } + +} diff --git a/Butterfly.Core/Auth/UserRefTokenAuthenticator.cs b/Butterfly.Core/Auth/UserRefTokenAuthenticator.cs new file mode 100644 index 00000000..6864c020 --- /dev/null +++ b/Butterfly.Core/Auth/UserRefTokenAuthenticator.cs @@ -0,0 +1,126 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +using NLog; + +using Butterfly.Core.Database; +using Butterfly.Core.Util; + +using Dict = System.Collections.Generic.Dictionary; + +namespace Butterfly.Core.Auth { + public class UserRefTokenAuthenticator : IAuthenticator { + protected static readonly Logger logger = LogManager.GetCurrentClassLogger(); + + public const string AUTH_TYPE = "User-Ref-Token"; + + protected readonly IDatabase database; + protected readonly string authTokenTableName; + protected readonly string authTokenIdFieldName; + protected readonly string authTokenTableUserIdFieldName; + protected readonly string authTokenTableExpiresAtFieldName; + + protected readonly string userTableName; + protected readonly string userTableUsernameFieldName; + protected readonly string userTableAccountIdFieldName; + protected readonly string userTableRoleFieldName; + + /// + /// + /// + /// + /// Table name of the auth token table (default is "auth_token") + /// Field name of the id field on the auth token table (default is "id") + /// Field name of the user id field on the auth token table (default is "user_id") + /// Field name of the expires at field on the auth token table (default is "expires_at") + /// Table name of the user table (default is "user") + /// Field name of the username field on the user table (default is "username") + /// Field name of the account id field on the user table (default is "account_id") + /// Field name of the role field on the user table (default is "role") + public UserRefTokenAuthenticator( + IDatabase database, + string authTokenTableName = "auth_token", + string authTokenIdFieldName = "id", + string authTokenTableUserIdFieldName = "user_id", + string authTokenTableExpiresAtFieldName = "expires_at", + string userTableName = "user", + string userTableUsernameFieldName = "username", + string userTableAccountIdFieldName = "account_id", + string userTableRoleFieldName = "role" + ) { + this.database = database; + this.authTokenTableName = authTokenTableName; + this.authTokenIdFieldName = authTokenIdFieldName; + this.authTokenTableUserIdFieldName = authTokenTableUserIdFieldName; + this.authTokenTableExpiresAtFieldName = authTokenTableExpiresAtFieldName; + + this.userTableName = userTableName; + this.userTableUsernameFieldName = userTableUsernameFieldName; + this.userTableAccountIdFieldName = userTableAccountIdFieldName; + this.userTableRoleFieldName = userTableRoleFieldName; + } + + /// + /// Validates the auth token id returning an instance + /// + /// + /// + /// An instance + public async Task AuthenticateAsync(string authType, string authValue) { + List fieldList = new List(); + if (!string.IsNullOrEmpty(this.authTokenIdFieldName)) fieldList.Add($"at.{ this.authTokenIdFieldName}"); + if (!string.IsNullOrEmpty(this.authTokenTableUserIdFieldName)) fieldList.Add($"at.{ this.authTokenTableUserIdFieldName}"); + if (!string.IsNullOrEmpty(this.userTableAccountIdFieldName)) fieldList.Add($"u.{ this.userTableAccountIdFieldName}"); + if (!string.IsNullOrEmpty(this.userTableUsernameFieldName)) fieldList.Add($"u.{ this.userTableUsernameFieldName}"); + if (!string.IsNullOrEmpty(this.userTableRoleFieldName)) fieldList.Add($"u.{ this.userTableRoleFieldName}"); + if (!string.IsNullOrEmpty(this.authTokenTableExpiresAtFieldName)) fieldList.Add($"at.{ this.authTokenTableExpiresAtFieldName}"); + Dict authTokenDict = await this.database.SelectRowAsync($"SELECT {string.Join(",", fieldList)} FROM {this.authTokenTableName} at INNER JOIN {this.userTableName} u ON at.user_id=u.id WHERE at.id=@authTokenId", new { + authTokenId = authValue + }); + logger.Debug($"Authenticate():authTokenDict={authTokenDict}"); + if (authTokenDict == null) throw new UnauthorizedException(); + + var authToken = UserRefToken.FromDict(authTokenDict, this.authTokenIdFieldName, this.authTokenTableUserIdFieldName, this.userTableUsernameFieldName, this.userTableRoleFieldName, this.userTableAccountIdFieldName, this.authTokenTableExpiresAtFieldName); + logger.Debug($"Authenticate():authToken.expiresAt={authToken.expiresAt}"); + if (authToken.expiresAt == DateTime.MinValue || authToken.expiresAt < DateTime.Now) throw new UnauthorizedException(); + + return authToken; + } + + public Task InsertAsync(ITransaction transaction, string userId, DateTime expiresAt) { + return transaction.InsertAsync(this.authTokenTableName, new Dict { + { this.authTokenTableUserIdFieldName, userId }, + { this.authTokenTableExpiresAtFieldName, expiresAt }, + }); + } + } + + /// + /// Represents the result of a successful or + /// + public class UserRefToken : AuthToken { + public readonly string id; + public readonly string userId; + public readonly string username; + public readonly DateTime expiresAt; + + public UserRefToken(string id, string userId, string username, string role, string accountId, DateTime expiresAt) : base(UserRefTokenAuthenticator.AUTH_TYPE, accountId, role) { + this.id = id; + this.userId = userId; + this.username = username; + this.expiresAt = expiresAt; + } + + public static UserRefToken FromDict(Dict dict, string idFieldName, string userIdFieldName, string usernameFieldName, string roleFieldName, string accountIdFieldName, string expiresAtFieldName) { + string id = string.IsNullOrEmpty(idFieldName) ? null : dict.GetAs(idFieldName, (string)null); + string userId = string.IsNullOrEmpty(userIdFieldName) ? null : dict.GetAs(userIdFieldName, (string)null); + string username = string.IsNullOrEmpty(usernameFieldName) ? null : dict.GetAs(usernameFieldName, (string)null); + string role = string.IsNullOrEmpty(roleFieldName) ? null : dict.GetAs(roleFieldName, (string)null); + string accountId = string.IsNullOrEmpty(accountIdFieldName) ? null : dict.GetAs(accountIdFieldName, (string)null); + DateTime expiresAt = string.IsNullOrEmpty(expiresAtFieldName) ? DateTime.MaxValue : dict.GetAs(expiresAtFieldName, DateTime.MinValue); + return new UserRefToken(id, userId, username, role, accountId, expiresAt); + } + } + +} diff --git a/Butterfly.Core/Butterfly.Core.csproj b/Butterfly.Core/Butterfly.Core.csproj index 7b6b5364..f5fb1ad7 100644 --- a/Butterfly.Core/Butterfly.Core.csproj +++ b/Butterfly.Core/Butterfly.Core.csproj @@ -11,7 +11,7 @@ Fireshark Studios, LLC Butterfly Server .NET Copyright 2017-2018 Fireshark Studios, LLC - 1.0.5 + 1.1.0 Various improvements and bug fixes bin\$(Configuration)\$(TargetFramework)\$(MSBuildProjectName).xml diff --git a/Butterfly.Core/Channel/BaseChannelConnection.cs b/Butterfly.Core/Channel/BaseChannelConnection.cs index 05dd8c74..c459cd93 100644 --- a/Butterfly.Core/Channel/BaseChannelConnection.cs +++ b/Butterfly.Core/Channel/BaseChannelConnection.cs @@ -73,15 +73,20 @@ internal void Heartbeat() { /// The value to be sent to the client (will be converted to JSON) /// The value to be sent to the client (will be converted to JSON) /// The value to be sent to the client (will be converted to JSON) - public void QueueMessage(string channelKey = null, string messageType = null, object data = null) { + public void QueueMessage(string channelKey = null, string messageType = null, object data = null, bool immediate = false) { Dict payload = new Dict(); if (!string.IsNullOrEmpty(channelKey)) payload["channelKey"] = channelKey; if (!string.IsNullOrEmpty(messageType)) payload["messageType"] = messageType; if (data!=null) payload["data"] = data; string text = JsonUtil.Serialize(payload); - this.buffer.Enqueue(text); - this.monitor.PulseAll(); + if (immediate) { + this.SendAsync(text); + } + else { + this.buffer.Enqueue(text); + this.monitor.PulseAll(); + } } protected bool started = false; @@ -133,10 +138,10 @@ public async Task ReceiveMessageAsync(string text) { try { var authenticationHeaderValue = string.IsNullOrWhiteSpace(value) ? null : AuthenticationHeaderValue.Parse(value); await this.subscriptionApi.AuthenticateAsync(authenticationHeaderValue?.Scheme, authenticationHeaderValue?.Parameter, this); - this.QueueMessage(messageType: "AUTHENTICATED"); + this.QueueMessage(messageType: "AUTHENTICATED", immediate: true); } catch (Exception e) { - this.QueueMessage(messageType: "UNAUTHENTICATED", data: e.Message); + this.QueueMessage(messageType: "UNAUTHENTICATED", data: e.Message, immediate: true); } } else if (name == "Subscribe") { @@ -216,10 +221,10 @@ protected void UnsubscribeAll() { protected void Unsubscribe(ICollection channelKeys) { try { - logger.Debug($"UnsubscribeAsync()"); + logger.Debug($"Unsubscribe()"); foreach (var channelKey in channelKeys) { if (this.channelByKey.TryGetValue(channelKey, out Channel existingChannel)) { - logger.Debug($"SubscribeAsync():Removing channel key '{channelKey}'"); + logger.Debug($"Unsubscribe():Removing channel key '{channelKey}'"); existingChannel.Dispose(); this.channelByKey.Remove(channelKey); } diff --git a/Butterfly.Core/Channel/IChannelConnection.cs b/Butterfly.Core/Channel/IChannelConnection.cs index 988d3ca1..7d220334 100644 --- a/Butterfly.Core/Channel/IChannelConnection.cs +++ b/Butterfly.Core/Channel/IChannelConnection.cs @@ -14,6 +14,6 @@ public interface IChannelConnection : IDisposable { DateTime Created { get; } DateTime LastHeartbeat { get; } void Start(object authToken, string id); - void QueueMessage(string channelKey = null, string messageType = null, object data = null); + void QueueMessage(string channelKey = null, string messageType = null, object data = null, bool immediate = false); } } diff --git a/Butterfly.Core/Database/BaseDatabase.cs b/Butterfly.Core/Database/BaseDatabase.cs index 37baead8..615203c6 100644 --- a/Butterfly.Core/Database/BaseDatabase.cs +++ b/Butterfly.Core/Database/BaseDatabase.cs @@ -168,16 +168,17 @@ public async Task GetInitialDataEventsAsync(string dataEventName, s public async Task SelectValueAsync(string sql, dynamic vars = null, T defaultValue = default(T)) { Dict row = await this.SelectRowAsync(sql, vars); - if (row == null || !row.TryGetValue(row.Keys.First(), out object value) || value==null) return defaultValue; + if (row == null) return defaultValue; + else return row.GetAs(row.Keys.First(), defaultValue); - return (T)Convert.ChangeType(value, typeof(T)); + //if (row == null || !row.TryGetValue(row.Keys.First(), out object value) || value==null) return defaultValue; + //return (T)Convert.ChangeType(value, typeof(T)); } public async Task SelectValuesAsync(string sql, dynamic vars = null) { Dict[] rows = await this.SelectRowsAsync(sql, vars); return rows.Select(row => { - row.TryGetValue(row.Keys.First(), out object value); - return (T)Convert.ChangeType(value, typeof(T)); + return row.GetAs(row.Keys.First(), default(T)); }).ToArray(); } diff --git a/Butterfly.Core/Database/BaseTransaction.cs b/Butterfly.Core/Database/BaseTransaction.cs index 5fa75633..26693699 100644 --- a/Butterfly.Core/Database/BaseTransaction.cs +++ b/Butterfly.Core/Database/BaseTransaction.cs @@ -22,7 +22,7 @@ public abstract class BaseTransaction : ITransaction { protected readonly BaseDatabase database; protected readonly List dataEvents = new List(); - protected readonly List> onCommits = new List>(); + protected readonly List onCommitRefs = new List(); public BaseTransaction(BaseDatabase database) { this.database = database; @@ -252,13 +252,17 @@ public async Task CommitAsync() { await this.database.PostDataEventTransactionAsync(TransactionState.Committed, dataEventTransaction); } - foreach (var onCommit in this.onCommits) { - await onCommit(); + HashSet onCommitKeys = new HashSet(); + foreach (var onCommitRef in this.onCommitRefs) { + if (onCommitRef.key == null || !onCommitKeys.Contains(onCommitRef.key)) { + await onCommitRef.onCommit(); + if (onCommitRef.key != null) onCommitKeys.Add(onCommitRef.key); + } } } - public void OnCommit(Func onCommit) { - this.onCommits.Add(onCommit); + public void OnCommit(Func onCommit, string key = null) { + this.onCommitRefs.Add(new OnCommitRef(onCommit, key)); } protected abstract Task DoCommitAsync(); diff --git a/Butterfly.Core/Database/ITransaction.cs b/Butterfly.Core/Database/ITransaction.cs index 22ab9933..8a8bbf0b 100644 --- a/Butterfly.Core/Database/ITransaction.cs +++ b/Butterfly.Core/Database/ITransaction.cs @@ -146,7 +146,8 @@ public interface ITransaction : IDisposable { /// Register a callback that is invoked when the transaction is successfully committed /// /// - void OnCommit(Func onCommit); + /// Provide a key if you need to ensure only one onCommit instance is executed with that key + void OnCommit(Func onCommit, string key = null); /// /// Rollback the transaction (called automatically if transaction is disposed without calling or ) diff --git a/Butterfly.Core/Database/OnCommitRef.cs b/Butterfly.Core/Database/OnCommitRef.cs new file mode 100644 index 00000000..6ee9fc93 --- /dev/null +++ b/Butterfly.Core/Database/OnCommitRef.cs @@ -0,0 +1,13 @@ +using System; +using System.Threading.Tasks; + +namespace Butterfly.Core.Database { + public class OnCommitRef { + public readonly Func onCommit; + public readonly string key; + public OnCommitRef(Func onCommit, string key) { + this.onCommit = onCommit; + this.key = key; + } + } +} diff --git a/Butterfly.Core/Notify/NotifyManager.cs b/Butterfly.Core/Notify/NotifyManager.cs index 47523c81..ab08568e 100644 --- a/Butterfly.Core/Notify/NotifyManager.cs +++ b/Butterfly.Core/Notify/NotifyManager.cs @@ -30,14 +30,14 @@ public class NotifyManager { protected readonly IDatabase database; protected readonly NotifyMessageEngine emailNotifyMessageEngine; - protected readonly NotifyMessageEngine phoneTextNotifyMessageEngine; + protected readonly NotifyMessageEngine phoneNotifyMessageEngine; protected readonly string notifyMessageTableName; protected readonly string notifyVerifyTableName; protected readonly int verifyCodeExpiresSeconds; protected readonly NotifyMessage verifyEmailNotifyMessage; - protected readonly NotifyMessage verifyPhoneTextNotifyMessage; + protected readonly NotifyMessage verifyPhoneNotifyMessage; protected readonly string verifyCodeFormat; protected readonly static EmailFieldValidator EMAIL_FIELD_VALIDATOR = new EmailFieldValidator("email", false, true); @@ -45,35 +45,27 @@ public class NotifyManager { protected readonly static Random RANDOM = new Random(); - public NotifyManager(IDatabase database, INotifyMessageSender emailNotifyMessageSender = null, INotifyMessageSender phoneTextNotifyMessageSender = null, string notifyMessageTableName = "notify_message", string notifyVerifyTableName = "notify_verify", int verifyCodeExpiresSeconds = 3600, string verifyEmailFile = null, string verifyPhoneTextFile = null, string verifyCodeFormat = "###-###") { + public NotifyManager(IDatabase database, INotifyMessageSender emailNotifyMessageSender = null, INotifyMessageSender phoneNotifyMessageSender = null, string notifyMessageTableName = "notify_message", string notifyVerifyTableName = "notify_verify", int verifyCodeExpiresSeconds = 3600, string verifyEmailFile = null, string verifyPhoneTextFile = null, string verifyCodeFormat = "###-###") { this.database = database; this.emailNotifyMessageEngine = emailNotifyMessageSender == null ? null : new NotifyMessageEngine(NotifyMessageType.Email, emailNotifyMessageSender, database, notifyMessageTableName); - this.phoneTextNotifyMessageEngine = phoneTextNotifyMessageSender == null ? null : new NotifyMessageEngine(NotifyMessageType.PhoneText, phoneTextNotifyMessageSender, database, notifyMessageTableName); + this.phoneNotifyMessageEngine = phoneNotifyMessageSender == null ? null : new NotifyMessageEngine(NotifyMessageType.PhoneText, phoneNotifyMessageSender, database, notifyMessageTableName); this.notifyMessageTableName = notifyMessageTableName; this.notifyVerifyTableName = notifyVerifyTableName; this.verifyCodeExpiresSeconds = verifyCodeExpiresSeconds; this.verifyEmailNotifyMessage = verifyEmailFile!=null ? NotifyMessage.ParseFile(verifyEmailFile) : null; - this.verifyPhoneTextNotifyMessage = verifyPhoneTextFile!=null ? NotifyMessage.ParseFile(verifyPhoneTextFile) : null; + this.verifyPhoneNotifyMessage = verifyPhoneTextFile!=null ? NotifyMessage.ParseFile(verifyPhoneTextFile) : null; this.verifyCodeFormat = verifyCodeFormat; } public void Start() { this.emailNotifyMessageEngine?.Start(); - this.phoneTextNotifyMessageEngine?.Start(); + this.phoneNotifyMessageEngine?.Start(); } public void Stop() { this.emailNotifyMessageEngine?.Stop(); - this.phoneTextNotifyMessageEngine?.Stop(); - } - - public void SetupWebApi(IWebApi webApi, string pathPrefix = "/api/notify") { - webApi.OnPost($"{pathPrefix}/send-verify-code", async (req, res) => { - Dict values = await req.ParseAsJsonAsync(); - string contact = values.GetAs("contact", (string)null); - await this.SendVerifyCodeAsync(contact); - }); + this.phoneNotifyMessageEngine?.Stop(); } public async Task SendVerifyCodeAsync(string contact) { @@ -121,8 +113,8 @@ public async Task SendVerifyCodeAsync(string contact) { notifyMessage = this.verifyEmailNotifyMessage; break; case NotifyMessageType.PhoneText: - if (this.verifyPhoneTextNotifyMessage == null) throw new Exception("Server must be configured with verify phone text notify message"); - notifyMessage = this.verifyPhoneTextNotifyMessage; + if (this.verifyPhoneNotifyMessage == null) throw new Exception("Server must be configured with verify phone text notify message"); + notifyMessage = this.verifyPhoneNotifyMessage; break; } var evaluatedNotifyMessage = notifyMessage.Evaluate(new { @@ -186,8 +178,8 @@ public async Task Queue(ITransaction transaction, params NotifyMessage[] notifyM emailQueued = true; break; case NotifyMessageType.PhoneText: - if (this.phoneTextNotifyMessageEngine == null) throw new Exception("No phone text message sender configured"); - await this.phoneTextNotifyMessageEngine.Queue(transaction, scrubbedFrom, scrubbedTo, notifyMessage.subject, notifyMessage.bodyText, notifyMessage.bodyHtml, notifyMessage.priority, notifyMessage.extraData); + if (this.phoneNotifyMessageEngine == null) throw new Exception("No phone text message sender configured"); + await this.phoneNotifyMessageEngine.Queue(transaction, scrubbedFrom, scrubbedTo, notifyMessage.subject, notifyMessage.bodyText, notifyMessage.bodyHtml, notifyMessage.priority, notifyMessage.extraData); phoneTextQueued = true; break; } @@ -195,7 +187,7 @@ public async Task Queue(ITransaction transaction, params NotifyMessage[] notifyM transaction.OnCommit(() => { if (emailQueued) this.emailNotifyMessageEngine.Pulse(); - if (phoneTextQueued) this.phoneTextNotifyMessageEngine.Pulse(); + if (phoneTextQueued) this.phoneNotifyMessageEngine.Pulse(); return Task.FromResult(0); }); } @@ -267,7 +259,7 @@ async Task Run() { messageType = (byte)this.notifyMessageType }); if (message == null) { - logger.Debug("Run():Waiting indefinitely"); + logger.Trace("Run():Waiting indefinitely"); try { this.cancellationTokenSource = new CancellationTokenSource(); await Task.Delay(60000, cancellationTokenSource.Token); @@ -275,7 +267,7 @@ async Task Run() { catch (TaskCanceledException) { this.cancellationTokenSource = null; } - logger.Debug("Run():Waking up"); + logger.Trace("Run():Waking up"); } else { NotifyMessageType notifyMessageType = message.GetAs("type", NotifyMessageType.Email); @@ -306,7 +298,7 @@ async Task Run() { int totalMillis = (int)(this.notifyMessageSender.CanSendNextAt - DateTime.Now).TotalMilliseconds; if (totalMillis>0) { - logger.Debug("Run():Sleeping for " + totalMillis + "ms"); + logger.Trace("Run():Sleeping for " + totalMillis + "ms"); await Task.Delay(totalMillis); } } diff --git a/Butterfly.EmbedIO/Butterfly.EmbedIO.csproj b/Butterfly.EmbedIO/Butterfly.EmbedIO.csproj index 99f0c2bc..cf492c63 100644 --- a/Butterfly.EmbedIO/Butterfly.EmbedIO.csproj +++ b/Butterfly.EmbedIO/Butterfly.EmbedIO.csproj @@ -12,7 +12,7 @@ Kent Johnson Copyright 2017-2018 Fireshark Studios, LLC Implementation of IWebApi and ISubscriptionApi for EmbedIO (see https://github.com/unosquare/embedio) - 1.0.5 + 1.1.0 Various improvements and bug fixes bin\$(Configuration)\$(TargetFramework)\$(MSBuildProjectName).xml diff --git a/Butterfly.MySql/Butterfly.MySql.csproj b/Butterfly.MySql/Butterfly.MySql.csproj index 3fdc53bc..983f0d7f 100644 --- a/Butterfly.MySql/Butterfly.MySql.csproj +++ b/Butterfly.MySql/Butterfly.MySql.csproj @@ -12,7 +12,7 @@ Kent Johnson Copyright 2017-2018 Fireshark Studios, LLC Implementation of Butterfly.Core.Database for MySQL - 1.0.5 + 1.1.0 Various improvements and bug fixes bin\$(Configuration)\$(TargetFramework)\$(MSBuildProjectName).xml @@ -22,7 +22,7 @@ - + diff --git a/Butterfly.Postgres/Butterfly.Postgres.csproj b/Butterfly.Postgres/Butterfly.Postgres.csproj index bd97b5f8..3f6312a7 100644 --- a/Butterfly.Postgres/Butterfly.Postgres.csproj +++ b/Butterfly.Postgres/Butterfly.Postgres.csproj @@ -13,7 +13,7 @@ Copyright 2017-2018 Fireshark Studios, LLC Implementation of Butterfly.Core.Database for Postgres Various improvements and bug fixes - 1.0.5 + 1.1.0 bin\$(Configuration)\$(TargetFramework)\$(MSBuildProjectName).xml diff --git a/Butterfly.RedHttpServer/Butterfly.RedHttpServer.csproj b/Butterfly.RedHttpServer/Butterfly.RedHttpServer.csproj index d24f852d..f9bb206b 100644 --- a/Butterfly.RedHttpServer/Butterfly.RedHttpServer.csproj +++ b/Butterfly.RedHttpServer/Butterfly.RedHttpServer.csproj @@ -2,7 +2,7 @@ netstandard2.0 - 1.0.5 + 1.1.0 Kent Johnson Fireshark Studios, LLC Butterfly Server .NET diff --git a/Butterfly.SQLite/Butterfly.SQLite.csproj b/Butterfly.SQLite/Butterfly.SQLite.csproj index 032debbf..9561533e 100644 --- a/Butterfly.SQLite/Butterfly.SQLite.csproj +++ b/Butterfly.SQLite/Butterfly.SQLite.csproj @@ -12,7 +12,7 @@ Kent Johnson Copyright 2017-2018 Fireshark Studios, LLC Implementation of Butterfly.Core.Database for SQLite - 1.0.5 + 1.1.0 Various improvements and bug fixes bin\$(Configuration)\$(TargetFramework)\$(MSBuildProjectName).xml diff --git a/Butterfly.SqlServer/Butterfly.SqlServer.csproj b/Butterfly.SqlServer/Butterfly.SqlServer.csproj index 7c258191..3803f1bc 100644 --- a/Butterfly.SqlServer/Butterfly.SqlServer.csproj +++ b/Butterfly.SqlServer/Butterfly.SqlServer.csproj @@ -3,7 +3,7 @@ netstandard2.0 bin\$(Configuration)\$(TargetFramework)\$(MSBuildProjectName).xml - 1.0.5 + 1.1.0 Johan van Rensburg, Kent Johnson Fireshark Studios, LLC Butterfly Server .NET diff --git a/Butterfly.Twilio.Test/TwilioTest.cs b/Butterfly.Twilio.Test/TwilioTest.cs index c1423dfb..c26ffedc 100644 --- a/Butterfly.Twilio.Test/TwilioTest.cs +++ b/Butterfly.Twilio.Test/TwilioTest.cs @@ -13,8 +13,8 @@ namespace Butterfly.Notify.Test { public class TwilioTest { [TestMethod] public async Task SendTwilioSmsNotifyMessage() { - var notifyMessageSender = new TwilioPhoneTextNotifyMessageSender("my-sid", "my-auth-token"); - await NotifyTest.SendPhoneTextNotifyMessage(notifyMessageSender); + var notifyMessageSender = new TwilioPhoneNotifyMessageSender("my-sid", "my-auth-token"); + await NotifyTest.SendPhoneNotifyMessage(notifyMessageSender); } } } diff --git a/Butterfly.Twilio/Butterfly.Twilio.csproj b/Butterfly.Twilio/Butterfly.Twilio.csproj index c19fd6b4..211a3520 100644 --- a/Butterfly.Twilio/Butterfly.Twilio.csproj +++ b/Butterfly.Twilio/Butterfly.Twilio.csproj @@ -12,7 +12,7 @@ Kent Johnson Copyright 2017-2018 Fireshark Studios, LLC Implementation of Butterfly.Core.Notify.INotifyMessageSender for Twilio SMS - 1.0.5 + 1.1.0 Various improvements and bug fixes bin\$(Configuration)\$(TargetFramework)\$(MSBuildProjectName).xml @@ -22,7 +22,7 @@ - + diff --git a/Butterfly.Twilio/TwilioPhoneTextNotifyMessageSender.cs b/Butterfly.Twilio/TwilioPhoneNotifyMessageSender.cs similarity index 86% rename from Butterfly.Twilio/TwilioPhoneTextNotifyMessageSender.cs rename to Butterfly.Twilio/TwilioPhoneNotifyMessageSender.cs index 95d3182b..98f19242 100644 --- a/Butterfly.Twilio/TwilioPhoneTextNotifyMessageSender.cs +++ b/Butterfly.Twilio/TwilioPhoneNotifyMessageSender.cs @@ -16,14 +16,14 @@ namespace Butterfly.Twilio { - public class TwilioPhoneTextNotifyMessageSender : BaseNotifyMessageSender { + public class TwilioPhoneNotifyMessageSender : BaseNotifyMessageSender { protected static readonly Logger logger = LogManager.GetCurrentClassLogger(); protected readonly string twilioAccountSid; protected readonly string twilioAuthToken; - public TwilioPhoneTextNotifyMessageSender(string twilioAccountSid, string twilioAuthToken) { + public TwilioPhoneNotifyMessageSender(string twilioAccountSid, string twilioAuthToken) { this.twilioAccountSid = twilioAccountSid; this.twilioAuthToken = twilioAuthToken; } @@ -31,7 +31,7 @@ public TwilioPhoneTextNotifyMessageSender(string twilioAccountSid, string twilio protected override async Task DoSendAsync(string from, string to, string subject, string bodyText, string bodyHtml) { TwilioClient.Init(this.twilioAccountSid, this.twilioAuthToken); - var mediaUris = string.IsNullOrEmpty(bodyHtml) ? new List { new Uri(bodyHtml) } : null; + var mediaUris = string.IsNullOrWhiteSpace(bodyHtml) ? null: new List { new Uri(bodyHtml.Trim()) }; MessageResource messageResource = await MessageResource.CreateAsync( to: new PhoneNumber(to), from: new PhoneNumber(from), diff --git a/docfx_project/api/.manifest b/docfx_project/api/.manifest index fba4ddb3..26e752cc 100644 --- a/docfx_project/api/.manifest +++ b/docfx_project/api/.manifest @@ -38,18 +38,17 @@ "Butterfly.Client.DotNet.WebSocketChannelClientStatus.Reconnecting": "Butterfly.Client.DotNet.WebSocketChannelClientStatus.yml", "Butterfly.Core.Auth": "Butterfly.Core.Auth.yml", "Butterfly.Core.Auth.AuthManager": "Butterfly.Core.Auth.AuthManager.yml", - "Butterfly.Core.Auth.AuthManager.#ctor(Butterfly.Core.Database.IDatabase,System.Int32,System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,Func{System.String,System.Int32,Task},Func{System.String,System.Int32,Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Action{Version})": "Butterfly.Core.Auth.AuthManager.yml", + "Butterfly.Core.Auth.AuthManager.#ctor(Butterfly.Core.Database.IDatabase,System.Int32,System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,Func{System.String,System.Int32,Task},Func{System.String,System.Int32,Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Action{Version})": "Butterfly.Core.Auth.AuthManager.yml", + "Butterfly.Core.Auth.AuthManager.accountTableIdFieldName": "Butterfly.Core.Auth.AuthManager.yml", "Butterfly.Core.Auth.AuthManager.accountTableName": "Butterfly.Core.Auth.AuthManager.yml", - "Butterfly.Core.Auth.AuthManager.AuthenticateAsync(System.String)": "Butterfly.Core.Auth.AuthManager.yml", + "Butterfly.Core.Auth.AuthManager.accountTableShareCodeFieldName": "Butterfly.Core.Auth.AuthManager.yml", + "Butterfly.Core.Auth.AuthManager.AuthenticateAsync(System.String,System.String)": "Butterfly.Core.Auth.AuthManager.yml", + "Butterfly.Core.Auth.AuthManager.authenticatorByType": "Butterfly.Core.Auth.AuthManager.yml", "Butterfly.Core.Auth.AuthManager.authTokenDurationDays": "Butterfly.Core.Auth.AuthManager.yml", - "Butterfly.Core.Auth.AuthManager.authTokenIdFieldName": "Butterfly.Core.Auth.AuthManager.yml", - "Butterfly.Core.Auth.AuthManager.authTokenTableExpiresAtFieldName": "Butterfly.Core.Auth.AuthManager.yml", - "Butterfly.Core.Auth.AuthManager.authTokenTableName": "Butterfly.Core.Auth.AuthManager.yml", - "Butterfly.Core.Auth.AuthManager.authTokenTableUserIdFieldName": "Butterfly.Core.Auth.AuthManager.yml", "Butterfly.Core.Auth.AuthManager.ConvertInputToDict(System.Object)": "Butterfly.Core.Auth.AuthManager.yml", "Butterfly.Core.Auth.AuthManager.CreateAnonymousUserAsync": "Butterfly.Core.Auth.AuthManager.yml", - "Butterfly.Core.Auth.AuthManager.CreateAuthTokenAsync(System.String)": "Butterfly.Core.Auth.AuthManager.yml", "Butterfly.Core.Auth.AuthManager.CreateResetCodeAsync(System.String)": "Butterfly.Core.Auth.AuthManager.yml", + "Butterfly.Core.Auth.AuthManager.CreateUserRefTokenAsync(System.String)": "Butterfly.Core.Auth.AuthManager.yml", "Butterfly.Core.Auth.AuthManager.database": "Butterfly.Core.Auth.AuthManager.yml", "Butterfly.Core.Auth.AuthManager.defaultRole": "Butterfly.Core.Auth.AuthManager.yml", "Butterfly.Core.Auth.AuthManager.emailFieldValidator": "Butterfly.Core.Auth.AuthManager.yml", @@ -70,7 +69,9 @@ "Butterfly.Core.Auth.AuthManager.ResetPasswordAsync(System.Collections.Generic.Dictionary{System.String,System.Object})": "Butterfly.Core.Auth.AuthManager.yml", "Butterfly.Core.Auth.AuthManager.resetTokenDurationMinutes": "Butterfly.Core.Auth.AuthManager.yml", "Butterfly.Core.Auth.AuthManager.SetupWebApi(Butterfly.Core.WebApi.IWebApi,System.String)": "Butterfly.Core.Auth.AuthManager.yml", + "Butterfly.Core.Auth.AuthManager.shareCodeAuthenticator": "Butterfly.Core.Auth.AuthManager.yml", "Butterfly.Core.Auth.AuthManager.usernameFieldValidator": "Butterfly.Core.Auth.AuthManager.yml", + "Butterfly.Core.Auth.AuthManager.userRefTokenAuthenticator": "Butterfly.Core.Auth.AuthManager.yml", "Butterfly.Core.Auth.AuthManager.userTableAccountIdFieldName": "Butterfly.Core.Auth.AuthManager.yml", "Butterfly.Core.Auth.AuthManager.userTableEmailFieldName": "Butterfly.Core.Auth.AuthManager.yml", "Butterfly.Core.Auth.AuthManager.userTableEmailVerifiedAtFieldName": "Butterfly.Core.Auth.AuthManager.yml", @@ -89,14 +90,45 @@ "Butterfly.Core.Auth.AuthManager.VerifyAsync(System.Collections.Generic.Dictionary{System.String,System.Object},System.String,System.String,Func{System.String,System.Int32,Task})": "Butterfly.Core.Auth.AuthManager.yml", "Butterfly.Core.Auth.AuthManager.VERSION_CLEAN_REGEX": "Butterfly.Core.Auth.AuthManager.yml", "Butterfly.Core.Auth.AuthToken": "Butterfly.Core.Auth.AuthToken.yml", - "Butterfly.Core.Auth.AuthToken.#ctor(System.String,System.String,System.String,System.String,System.String,DateTime)": "Butterfly.Core.Auth.AuthToken.yml", + "Butterfly.Core.Auth.AuthToken.#ctor(System.String,System.String,System.String)": "Butterfly.Core.Auth.AuthToken.yml", "Butterfly.Core.Auth.AuthToken.accountId": "Butterfly.Core.Auth.AuthToken.yml", - "Butterfly.Core.Auth.AuthToken.expiresAt": "Butterfly.Core.Auth.AuthToken.yml", - "Butterfly.Core.Auth.AuthToken.FromDict(System.Collections.Generic.Dictionary{System.String,System.Object},System.String,System.String,System.String,System.String,System.String,System.String)": "Butterfly.Core.Auth.AuthToken.yml", - "Butterfly.Core.Auth.AuthToken.id": "Butterfly.Core.Auth.AuthToken.yml", "Butterfly.Core.Auth.AuthToken.role": "Butterfly.Core.Auth.AuthToken.yml", - "Butterfly.Core.Auth.AuthToken.userId": "Butterfly.Core.Auth.AuthToken.yml", - "Butterfly.Core.Auth.AuthToken.username": "Butterfly.Core.Auth.AuthToken.yml", + "Butterfly.Core.Auth.AuthToken.type": "Butterfly.Core.Auth.AuthToken.yml", + "Butterfly.Core.Auth.IAuthenticator": "Butterfly.Core.Auth.IAuthenticator.yml", + "Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String,System.String)": "Butterfly.Core.Auth.IAuthenticator.yml", + "Butterfly.Core.Auth.ShareCodeAuthenticator": "Butterfly.Core.Auth.ShareCodeAuthenticator.yml", + "Butterfly.Core.Auth.ShareCodeAuthenticator.#ctor(Butterfly.Core.Database.IDatabase,System.String,System.String,System.String)": "Butterfly.Core.Auth.ShareCodeAuthenticator.yml", + "Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableIdFieldName": "Butterfly.Core.Auth.ShareCodeAuthenticator.yml", + "Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableName": "Butterfly.Core.Auth.ShareCodeAuthenticator.yml", + "Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableShareCodeFieldName": "Butterfly.Core.Auth.ShareCodeAuthenticator.yml", + "Butterfly.Core.Auth.ShareCodeAuthenticator.AUTH_TYPE": "Butterfly.Core.Auth.ShareCodeAuthenticator.yml", + "Butterfly.Core.Auth.ShareCodeAuthenticator.AuthenticateAsync(System.String,System.String)": "Butterfly.Core.Auth.ShareCodeAuthenticator.yml", + "Butterfly.Core.Auth.ShareCodeAuthenticator.database": "Butterfly.Core.Auth.ShareCodeAuthenticator.yml", + "Butterfly.Core.Auth.ShareCodeAuthenticator.logger": "Butterfly.Core.Auth.ShareCodeAuthenticator.yml", + "Butterfly.Core.Auth.ShareCodeToken": "Butterfly.Core.Auth.ShareCodeToken.yml", + "Butterfly.Core.Auth.ShareCodeToken.#ctor(System.String,System.String)": "Butterfly.Core.Auth.ShareCodeToken.yml", + "Butterfly.Core.Auth.UserRefToken": "Butterfly.Core.Auth.UserRefToken.yml", + "Butterfly.Core.Auth.UserRefToken.#ctor(System.String,System.String,System.String,System.String,System.String,DateTime)": "Butterfly.Core.Auth.UserRefToken.yml", + "Butterfly.Core.Auth.UserRefToken.expiresAt": "Butterfly.Core.Auth.UserRefToken.yml", + "Butterfly.Core.Auth.UserRefToken.FromDict(System.Collections.Generic.Dictionary{System.String,System.Object},System.String,System.String,System.String,System.String,System.String,System.String)": "Butterfly.Core.Auth.UserRefToken.yml", + "Butterfly.Core.Auth.UserRefToken.id": "Butterfly.Core.Auth.UserRefToken.yml", + "Butterfly.Core.Auth.UserRefToken.userId": "Butterfly.Core.Auth.UserRefToken.yml", + "Butterfly.Core.Auth.UserRefToken.username": "Butterfly.Core.Auth.UserRefToken.yml", + "Butterfly.Core.Auth.UserRefTokenAuthenticator": "Butterfly.Core.Auth.UserRefTokenAuthenticator.yml", + "Butterfly.Core.Auth.UserRefTokenAuthenticator.#ctor(Butterfly.Core.Database.IDatabase,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)": "Butterfly.Core.Auth.UserRefTokenAuthenticator.yml", + "Butterfly.Core.Auth.UserRefTokenAuthenticator.AUTH_TYPE": "Butterfly.Core.Auth.UserRefTokenAuthenticator.yml", + "Butterfly.Core.Auth.UserRefTokenAuthenticator.AuthenticateAsync(System.String,System.String)": "Butterfly.Core.Auth.UserRefTokenAuthenticator.yml", + "Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenIdFieldName": "Butterfly.Core.Auth.UserRefTokenAuthenticator.yml", + "Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableExpiresAtFieldName": "Butterfly.Core.Auth.UserRefTokenAuthenticator.yml", + "Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableName": "Butterfly.Core.Auth.UserRefTokenAuthenticator.yml", + "Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableUserIdFieldName": "Butterfly.Core.Auth.UserRefTokenAuthenticator.yml", + "Butterfly.Core.Auth.UserRefTokenAuthenticator.database": "Butterfly.Core.Auth.UserRefTokenAuthenticator.yml", + "Butterfly.Core.Auth.UserRefTokenAuthenticator.InsertAsync(Butterfly.Core.Database.ITransaction,System.String,DateTime)": "Butterfly.Core.Auth.UserRefTokenAuthenticator.yml", + "Butterfly.Core.Auth.UserRefTokenAuthenticator.logger": "Butterfly.Core.Auth.UserRefTokenAuthenticator.yml", + "Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableAccountIdFieldName": "Butterfly.Core.Auth.UserRefTokenAuthenticator.yml", + "Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableName": "Butterfly.Core.Auth.UserRefTokenAuthenticator.yml", + "Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableRoleFieldName": "Butterfly.Core.Auth.UserRefTokenAuthenticator.yml", + "Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableUsernameFieldName": "Butterfly.Core.Auth.UserRefTokenAuthenticator.yml", "Butterfly.Core.Channel": "Butterfly.Core.Channel.yml", "Butterfly.Core.Channel.BaseChannelConnection": "Butterfly.Core.Channel.BaseChannelConnection.yml", "Butterfly.Core.Channel.BaseChannelConnection.#ctor(Butterfly.Core.Channel.BaseSubscriptionApi)": "Butterfly.Core.Channel.BaseChannelConnection.yml", @@ -115,7 +147,7 @@ "Butterfly.Core.Channel.BaseChannelConnection.LastHeartbeat": "Butterfly.Core.Channel.BaseChannelConnection.yml", "Butterfly.Core.Channel.BaseChannelConnection.logger": "Butterfly.Core.Channel.BaseChannelConnection.yml", "Butterfly.Core.Channel.BaseChannelConnection.monitor": "Butterfly.Core.Channel.BaseChannelConnection.yml", - "Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object)": "Butterfly.Core.Channel.BaseChannelConnection.yml", + "Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean)": "Butterfly.Core.Channel.BaseChannelConnection.yml", "Butterfly.Core.Channel.BaseChannelConnection.ReceiveMessageAsync(System.String)": "Butterfly.Core.Channel.BaseChannelConnection.yml", "Butterfly.Core.Channel.BaseChannelConnection.RunAsync": "Butterfly.Core.Channel.BaseChannelConnection.yml", "Butterfly.Core.Channel.BaseChannelConnection.SendAsync(System.String)": "Butterfly.Core.Channel.BaseChannelConnection.yml", @@ -172,7 +204,7 @@ "Butterfly.Core.Channel.IChannelConnection.Created": "Butterfly.Core.Channel.IChannelConnection.yml", "Butterfly.Core.Channel.IChannelConnection.Id": "Butterfly.Core.Channel.IChannelConnection.yml", "Butterfly.Core.Channel.IChannelConnection.LastHeartbeat": "Butterfly.Core.Channel.IChannelConnection.yml", - "Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object)": "Butterfly.Core.Channel.IChannelConnection.yml", + "Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean)": "Butterfly.Core.Channel.IChannelConnection.yml", "Butterfly.Core.Channel.IChannelConnection.Start(System.Object,System.String)": "Butterfly.Core.Channel.IChannelConnection.yml", "Butterfly.Core.Channel.ISubscriptionApi": "Butterfly.Core.Channel.ISubscriptionApi.yml", "Butterfly.Core.Channel.ISubscriptionApi.AuthenticatedConnections": "Butterfly.Core.Channel.ISubscriptionApi.yml", @@ -273,8 +305,8 @@ "Butterfly.Core.Database.BaseTransaction.GetKeyValue(Butterfly.Core.Database.TableIndex,System.Collections.Generic.Dictionary{System.String,System.Object},System.Collections.Generic.Dictionary{System.String,System.Object},Butterfly.Core.Database.StatementEqualsRef[],Butterfly.Core.Database.TableIndex,System.String)": "Butterfly.Core.Database.BaseTransaction.yml", "Butterfly.Core.Database.BaseTransaction.InsertAsync(Butterfly.Core.Database.InsertStatement,System.Object,System.Boolean)": "Butterfly.Core.Database.BaseTransaction.yml", "Butterfly.Core.Database.BaseTransaction.InsertAsync``1(System.String,System.Object,System.Boolean)": "Butterfly.Core.Database.BaseTransaction.yml", - "Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task})": "Butterfly.Core.Database.BaseTransaction.yml", - "Butterfly.Core.Database.BaseTransaction.onCommits": "Butterfly.Core.Database.BaseTransaction.yml", + "Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task},System.String)": "Butterfly.Core.Database.BaseTransaction.yml", + "Butterfly.Core.Database.BaseTransaction.onCommitRefs": "Butterfly.Core.Database.BaseTransaction.yml", "Butterfly.Core.Database.BaseTransaction.Rollback": "Butterfly.Core.Database.BaseTransaction.yml", "Butterfly.Core.Database.BaseTransaction.SynchronizeAsync(System.String,System.Collections.Generic.Dictionary{System.String,System.Object}[],System.Collections.Generic.Dictionary{System.String,System.Object}[],System.String[])": "Butterfly.Core.Database.BaseTransaction.yml", "Butterfly.Core.Database.BaseTransaction.TruncateAsync(System.String)": "Butterfly.Core.Database.BaseTransaction.yml", @@ -462,7 +494,7 @@ "Butterfly.Core.Database.ITransaction.Database": "Butterfly.Core.Database.ITransaction.yml", "Butterfly.Core.Database.ITransaction.DeleteAsync(System.String,System.Object)": "Butterfly.Core.Database.ITransaction.yml", "Butterfly.Core.Database.ITransaction.InsertAsync``1(System.String,System.Object,System.Boolean)": "Butterfly.Core.Database.ITransaction.yml", - "Butterfly.Core.Database.ITransaction.OnCommit(Func{Task})": "Butterfly.Core.Database.ITransaction.yml", + "Butterfly.Core.Database.ITransaction.OnCommit(Func{Task},System.String)": "Butterfly.Core.Database.ITransaction.yml", "Butterfly.Core.Database.ITransaction.Rollback": "Butterfly.Core.Database.ITransaction.yml", "Butterfly.Core.Database.ITransaction.SynchronizeAsync(System.String,System.Collections.Generic.Dictionary{System.String,System.Object}[],System.Collections.Generic.Dictionary{System.String,System.Object}[],System.String[])": "Butterfly.Core.Database.ITransaction.yml", "Butterfly.Core.Database.ITransaction.TruncateAsync(System.String)": "Butterfly.Core.Database.ITransaction.yml", @@ -504,6 +536,10 @@ "Butterfly.Core.Database.Memory.MemoryTransaction.DoRollback": "Butterfly.Core.Database.Memory.MemoryTransaction.yml", "Butterfly.Core.Database.Memory.MemoryTransaction.DoTruncateAsync(System.String)": "Butterfly.Core.Database.Memory.MemoryTransaction.yml", "Butterfly.Core.Database.Memory.MemoryTransaction.DoUpdateAsync(System.String,System.Collections.Generic.Dictionary{System.String,System.Object})": "Butterfly.Core.Database.Memory.MemoryTransaction.yml", + "Butterfly.Core.Database.OnCommitRef": "Butterfly.Core.Database.OnCommitRef.yml", + "Butterfly.Core.Database.OnCommitRef.#ctor(Func{Task},System.String)": "Butterfly.Core.Database.OnCommitRef.yml", + "Butterfly.Core.Database.OnCommitRef.key": "Butterfly.Core.Database.OnCommitRef.yml", + "Butterfly.Core.Database.OnCommitRef.onCommit": "Butterfly.Core.Database.OnCommitRef.yml", "Butterfly.Core.Database.SelectStatement": "Butterfly.Core.Database.SelectStatement.yml", "Butterfly.Core.Database.SelectStatement.#ctor(Butterfly.Core.Database.IDatabase,System.String,System.Int32)": "Butterfly.Core.Database.SelectStatement.yml", "Butterfly.Core.Database.SelectStatement.#ctor(Butterfly.Core.Database.IDatabase,System.String,System.String,System.String,System.String,System.Int32)": "Butterfly.Core.Database.SelectStatement.yml", @@ -612,11 +648,10 @@ "Butterfly.Core.Notify.NotifyManager.notifyMessageTableName": "Butterfly.Core.Notify.NotifyManager.yml", "Butterfly.Core.Notify.NotifyManager.notifyVerifyTableName": "Butterfly.Core.Notify.NotifyManager.yml", "Butterfly.Core.Notify.NotifyManager.PHONE_FIELD_VALIDATOR": "Butterfly.Core.Notify.NotifyManager.yml", - "Butterfly.Core.Notify.NotifyManager.phoneTextNotifyMessageEngine": "Butterfly.Core.Notify.NotifyManager.yml", + "Butterfly.Core.Notify.NotifyManager.phoneNotifyMessageEngine": "Butterfly.Core.Notify.NotifyManager.yml", "Butterfly.Core.Notify.NotifyManager.Queue(Butterfly.Core.Database.ITransaction,Butterfly.Core.Notify.NotifyMessage[])": "Butterfly.Core.Notify.NotifyManager.yml", "Butterfly.Core.Notify.NotifyManager.RANDOM": "Butterfly.Core.Notify.NotifyManager.yml", "Butterfly.Core.Notify.NotifyManager.SendVerifyCodeAsync(System.String)": "Butterfly.Core.Notify.NotifyManager.yml", - "Butterfly.Core.Notify.NotifyManager.SetupWebApi(Butterfly.Core.WebApi.IWebApi,System.String)": "Butterfly.Core.Notify.NotifyManager.yml", "Butterfly.Core.Notify.NotifyManager.Start": "Butterfly.Core.Notify.NotifyManager.yml", "Butterfly.Core.Notify.NotifyManager.Stop": "Butterfly.Core.Notify.NotifyManager.yml", "Butterfly.Core.Notify.NotifyManager.Validate(System.String)": "Butterfly.Core.Notify.NotifyManager.yml", @@ -624,7 +659,7 @@ "Butterfly.Core.Notify.NotifyManager.verifyCodeExpiresSeconds": "Butterfly.Core.Notify.NotifyManager.yml", "Butterfly.Core.Notify.NotifyManager.verifyCodeFormat": "Butterfly.Core.Notify.NotifyManager.yml", "Butterfly.Core.Notify.NotifyManager.verifyEmailNotifyMessage": "Butterfly.Core.Notify.NotifyManager.yml", - "Butterfly.Core.Notify.NotifyManager.verifyPhoneTextNotifyMessage": "Butterfly.Core.Notify.NotifyManager.yml", + "Butterfly.Core.Notify.NotifyManager.verifyPhoneNotifyMessage": "Butterfly.Core.Notify.NotifyManager.yml", "Butterfly.Core.Notify.NotifyMessage": "Butterfly.Core.Notify.NotifyMessage.yml", "Butterfly.Core.Notify.NotifyMessage.#ctor(System.String,System.String,System.String,System.String,System.String,System.Byte,System.Collections.Generic.Dictionary{System.String,System.Object})": "Butterfly.Core.Notify.NotifyMessage.yml", "Butterfly.Core.Notify.NotifyMessage.bodyHtml": "Butterfly.Core.Notify.NotifyMessage.yml", @@ -648,7 +683,7 @@ "Butterfly.Core.Notify.Test.NotifyTest": "Butterfly.Core.Notify.Test.NotifyTest.yml", "Butterfly.Core.Notify.Test.NotifyTest.ParseNotifyMessage": "Butterfly.Core.Notify.Test.NotifyTest.yml", "Butterfly.Core.Notify.Test.NotifyTest.SendEmailNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender)": "Butterfly.Core.Notify.Test.NotifyTest.yml", - "Butterfly.Core.Notify.Test.NotifyTest.SendPhoneTextNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender)": "Butterfly.Core.Notify.Test.NotifyTest.yml", + "Butterfly.Core.Notify.Test.NotifyTest.SendPhoneNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender)": "Butterfly.Core.Notify.Test.NotifyTest.yml", "Butterfly.Core.Test": "Butterfly.Core.Test.yml", "Butterfly.Core.Test.AuthTest": "Butterfly.Core.Test.AuthTest.yml", "Butterfly.Core.Test.AuthTest.logger": "Butterfly.Core.Test.AuthTest.yml", @@ -823,6 +858,10 @@ "Butterfly.Core.Util.UnauthorizedException.#ctor": "Butterfly.Core.Util.UnauthorizedException.yml", "Butterfly.Core.Util.UriX": "Butterfly.Core.Util.UriX.yml", "Butterfly.Core.Util.UriX.ParseQuery(Uri)": "Butterfly.Core.Util.UriX.yml", + "Butterfly.Core.Util.WebClientWithTimeout": "Butterfly.Core.Util.WebClientWithTimeout.yml", + "Butterfly.Core.Util.WebClientWithTimeout.#ctor(System.Int32)": "Butterfly.Core.Util.WebClientWithTimeout.yml", + "Butterfly.Core.Util.WebClientWithTimeout.GetWebRequest(Uri)": "Butterfly.Core.Util.WebClientWithTimeout.yml", + "Butterfly.Core.Util.WebClientWithTimeout.timeoutMillis": "Butterfly.Core.Util.WebClientWithTimeout.yml", "Butterfly.Core.WebApi": "Butterfly.Core.WebApi.yml", "Butterfly.Core.WebApi.BaseHttpRequest": "Butterfly.Core.WebApi.BaseHttpRequest.yml", "Butterfly.Core.WebApi.BaseHttpRequest.Headers": "Butterfly.Core.WebApi.BaseHttpRequest.yml", @@ -1135,10 +1174,10 @@ "Butterfly.Twilio": "Butterfly.Twilio.yml", "Butterfly.Twilio.TwilioModule": "Butterfly.Twilio.TwilioModule.yml", "Butterfly.Twilio.TwilioModule.Setup(Butterfly.Core.WebApi.IWebApi,Func{System.String,System.String,System.String,System.String[],Task{System.String}})": "Butterfly.Twilio.TwilioModule.yml", - "Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender": "Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.yml", - "Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.#ctor(System.String,System.String)": "Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.yml", - "Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.DoSendAsync(System.String,System.String,System.String,System.String,System.String)": "Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.yml", - "Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.logger": "Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.yml", - "Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.twilioAccountSid": "Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.yml", - "Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.twilioAuthToken": "Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.yml" + "Butterfly.Twilio.TwilioPhoneNotifyMessageSender": "Butterfly.Twilio.TwilioPhoneNotifyMessageSender.yml", + "Butterfly.Twilio.TwilioPhoneNotifyMessageSender.#ctor(System.String,System.String)": "Butterfly.Twilio.TwilioPhoneNotifyMessageSender.yml", + "Butterfly.Twilio.TwilioPhoneNotifyMessageSender.DoSendAsync(System.String,System.String,System.String,System.String,System.String)": "Butterfly.Twilio.TwilioPhoneNotifyMessageSender.yml", + "Butterfly.Twilio.TwilioPhoneNotifyMessageSender.logger": "Butterfly.Twilio.TwilioPhoneNotifyMessageSender.yml", + "Butterfly.Twilio.TwilioPhoneNotifyMessageSender.twilioAccountSid": "Butterfly.Twilio.TwilioPhoneNotifyMessageSender.yml", + "Butterfly.Twilio.TwilioPhoneNotifyMessageSender.twilioAuthToken": "Butterfly.Twilio.TwilioPhoneNotifyMessageSender.yml" } \ No newline at end of file diff --git a/docfx_project/api/Butterfly.Aws.AwsModule.yml b/docfx_project/api/Butterfly.Aws.AwsModule.yml index 8fbef31c..9808688c 100644 --- a/docfx_project/api/Butterfly.Aws.AwsModule.yml +++ b/docfx_project/api/Butterfly.Aws.AwsModule.yml @@ -28,6 +28,7 @@ items: content: 'public static class AwsModule : object' content.vb: >- Public Module AwsModule + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Aws.AwsSesEmailNotifyMessageSender.yml b/docfx_project/api/Butterfly.Aws.AwsSesEmailNotifyMessageSender.yml index d4af1ccd..c316abf9 100644 --- a/docfx_project/api/Butterfly.Aws.AwsSesEmailNotifyMessageSender.yml +++ b/docfx_project/api/Butterfly.Aws.AwsSesEmailNotifyMessageSender.yml @@ -29,7 +29,9 @@ items: content: 'public class AwsSesEmailNotifyMessageSender : BaseNotifyMessageSender, INotifyMessageSender' content.vb: >- Public Class AwsSesEmailNotifyMessageSender + Inherits BaseNotifyMessageSender + Implements INotifyMessageSender inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Aws.Test.AwsTest.yml b/docfx_project/api/Butterfly.Aws.Test.AwsTest.yml index b6e005b3..6f17b5d3 100644 --- a/docfx_project/api/Butterfly.Aws.Test.AwsTest.yml +++ b/docfx_project/api/Butterfly.Aws.Test.AwsTest.yml @@ -28,6 +28,7 @@ items: content: 'public class AwsTest : object' content.vb: >- Public Class AwsTest + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Client.DotNet.Subscription.yml b/docfx_project/api/Butterfly.Client.DotNet.Subscription.yml index a19ad378..be60aab8 100644 --- a/docfx_project/api/Butterfly.Client.DotNet.Subscription.yml +++ b/docfx_project/api/Butterfly.Client.DotNet.Subscription.yml @@ -30,6 +30,7 @@ items: content: 'public class Subscription : object' content.vb: >- Public Class Subscription + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Client.DotNet.WebSocketChannelClient.yml b/docfx_project/api/Butterfly.Client.DotNet.WebSocketChannelClient.yml index 16040ef2..bed058a0 100644 --- a/docfx_project/api/Butterfly.Client.DotNet.WebSocketChannelClient.yml +++ b/docfx_project/api/Butterfly.Client.DotNet.WebSocketChannelClient.yml @@ -45,6 +45,7 @@ items: content: 'public class WebSocketChannelClient : IDisposable' content.vb: >- Public Class WebSocketChannelClient + Inherits IDisposable inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Auth.AuthManager.yml b/docfx_project/api/Butterfly.Core.Auth.AuthManager.yml index 8b7a9584..1073d6ba 100644 --- a/docfx_project/api/Butterfly.Core.Auth.AuthManager.yml +++ b/docfx_project/api/Butterfly.Core.Auth.AuthManager.yml @@ -5,18 +5,17 @@ items: id: AuthManager parent: Butterfly.Core.Auth children: - - Butterfly.Core.Auth.AuthManager.#ctor(Butterfly.Core.Database.IDatabase,System.Int32,System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,Func{System.String,System.Int32,Task},Func{System.String,System.Int32,Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Action{Version}) + - Butterfly.Core.Auth.AuthManager.#ctor(Butterfly.Core.Database.IDatabase,System.Int32,System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,Func{System.String,System.Int32,Task},Func{System.String,System.Int32,Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Action{Version}) + - Butterfly.Core.Auth.AuthManager.accountTableIdFieldName - Butterfly.Core.Auth.AuthManager.accountTableName - - Butterfly.Core.Auth.AuthManager.AuthenticateAsync(System.String) + - Butterfly.Core.Auth.AuthManager.accountTableShareCodeFieldName + - Butterfly.Core.Auth.AuthManager.AuthenticateAsync(System.String,System.String) + - Butterfly.Core.Auth.AuthManager.authenticatorByType - Butterfly.Core.Auth.AuthManager.authTokenDurationDays - - Butterfly.Core.Auth.AuthManager.authTokenIdFieldName - - Butterfly.Core.Auth.AuthManager.authTokenTableExpiresAtFieldName - - Butterfly.Core.Auth.AuthManager.authTokenTableName - - Butterfly.Core.Auth.AuthManager.authTokenTableUserIdFieldName - Butterfly.Core.Auth.AuthManager.ConvertInputToDict(System.Object) - Butterfly.Core.Auth.AuthManager.CreateAnonymousUserAsync - - Butterfly.Core.Auth.AuthManager.CreateAuthTokenAsync(System.String) - Butterfly.Core.Auth.AuthManager.CreateResetCodeAsync(System.String) + - Butterfly.Core.Auth.AuthManager.CreateUserRefTokenAsync(System.String) - Butterfly.Core.Auth.AuthManager.database - Butterfly.Core.Auth.AuthManager.defaultRole - Butterfly.Core.Auth.AuthManager.emailFieldValidator @@ -37,7 +36,9 @@ items: - Butterfly.Core.Auth.AuthManager.ResetPasswordAsync(System.Collections.Generic.Dictionary{System.String,System.Object}) - Butterfly.Core.Auth.AuthManager.resetTokenDurationMinutes - Butterfly.Core.Auth.AuthManager.SetupWebApi(Butterfly.Core.WebApi.IWebApi,System.String) + - Butterfly.Core.Auth.AuthManager.shareCodeAuthenticator - Butterfly.Core.Auth.AuthManager.usernameFieldValidator + - Butterfly.Core.Auth.AuthManager.userRefTokenAuthenticator - Butterfly.Core.Auth.AuthManager.userTableAccountIdFieldName - Butterfly.Core.Auth.AuthManager.userTableEmailFieldName - Butterfly.Core.Auth.AuthManager.userTableEmailVerifiedAtFieldName @@ -80,6 +81,7 @@ items: content: 'public class AuthManager : object' content.vb: >- Public Class AuthManager + Inherits Object inheritance: - System.Object @@ -289,6 +291,72 @@ items: modifiers.vb: - Protected - ReadOnly +- uid: Butterfly.Core.Auth.AuthManager.accountTableIdFieldName + commentId: F:Butterfly.Core.Auth.AuthManager.accountTableIdFieldName + id: accountTableIdFieldName + parent: Butterfly.Core.Auth.AuthManager + langs: + - csharp + - vb + name: accountTableIdFieldName + nameWithType: AuthManager.accountTableIdFieldName + fullName: Butterfly.Core.Auth.AuthManager.accountTableIdFieldName + type: Field + source: + remote: + path: Butterfly.Core/Auth/AuthManager.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: accountTableIdFieldName + path: ../Butterfly.Core/Auth/AuthManager.cs + startLine: 93 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected readonly string accountTableIdFieldName + return: + type: System.String + content.vb: Protected ReadOnly accountTableIdFieldName As String + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly +- uid: Butterfly.Core.Auth.AuthManager.accountTableShareCodeFieldName + commentId: F:Butterfly.Core.Auth.AuthManager.accountTableShareCodeFieldName + id: accountTableShareCodeFieldName + parent: Butterfly.Core.Auth.AuthManager + langs: + - csharp + - vb + name: accountTableShareCodeFieldName + nameWithType: AuthManager.accountTableShareCodeFieldName + fullName: Butterfly.Core.Auth.AuthManager.accountTableShareCodeFieldName + type: Field + source: + remote: + path: Butterfly.Core/Auth/AuthManager.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: accountTableShareCodeFieldName + path: ../Butterfly.Core/Auth/AuthManager.cs + startLine: 94 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected readonly string accountTableShareCodeFieldName + return: + type: System.String + content.vb: Protected ReadOnly accountTableShareCodeFieldName As String + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly - uid: Butterfly.Core.Auth.AuthManager.userTableName commentId: F:Butterfly.Core.Auth.AuthManager.userTableName id: userTableName @@ -307,7 +375,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: userTableName path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 94 + startLine: 96 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -340,7 +408,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: userTableIdFieldName path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 95 + startLine: 97 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -373,7 +441,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: userTableUsernameFieldName path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 96 + startLine: 98 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -406,7 +474,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: userTableEmailFieldName path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 97 + startLine: 99 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -439,7 +507,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: userTableEmailVerifiedAtFieldName path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 98 + startLine: 100 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -472,7 +540,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: userTablePhoneFieldName path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 99 + startLine: 101 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -505,7 +573,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: userTablePhoneVerifiedAtFieldName path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 100 + startLine: 102 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -538,7 +606,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: userTableSaltFieldName path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 101 + startLine: 103 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -571,7 +639,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: userTablePasswordHashFieldName path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 102 + startLine: 104 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -604,7 +672,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: userTableFirstNameFieldName path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 103 + startLine: 105 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -637,7 +705,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: userTableLastNameFieldName path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 104 + startLine: 106 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -670,7 +738,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: userTableResetCodeFieldName path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 105 + startLine: 107 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -703,7 +771,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: userTableResetCodeExpiresAtFieldName path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 106 + startLine: 108 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -736,7 +804,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: userTableAccountIdFieldName path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 107 + startLine: 109 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -769,7 +837,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: userTableRoleFieldName path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 108 + startLine: 110 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -784,138 +852,6 @@ items: modifiers.vb: - Protected - ReadOnly -- uid: Butterfly.Core.Auth.AuthManager.authTokenTableName - commentId: F:Butterfly.Core.Auth.AuthManager.authTokenTableName - id: authTokenTableName - parent: Butterfly.Core.Auth.AuthManager - langs: - - csharp - - vb - name: authTokenTableName - nameWithType: AuthManager.authTokenTableName - fullName: Butterfly.Core.Auth.AuthManager.authTokenTableName - type: Field - source: - remote: - path: Butterfly.Core/Auth/AuthManager.cs - branch: master - repo: https://github.com/firesharkstudios/Butterfly.git - id: authTokenTableName - path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 110 - assemblies: - - Butterfly.Core - namespace: Butterfly.Core.Auth - syntax: - content: protected readonly string authTokenTableName - return: - type: System.String - content.vb: Protected ReadOnly authTokenTableName As String - modifiers.csharp: - - protected - - readonly - modifiers.vb: - - Protected - - ReadOnly -- uid: Butterfly.Core.Auth.AuthManager.authTokenIdFieldName - commentId: F:Butterfly.Core.Auth.AuthManager.authTokenIdFieldName - id: authTokenIdFieldName - parent: Butterfly.Core.Auth.AuthManager - langs: - - csharp - - vb - name: authTokenIdFieldName - nameWithType: AuthManager.authTokenIdFieldName - fullName: Butterfly.Core.Auth.AuthManager.authTokenIdFieldName - type: Field - source: - remote: - path: Butterfly.Core/Auth/AuthManager.cs - branch: master - repo: https://github.com/firesharkstudios/Butterfly.git - id: authTokenIdFieldName - path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 111 - assemblies: - - Butterfly.Core - namespace: Butterfly.Core.Auth - syntax: - content: protected readonly string authTokenIdFieldName - return: - type: System.String - content.vb: Protected ReadOnly authTokenIdFieldName As String - modifiers.csharp: - - protected - - readonly - modifiers.vb: - - Protected - - ReadOnly -- uid: Butterfly.Core.Auth.AuthManager.authTokenTableUserIdFieldName - commentId: F:Butterfly.Core.Auth.AuthManager.authTokenTableUserIdFieldName - id: authTokenTableUserIdFieldName - parent: Butterfly.Core.Auth.AuthManager - langs: - - csharp - - vb - name: authTokenTableUserIdFieldName - nameWithType: AuthManager.authTokenTableUserIdFieldName - fullName: Butterfly.Core.Auth.AuthManager.authTokenTableUserIdFieldName - type: Field - source: - remote: - path: Butterfly.Core/Auth/AuthManager.cs - branch: master - repo: https://github.com/firesharkstudios/Butterfly.git - id: authTokenTableUserIdFieldName - path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 112 - assemblies: - - Butterfly.Core - namespace: Butterfly.Core.Auth - syntax: - content: protected readonly string authTokenTableUserIdFieldName - return: - type: System.String - content.vb: Protected ReadOnly authTokenTableUserIdFieldName As String - modifiers.csharp: - - protected - - readonly - modifiers.vb: - - Protected - - ReadOnly -- uid: Butterfly.Core.Auth.AuthManager.authTokenTableExpiresAtFieldName - commentId: F:Butterfly.Core.Auth.AuthManager.authTokenTableExpiresAtFieldName - id: authTokenTableExpiresAtFieldName - parent: Butterfly.Core.Auth.AuthManager - langs: - - csharp - - vb - name: authTokenTableExpiresAtFieldName - nameWithType: AuthManager.authTokenTableExpiresAtFieldName - fullName: Butterfly.Core.Auth.AuthManager.authTokenTableExpiresAtFieldName - type: Field - source: - remote: - path: Butterfly.Core/Auth/AuthManager.cs - branch: master - repo: https://github.com/firesharkstudios/Butterfly.git - id: authTokenTableExpiresAtFieldName - path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 113 - assemblies: - - Butterfly.Core - namespace: Butterfly.Core.Auth - syntax: - content: protected readonly string authTokenTableExpiresAtFieldName - return: - type: System.String - content.vb: Protected ReadOnly authTokenTableExpiresAtFieldName As String - modifiers.csharp: - - protected - - readonly - modifiers.vb: - - Protected - - ReadOnly - uid: Butterfly.Core.Auth.AuthManager.defaultRole commentId: F:Butterfly.Core.Auth.AuthManager.defaultRole id: defaultRole @@ -934,7 +870,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: defaultRole path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 115 + startLine: 112 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -967,7 +903,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: onEmailVerify path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 117 + startLine: 114 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -1000,7 +936,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: onPhoneVerify path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 118 + startLine: 115 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -1033,7 +969,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: onRegister path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 120 + startLine: 117 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -1066,7 +1002,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: onForgotPassword path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 121 + startLine: 118 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -1099,7 +1035,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: onCheckVersion path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 122 + startLine: 119 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -1132,7 +1068,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: usernameFieldValidator path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 124 + startLine: 121 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -1165,7 +1101,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: passwordFieldValidator path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 125 + startLine: 122 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -1198,7 +1134,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: nameFieldValidator path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 126 + startLine: 123 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -1231,7 +1167,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: emailFieldValidator path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 127 + startLine: 124 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -1264,7 +1200,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: phoneFieldValidator path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 128 + startLine: 125 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -1279,16 +1215,115 @@ items: modifiers.vb: - Protected - ReadOnly -- uid: Butterfly.Core.Auth.AuthManager.#ctor(Butterfly.Core.Database.IDatabase,System.Int32,System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,Func{System.String,System.Int32,Task},Func{System.String,System.Int32,Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Action{Version}) - commentId: M:Butterfly.Core.Auth.AuthManager.#ctor(Butterfly.Core.Database.IDatabase,System.Int32,System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,Func{System.String,System.Int32,Task},Func{System.String,System.Int32,Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Action{Version}) - id: '#ctor(Butterfly.Core.Database.IDatabase,System.Int32,System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,Func{System.String,System.Int32,Task},Func{System.String,System.Int32,Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Action{Version})' +- uid: Butterfly.Core.Auth.AuthManager.authenticatorByType + commentId: F:Butterfly.Core.Auth.AuthManager.authenticatorByType + id: authenticatorByType parent: Butterfly.Core.Auth.AuthManager langs: - csharp - vb - name: AuthManager(IDatabase, Int32, Int32, Int32, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Func, Func, Func, Task>, Func, Task>, Action) - nameWithType: AuthManager.AuthManager(IDatabase, Int32, Int32, Int32, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Func, Func, Func, Task>, Func, Task>, Action) - fullName: Butterfly.Core.Auth.AuthManager.AuthManager(Butterfly.Core.Database.IDatabase, System.Int32, System.Int32, System.Int32, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, Func, Func, Func, Task>, Func, Task>, Action) + name: authenticatorByType + nameWithType: AuthManager.authenticatorByType + fullName: Butterfly.Core.Auth.AuthManager.authenticatorByType + type: Field + source: + remote: + path: Butterfly.Core/Auth/AuthManager.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: authenticatorByType + path: ../Butterfly.Core/Auth/AuthManager.cs + startLine: 127 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected readonly Dictionary authenticatorByType + return: + type: Dictionary{System.String,Butterfly.Core.Auth.IAuthenticator} + content.vb: Protected ReadOnly authenticatorByType As Dictionary(Of String, IAuthenticator) + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly +- uid: Butterfly.Core.Auth.AuthManager.userRefTokenAuthenticator + commentId: F:Butterfly.Core.Auth.AuthManager.userRefTokenAuthenticator + id: userRefTokenAuthenticator + parent: Butterfly.Core.Auth.AuthManager + langs: + - csharp + - vb + name: userRefTokenAuthenticator + nameWithType: AuthManager.userRefTokenAuthenticator + fullName: Butterfly.Core.Auth.AuthManager.userRefTokenAuthenticator + type: Field + source: + remote: + path: Butterfly.Core/Auth/AuthManager.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: userRefTokenAuthenticator + path: ../Butterfly.Core/Auth/AuthManager.cs + startLine: 129 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected readonly UserRefTokenAuthenticator userRefTokenAuthenticator + return: + type: Butterfly.Core.Auth.UserRefTokenAuthenticator + content.vb: Protected ReadOnly userRefTokenAuthenticator As UserRefTokenAuthenticator + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly +- uid: Butterfly.Core.Auth.AuthManager.shareCodeAuthenticator + commentId: F:Butterfly.Core.Auth.AuthManager.shareCodeAuthenticator + id: shareCodeAuthenticator + parent: Butterfly.Core.Auth.AuthManager + langs: + - csharp + - vb + name: shareCodeAuthenticator + nameWithType: AuthManager.shareCodeAuthenticator + fullName: Butterfly.Core.Auth.AuthManager.shareCodeAuthenticator + type: Field + source: + remote: + path: Butterfly.Core/Auth/AuthManager.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: shareCodeAuthenticator + path: ../Butterfly.Core/Auth/AuthManager.cs + startLine: 130 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected readonly ShareCodeAuthenticator shareCodeAuthenticator + return: + type: Butterfly.Core.Auth.ShareCodeAuthenticator + content.vb: Protected ReadOnly shareCodeAuthenticator As ShareCodeAuthenticator + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly +- uid: Butterfly.Core.Auth.AuthManager.#ctor(Butterfly.Core.Database.IDatabase,System.Int32,System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,Func{System.String,System.Int32,Task},Func{System.String,System.Int32,Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Action{Version}) + commentId: M:Butterfly.Core.Auth.AuthManager.#ctor(Butterfly.Core.Database.IDatabase,System.Int32,System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,Func{System.String,System.Int32,Task},Func{System.String,System.Int32,Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Action{Version}) + id: '#ctor(Butterfly.Core.Database.IDatabase,System.Int32,System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,Func{System.String,System.Int32,Task},Func{System.String,System.Int32,Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Action{Version})' + parent: Butterfly.Core.Auth.AuthManager + langs: + - csharp + - vb + name: AuthManager(IDatabase, Int32, Int32, Int32, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Func, Func, Func, Task>, Func, Task>, Action) + nameWithType: AuthManager.AuthManager(IDatabase, Int32, Int32, Int32, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Func, Func, Func, Task>, Func, Task>, Action) + fullName: Butterfly.Core.Auth.AuthManager.AuthManager(Butterfly.Core.Database.IDatabase, System.Int32, System.Int32, System.Int32, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, Func, Func, Func, Task>, Func, Task>, Action) type: Constructor source: remote: @@ -1297,14 +1332,14 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: .ctor path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 164 + startLine: 163 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth summary: "\nCreate an instance of AuthManager\n" example: [] syntax: - content: public AuthManager(IDatabase database, int authTokenDurationDays = 90, int resetCodeLength = 6, int resetTokenDurationMinutes = 90, string accountTableName = "account", string userTableName = "user", string userTableIdFieldName = "id", string userTableUsernameFieldName = "username", string userTableEmailFieldName = "email", string userTableEmailVerifiedAtFieldName = "email_verified_at", string userTablePhoneFieldName = "phone", string userTablePhoneVerifiedAtFieldName = "phone_verified_at", string userTableSaltFieldName = "salt", string userTablePasswordHashFieldName = "password_hash", string userTableFirstNameFieldName = "first_name", string userTableLastNameFieldName = "last_name", string userTableResetCodeFieldName = "reset_code", string userTableResetCodeExpiresAtFieldName = "reset_code_expires_at", string userTableAccountIdFieldName = "account_id", string userTableRoleFieldName = "role", string authTokenTableName = "auth_token", string authTokenIdFieldName = "id", string authTokenTableUserIdFieldName = "user_id", string authTokenTableExpiresAtFieldName = "expires_at", string defaultRole = null, Func onEmailVerify = null, Func onPhoneVerify = null, Func, Task> onRegister = null, Func, Task> onForgotPassword = null, Action onCheckVersion = null) + content: public AuthManager(IDatabase database, int authTokenDurationDays = 90, int resetCodeLength = 6, int resetTokenDurationMinutes = 90, string accountTableName = "account", string accountTableIdFieldName = "id", string accountTableShareCodeFieldName = "share_code", string userTableName = "user", string userTableIdFieldName = "id", string userTableUsernameFieldName = "username", string userTableEmailFieldName = "email", string userTableEmailVerifiedAtFieldName = "email_verified_at", string userTablePhoneFieldName = "phone", string userTablePhoneVerifiedAtFieldName = "phone_verified_at", string userTableSaltFieldName = "salt", string userTablePasswordHashFieldName = "password_hash", string userTableFirstNameFieldName = "first_name", string userTableLastNameFieldName = "last_name", string userTableResetCodeFieldName = "reset_code", string userTableResetCodeExpiresAtFieldName = "reset_code_expires_at", string userTableAccountIdFieldName = "account_id", string userTableRoleFieldName = "role", string defaultRole = null, Func onEmailVerify = null, Func onPhoneVerify = null, Func, Task> onRegister = null, Func, Task> onForgotPassword = null, Action onCheckVersion = null) parameters: - id: database type: Butterfly.Core.Database.IDatabase @@ -1321,6 +1356,12 @@ items: - id: accountTableName type: System.String description: Table name of the account table (default is "account") + - id: accountTableIdFieldName + type: System.String + description: Field name of the id field on the account table (default is "id") + - id: accountTableShareCodeFieldName + type: System.String + description: Field name of the share code field on the account table (default is "share_code") - id: userTableName type: System.String description: Table name of the user table (default is "user") @@ -1366,18 +1407,6 @@ items: - id: userTableRoleFieldName type: System.String description: Field name of the role field on the user table (default is "role") - - id: authTokenTableName - type: System.String - description: Table name of the auth token table (default is "auth_token") - - id: authTokenIdFieldName - type: System.String - description: Field name of the id field on the auth token table (default is "id") - - id: authTokenTableUserIdFieldName - type: System.String - description: Field name of the user id field on the auth token table (default is "user_id") - - id: authTokenTableExpiresAtFieldName - type: System.String - description: Field name of the expires at field on the auth token table (default is "expires_at") - id: defaultRole type: System.String description: Default value for the role field on a new user @@ -1396,15 +1425,15 @@ items: - id: onCheckVersion type: Action{Version} description: '' - content.vb: Public Sub New(database As IDatabase, authTokenDurationDays As Integer = 90, resetCodeLength As Integer = 6, resetTokenDurationMinutes As Integer = 90, accountTableName As String = "account", userTableName As String = "user", userTableIdFieldName As String = "id", userTableUsernameFieldName As String = "username", userTableEmailFieldName As String = "email", userTableEmailVerifiedAtFieldName As String = "email_verified_at", userTablePhoneFieldName As String = "phone", userTablePhoneVerifiedAtFieldName As String = "phone_verified_at", userTableSaltFieldName As String = "salt", userTablePasswordHashFieldName As String = "password_hash", userTableFirstNameFieldName As String = "first_name", userTableLastNameFieldName As String = "last_name", userTableResetCodeFieldName As String = "reset_code", userTableResetCodeExpiresAtFieldName As String = "reset_code_expires_at", userTableAccountIdFieldName As String = "account_id", userTableRoleFieldName As String = "role", authTokenTableName As String = "auth_token", authTokenIdFieldName As String = "id", authTokenTableUserIdFieldName As String = "user_id", authTokenTableExpiresAtFieldName As String = "expires_at", defaultRole As String = Nothing, onEmailVerify As Func(Of String, Integer, Task) = Nothing, onPhoneVerify As Func(Of String, Integer, Task) = Nothing, onRegister As Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task) = Nothing, onForgotPassword As Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task) = Nothing, onCheckVersion As Action(Of Version) = Nothing) + content.vb: Public Sub New(database As IDatabase, authTokenDurationDays As Integer = 90, resetCodeLength As Integer = 6, resetTokenDurationMinutes As Integer = 90, accountTableName As String = "account", accountTableIdFieldName As String = "id", accountTableShareCodeFieldName As String = "share_code", userTableName As String = "user", userTableIdFieldName As String = "id", userTableUsernameFieldName As String = "username", userTableEmailFieldName As String = "email", userTableEmailVerifiedAtFieldName As String = "email_verified_at", userTablePhoneFieldName As String = "phone", userTablePhoneVerifiedAtFieldName As String = "phone_verified_at", userTableSaltFieldName As String = "salt", userTablePasswordHashFieldName As String = "password_hash", userTableFirstNameFieldName As String = "first_name", userTableLastNameFieldName As String = "last_name", userTableResetCodeFieldName As String = "reset_code", userTableResetCodeExpiresAtFieldName As String = "reset_code_expires_at", userTableAccountIdFieldName As String = "account_id", userTableRoleFieldName As String = "role", defaultRole As String = Nothing, onEmailVerify As Func(Of String, Integer, Task) = Nothing, onPhoneVerify As Func(Of String, Integer, Task) = Nothing, onRegister As Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task) = Nothing, onForgotPassword As Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task) = Nothing, onCheckVersion As Action(Of Version) = Nothing) overload: Butterfly.Core.Auth.AuthManager.#ctor* - nameWithType.vb: AuthManager.AuthManager(IDatabase, Int32, Int32, Int32, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Func(Of String, Int32, Task), Func(Of String, Int32, Task), Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task), Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task), Action(Of Version)) + nameWithType.vb: AuthManager.AuthManager(IDatabase, Int32, Int32, Int32, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Func(Of String, Int32, Task), Func(Of String, Int32, Task), Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task), Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task), Action(Of Version)) modifiers.csharp: - public modifiers.vb: - Public - fullName.vb: Butterfly.Core.Auth.AuthManager.AuthManager(Butterfly.Core.Database.IDatabase, System.Int32, System.Int32, System.Int32, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, Func(Of System.String, System.Int32, Task), Func(Of System.String, System.Int32, Task), Func(Of System.Collections.Generic.Dictionary(Of System.String, System.Object), Task), Func(Of System.Collections.Generic.Dictionary(Of System.String, System.Object), Task), Action(Of Version)) - name.vb: AuthManager(IDatabase, Int32, Int32, Int32, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Func(Of String, Int32, Task), Func(Of String, Int32, Task), Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task), Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task), Action(Of Version)) + fullName.vb: Butterfly.Core.Auth.AuthManager.AuthManager(Butterfly.Core.Database.IDatabase, System.Int32, System.Int32, System.Int32, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, Func(Of System.String, System.Int32, Task), Func(Of System.String, System.Int32, Task), Func(Of System.Collections.Generic.Dictionary(Of System.String, System.Object), Task), Func(Of System.Collections.Generic.Dictionary(Of System.String, System.Object), Task), Action(Of Version)) + name.vb: AuthManager(IDatabase, Int32, Int32, Int32, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Func(Of String, Int32, Task), Func(Of String, Int32, Task), Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task), Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task), Action(Of Version)) - uid: Butterfly.Core.Auth.AuthManager.VERSION_CLEAN_REGEX commentId: F:Butterfly.Core.Auth.AuthManager.VERSION_CLEAN_REGEX id: VERSION_CLEAN_REGEX @@ -1423,7 +1452,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: VERSION_CLEAN_REGEX path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 240 + startLine: 254 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -1458,7 +1487,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: SetupWebApi path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 261 + startLine: 275 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -1498,7 +1527,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: VerifyAsync path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 334 + startLine: 348 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -1549,14 +1578,14 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: RegisterAsync path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 364 + startLine: 378 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth summary: "\nRegisters a new user\n" example: [] syntax: - content: public Task RegisterAsync(dynamic input, System.Collections.Generic.Dictionary notifyData = null) + content: public Task RegisterAsync(dynamic input, System.Collections.Generic.Dictionary notifyData = null) parameters: - id: input type: System.Object @@ -1565,9 +1594,9 @@ items: type: System.Collections.Generic.Dictionary{System.String,System.Object} description: '' return: - type: Task{Butterfly.Core.Auth.AuthToken} + type: Task{Butterfly.Core.Auth.UserRefToken} description: '' - content.vb: Public Function RegisterAsync(input As Object, notifyData As System.Collections.Generic.Dictionary(Of String, Object) = Nothing) As Task(Of AuthToken) + content.vb: Public Function RegisterAsync(input As Object, notifyData As System.Collections.Generic.Dictionary(Of String, Object) = Nothing) As Task(Of UserRefToken) overload: Butterfly.Core.Auth.AuthManager.RegisterAsync* nameWithType.vb: AuthManager.RegisterAsync(Object, System.Collections.Generic.Dictionary(Of String, Object)) modifiers.csharp: @@ -1576,16 +1605,16 @@ items: - Public fullName.vb: Butterfly.Core.Auth.AuthManager.RegisterAsync(System.Object, System.Collections.Generic.Dictionary(Of System.String, System.Object)) name.vb: RegisterAsync(Object, System.Collections.Generic.Dictionary(Of String, Object)) -- uid: Butterfly.Core.Auth.AuthManager.AuthenticateAsync(System.String) - commentId: M:Butterfly.Core.Auth.AuthManager.AuthenticateAsync(System.String) - id: AuthenticateAsync(System.String) +- uid: Butterfly.Core.Auth.AuthManager.AuthenticateAsync(System.String,System.String) + commentId: M:Butterfly.Core.Auth.AuthManager.AuthenticateAsync(System.String,System.String) + id: AuthenticateAsync(System.String,System.String) parent: Butterfly.Core.Auth.AuthManager langs: - csharp - vb - name: AuthenticateAsync(String) - nameWithType: AuthManager.AuthenticateAsync(String) - fullName: Butterfly.Core.Auth.AuthManager.AuthenticateAsync(System.String) + name: AuthenticateAsync(String, String) + nameWithType: AuthManager.AuthenticateAsync(String, String) + fullName: Butterfly.Core.Auth.AuthManager.AuthenticateAsync(System.String, System.String) type: Method source: remote: @@ -1594,22 +1623,25 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: AuthenticateAsync path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 447 + startLine: 462 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth summary: "\nValidates the auth token id returning an instance\n" example: [] syntax: - content: public Task AuthenticateAsync(string authTokenId) + content: public Task AuthenticateAsync(string authType, string authValue) parameters: - - id: authTokenId + - id: authType + type: System.String + description: '' + - id: authValue type: System.String description: '' return: type: Task{Butterfly.Core.Auth.AuthToken} description: An instance - content.vb: Public Function AuthenticateAsync(authTokenId As String) As Task(Of AuthToken) + content.vb: Public Function AuthenticateAsync(authType As String, authValue As String) As Task(Of AuthToken) overload: Butterfly.Core.Auth.AuthManager.AuthenticateAsync* modifiers.csharp: - public @@ -1633,7 +1665,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: LookupUsernameAsync path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 474 + startLine: 473 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -1675,7 +1707,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: CreateAnonymousUserAsync path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 487 + startLine: 486 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -1692,41 +1724,41 @@ items: - public modifiers.vb: - Public -- uid: Butterfly.Core.Auth.AuthManager.CreateAuthTokenAsync(System.String) - commentId: M:Butterfly.Core.Auth.AuthManager.CreateAuthTokenAsync(System.String) - id: CreateAuthTokenAsync(System.String) +- uid: Butterfly.Core.Auth.AuthManager.CreateUserRefTokenAsync(System.String) + commentId: M:Butterfly.Core.Auth.AuthManager.CreateUserRefTokenAsync(System.String) + id: CreateUserRefTokenAsync(System.String) parent: Butterfly.Core.Auth.AuthManager langs: - csharp - vb - name: CreateAuthTokenAsync(String) - nameWithType: AuthManager.CreateAuthTokenAsync(String) - fullName: Butterfly.Core.Auth.AuthManager.CreateAuthTokenAsync(System.String) + name: CreateUserRefTokenAsync(String) + nameWithType: AuthManager.CreateUserRefTokenAsync(String) + fullName: Butterfly.Core.Auth.AuthManager.CreateUserRefTokenAsync(System.String) type: Method source: remote: path: Butterfly.Core/Auth/AuthManager.cs branch: master repo: https://github.com/firesharkstudios/Butterfly.git - id: CreateAuthTokenAsync + id: CreateUserRefTokenAsync path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 522 + startLine: 518 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth summary: "\nCreate an auth token\n" example: [] syntax: - content: public Task CreateAuthTokenAsync(string userId) + content: public Task CreateUserRefTokenAsync(string userId) parameters: - id: userId type: System.String description: '' return: - type: Task{Butterfly.Core.Auth.AuthToken} + type: Task{Butterfly.Core.Auth.UserRefToken} description: The AuthToken instance created - content.vb: Public Function CreateAuthTokenAsync(userId As String) As Task(Of AuthToken) - overload: Butterfly.Core.Auth.AuthManager.CreateAuthTokenAsync* + content.vb: Public Function CreateUserRefTokenAsync(userId As String) As Task(Of UserRefToken) + overload: Butterfly.Core.Auth.AuthManager.CreateUserRefTokenAsync* modifiers.csharp: - public modifiers.vb: @@ -1749,22 +1781,22 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: LoginAsync path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 549 + startLine: 546 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth summary: "\nLogs in the user creating a valid \n" example: [] syntax: - content: public Task LoginAsync(System.Collections.Generic.Dictionary login) + content: public Task LoginAsync(System.Collections.Generic.Dictionary login) parameters: - id: login type: System.Collections.Generic.Dictionary{System.String,System.Object} description: '' return: - type: Task{Butterfly.Core.Auth.AuthToken} + type: Task{Butterfly.Core.Auth.UserRefToken} description: '' - content.vb: Public Function LoginAsync(login As System.Collections.Generic.Dictionary(Of String, Object)) As Task(Of AuthToken) + content.vb: Public Function LoginAsync(login As System.Collections.Generic.Dictionary(Of String, Object)) As Task(Of UserRefToken) overload: Butterfly.Core.Auth.AuthManager.LoginAsync* nameWithType.vb: AuthManager.LoginAsync(System.Collections.Generic.Dictionary(Of String, Object)) modifiers.csharp: @@ -1791,7 +1823,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: ForgotPasswordAsync path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 571 + startLine: 568 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -1830,7 +1862,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: ResetPasswordAsync path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 587 + startLine: 584 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -1872,7 +1904,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: CreateResetCodeAsync path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 615 + startLine: 612 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -1907,7 +1939,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: ConvertInputToDict path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 631 + startLine: 628 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -2338,6 +2370,125 @@ references: name: Butterfly.Core.Util.Field nameWithType: Butterfly.Core.Util.Field fullName: Butterfly.Core.Util.Field +- uid: Dictionary{System.String,Butterfly.Core.Auth.IAuthenticator} + commentId: '!:Dictionary{System.String,Butterfly.Core.Auth.IAuthenticator}' + definition: Dictionary`2 + name: Dictionary + nameWithType: Dictionary + fullName: Dictionary + nameWithType.vb: Dictionary(Of String, IAuthenticator) + fullName.vb: Dictionary(Of System.String, Butterfly.Core.Auth.IAuthenticator) + name.vb: Dictionary(Of String, IAuthenticator) + spec.csharp: + - uid: Dictionary`2 + name: Dictionary + nameWithType: Dictionary + fullName: Dictionary + isExternal: true + - name: < + nameWithType: < + fullName: < + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: Butterfly.Core.Auth.IAuthenticator + name: IAuthenticator + nameWithType: IAuthenticator + fullName: Butterfly.Core.Auth.IAuthenticator + - name: '>' + nameWithType: '>' + fullName: '>' + spec.vb: + - uid: Dictionary`2 + name: Dictionary + nameWithType: Dictionary + fullName: Dictionary + isExternal: true + - name: '(Of ' + nameWithType: '(Of ' + fullName: '(Of ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: Butterfly.Core.Auth.IAuthenticator + name: IAuthenticator + nameWithType: IAuthenticator + fullName: Butterfly.Core.Auth.IAuthenticator + - name: ) + nameWithType: ) + fullName: ) +- uid: Dictionary`2 + isExternal: true + name: Dictionary<, > + nameWithType: Dictionary<, > + fullName: Dictionary<, > + nameWithType.vb: Dictionary(Of , ) + fullName.vb: Dictionary(Of , ) + name.vb: Dictionary(Of , ) + spec.csharp: + - uid: Dictionary`2 + name: Dictionary + nameWithType: Dictionary + fullName: Dictionary + isExternal: true + - name: < + nameWithType: < + fullName: < + - name: '' + nameWithType: '' + fullName: '' + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - name: '' + nameWithType: '' + fullName: '' + - name: '>' + nameWithType: '>' + fullName: '>' + spec.vb: + - uid: Dictionary`2 + name: Dictionary + nameWithType: Dictionary + fullName: Dictionary + isExternal: true + - name: '(Of ' + nameWithType: '(Of ' + fullName: '(Of ' + - name: '' + nameWithType: '' + fullName: '' + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - name: '' + nameWithType: '' + fullName: '' + - name: ) + nameWithType: ) + fullName: ) +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator + commentId: T:Butterfly.Core.Auth.UserRefTokenAuthenticator + parent: Butterfly.Core.Auth + name: UserRefTokenAuthenticator + nameWithType: UserRefTokenAuthenticator + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator + commentId: T:Butterfly.Core.Auth.ShareCodeAuthenticator + parent: Butterfly.Core.Auth + name: ShareCodeAuthenticator + nameWithType: ShareCodeAuthenticator + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator - uid: Butterfly.Core.Auth.AuthToken commentId: T:Butterfly.Core.Auth.AuthToken parent: Butterfly.Core.Auth @@ -2503,15 +2654,15 @@ references: name: RegisterAsync nameWithType: AuthManager.RegisterAsync fullName: Butterfly.Core.Auth.AuthManager.RegisterAsync -- uid: Task{Butterfly.Core.Auth.AuthToken} - commentId: '!:Task{Butterfly.Core.Auth.AuthToken}' +- uid: Task{Butterfly.Core.Auth.UserRefToken} + commentId: '!:Task{Butterfly.Core.Auth.UserRefToken}' definition: Task`1 - name: Task - nameWithType: Task - fullName: Task - nameWithType.vb: Task(Of AuthToken) - fullName.vb: Task(Of Butterfly.Core.Auth.AuthToken) - name.vb: Task(Of AuthToken) + name: Task + nameWithType: Task + fullName: Task + nameWithType.vb: Task(Of UserRefToken) + fullName.vb: Task(Of Butterfly.Core.Auth.UserRefToken) + name.vb: Task(Of UserRefToken) spec.csharp: - uid: Task`1 name: Task @@ -2521,10 +2672,10 @@ references: - name: < nameWithType: < fullName: < - - uid: Butterfly.Core.Auth.AuthToken - name: AuthToken - nameWithType: AuthToken - fullName: Butterfly.Core.Auth.AuthToken + - uid: Butterfly.Core.Auth.UserRefToken + name: UserRefToken + nameWithType: UserRefToken + fullName: Butterfly.Core.Auth.UserRefToken - name: '>' nameWithType: '>' fullName: '>' @@ -2537,10 +2688,10 @@ references: - name: '(Of ' nameWithType: '(Of ' fullName: '(Of ' - - uid: Butterfly.Core.Auth.AuthToken - name: AuthToken - nameWithType: AuthToken - fullName: Butterfly.Core.Auth.AuthToken + - uid: Butterfly.Core.Auth.UserRefToken + name: UserRefToken + nameWithType: UserRefToken + fullName: Butterfly.Core.Auth.UserRefToken - name: ) nameWithType: ) fullName: ) @@ -2587,6 +2738,47 @@ references: name: AuthenticateAsync nameWithType: AuthManager.AuthenticateAsync fullName: Butterfly.Core.Auth.AuthManager.AuthenticateAsync +- uid: Task{Butterfly.Core.Auth.AuthToken} + commentId: '!:Task{Butterfly.Core.Auth.AuthToken}' + definition: Task`1 + name: Task + nameWithType: Task + fullName: Task + nameWithType.vb: Task(Of AuthToken) + fullName.vb: Task(Of Butterfly.Core.Auth.AuthToken) + name.vb: Task(Of AuthToken) + spec.csharp: + - uid: Task`1 + name: Task + nameWithType: Task + fullName: Task + isExternal: true + - name: < + nameWithType: < + fullName: < + - uid: Butterfly.Core.Auth.AuthToken + name: AuthToken + nameWithType: AuthToken + fullName: Butterfly.Core.Auth.AuthToken + - name: '>' + nameWithType: '>' + fullName: '>' + spec.vb: + - uid: Task`1 + name: Task + nameWithType: Task + fullName: Task + isExternal: true + - name: '(Of ' + nameWithType: '(Of ' + fullName: '(Of ' + - uid: Butterfly.Core.Auth.AuthToken + name: AuthToken + nameWithType: AuthToken + fullName: Butterfly.Core.Auth.AuthToken + - name: ) + nameWithType: ) + fullName: ) - uid: Butterfly.Core.Auth.AuthManager.LookupUsernameAsync* commentId: Overload:Butterfly.Core.Auth.AuthManager.LookupUsernameAsync name: LookupUsernameAsync @@ -2678,11 +2870,11 @@ references: name: CreateAnonymousUserAsync nameWithType: AuthManager.CreateAnonymousUserAsync fullName: Butterfly.Core.Auth.AuthManager.CreateAnonymousUserAsync -- uid: Butterfly.Core.Auth.AuthManager.CreateAuthTokenAsync* - commentId: Overload:Butterfly.Core.Auth.AuthManager.CreateAuthTokenAsync - name: CreateAuthTokenAsync - nameWithType: AuthManager.CreateAuthTokenAsync - fullName: Butterfly.Core.Auth.AuthManager.CreateAuthTokenAsync +- uid: Butterfly.Core.Auth.AuthManager.CreateUserRefTokenAsync* + commentId: Overload:Butterfly.Core.Auth.AuthManager.CreateUserRefTokenAsync + name: CreateUserRefTokenAsync + nameWithType: AuthManager.CreateUserRefTokenAsync + fullName: Butterfly.Core.Auth.AuthManager.CreateUserRefTokenAsync - uid: Butterfly.Core.Auth.AuthManager.LoginAsync* commentId: Overload:Butterfly.Core.Auth.AuthManager.LoginAsync name: LoginAsync diff --git a/docfx_project/api/Butterfly.Core.Auth.AuthToken.yml b/docfx_project/api/Butterfly.Core.Auth.AuthToken.yml index 24e84e14..2e39f2a3 100644 --- a/docfx_project/api/Butterfly.Core.Auth.AuthToken.yml +++ b/docfx_project/api/Butterfly.Core.Auth.AuthToken.yml @@ -5,14 +5,10 @@ items: id: AuthToken parent: Butterfly.Core.Auth children: - - Butterfly.Core.Auth.AuthToken.#ctor(System.String,System.String,System.String,System.String,System.String,DateTime) + - Butterfly.Core.Auth.AuthToken.#ctor(System.String,System.String,System.String) - Butterfly.Core.Auth.AuthToken.accountId - - Butterfly.Core.Auth.AuthToken.expiresAt - - Butterfly.Core.Auth.AuthToken.FromDict(System.Collections.Generic.Dictionary{System.String,System.Object},System.String,System.String,System.String,System.String,System.String,System.String) - - Butterfly.Core.Auth.AuthToken.id - Butterfly.Core.Auth.AuthToken.role - - Butterfly.Core.Auth.AuthToken.userId - - Butterfly.Core.Auth.AuthToken.username + - Butterfly.Core.Auth.AuthToken.type langs: - csharp - vb @@ -27,118 +23,91 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: AuthToken path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 653 + startLine: 650 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth summary: "\nRepresents the result of a successful or \n" example: [] syntax: - content: 'public class AuthToken : object' + content: 'public abstract class AuthToken : object' content.vb: >- - Public Class AuthToken + Public MustInherit Class AuthToken + Inherits Object inheritance: - System.Object + derivedClasses: + - Butterfly.Core.Auth.ShareCodeToken + - Butterfly.Core.Auth.UserRefToken modifiers.csharp: - public + - abstract - class modifiers.vb: - Public + - MustInherit - Class -- uid: Butterfly.Core.Auth.AuthToken.id - commentId: F:Butterfly.Core.Auth.AuthToken.id - id: id - parent: Butterfly.Core.Auth.AuthToken - langs: - - csharp - - vb - name: id - nameWithType: AuthToken.id - fullName: Butterfly.Core.Auth.AuthToken.id - type: Field - source: - remote: - path: Butterfly.Core/Auth/AuthManager.cs - branch: master - repo: https://github.com/firesharkstudios/Butterfly.git - id: id - path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 654 - assemblies: - - Butterfly.Core - namespace: Butterfly.Core.Auth - syntax: - content: public readonly string id - return: - type: System.String - content.vb: Public ReadOnly id As String - modifiers.csharp: - - public - - readonly - modifiers.vb: - - Public - - ReadOnly -- uid: Butterfly.Core.Auth.AuthToken.userId - commentId: F:Butterfly.Core.Auth.AuthToken.userId - id: userId +- uid: Butterfly.Core.Auth.AuthToken.type + commentId: F:Butterfly.Core.Auth.AuthToken.type + id: type parent: Butterfly.Core.Auth.AuthToken langs: - csharp - vb - name: userId - nameWithType: AuthToken.userId - fullName: Butterfly.Core.Auth.AuthToken.userId + name: type + nameWithType: AuthToken.type + fullName: Butterfly.Core.Auth.AuthToken.type type: Field source: remote: path: Butterfly.Core/Auth/AuthManager.cs branch: master repo: https://github.com/firesharkstudios/Butterfly.git - id: userId + id: type path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 655 + startLine: 651 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth syntax: - content: public readonly string userId + content: public readonly string type return: type: System.String - content.vb: Public ReadOnly userId As String + content.vb: Public ReadOnly type As String modifiers.csharp: - public - readonly modifiers.vb: - Public - ReadOnly -- uid: Butterfly.Core.Auth.AuthToken.username - commentId: F:Butterfly.Core.Auth.AuthToken.username - id: username +- uid: Butterfly.Core.Auth.AuthToken.accountId + commentId: F:Butterfly.Core.Auth.AuthToken.accountId + id: accountId parent: Butterfly.Core.Auth.AuthToken langs: - csharp - vb - name: username - nameWithType: AuthToken.username - fullName: Butterfly.Core.Auth.AuthToken.username + name: accountId + nameWithType: AuthToken.accountId + fullName: Butterfly.Core.Auth.AuthToken.accountId type: Field source: remote: path: Butterfly.Core/Auth/AuthManager.cs branch: master repo: https://github.com/firesharkstudios/Butterfly.git - id: username + id: accountId path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 656 + startLine: 652 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth syntax: - content: public readonly string username + content: public readonly string accountId return: type: System.String - content.vb: Public ReadOnly username As String + content.vb: Public ReadOnly accountId As String modifiers.csharp: - public - readonly @@ -163,7 +132,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: role path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 657 + startLine: 653 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth @@ -178,82 +147,16 @@ items: modifiers.vb: - Public - ReadOnly -- uid: Butterfly.Core.Auth.AuthToken.accountId - commentId: F:Butterfly.Core.Auth.AuthToken.accountId - id: accountId - parent: Butterfly.Core.Auth.AuthToken - langs: - - csharp - - vb - name: accountId - nameWithType: AuthToken.accountId - fullName: Butterfly.Core.Auth.AuthToken.accountId - type: Field - source: - remote: - path: Butterfly.Core/Auth/AuthManager.cs - branch: master - repo: https://github.com/firesharkstudios/Butterfly.git - id: accountId - path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 658 - assemblies: - - Butterfly.Core - namespace: Butterfly.Core.Auth - syntax: - content: public readonly string accountId - return: - type: System.String - content.vb: Public ReadOnly accountId As String - modifiers.csharp: - - public - - readonly - modifiers.vb: - - Public - - ReadOnly -- uid: Butterfly.Core.Auth.AuthToken.expiresAt - commentId: F:Butterfly.Core.Auth.AuthToken.expiresAt - id: expiresAt - parent: Butterfly.Core.Auth.AuthToken - langs: - - csharp - - vb - name: expiresAt - nameWithType: AuthToken.expiresAt - fullName: Butterfly.Core.Auth.AuthToken.expiresAt - type: Field - source: - remote: - path: Butterfly.Core/Auth/AuthManager.cs - branch: master - repo: https://github.com/firesharkstudios/Butterfly.git - id: expiresAt - path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 659 - assemblies: - - Butterfly.Core - namespace: Butterfly.Core.Auth - syntax: - content: public readonly DateTime expiresAt - return: - type: DateTime - content.vb: Public ReadOnly expiresAt As DateTime - modifiers.csharp: - - public - - readonly - modifiers.vb: - - Public - - ReadOnly -- uid: Butterfly.Core.Auth.AuthToken.#ctor(System.String,System.String,System.String,System.String,System.String,DateTime) - commentId: M:Butterfly.Core.Auth.AuthToken.#ctor(System.String,System.String,System.String,System.String,System.String,DateTime) - id: '#ctor(System.String,System.String,System.String,System.String,System.String,DateTime)' +- uid: Butterfly.Core.Auth.AuthToken.#ctor(System.String,System.String,System.String) + commentId: M:Butterfly.Core.Auth.AuthToken.#ctor(System.String,System.String,System.String) + id: '#ctor(System.String,System.String,System.String)' parent: Butterfly.Core.Auth.AuthToken langs: - csharp - vb - name: AuthToken(String, String, String, String, String, DateTime) - nameWithType: AuthToken.AuthToken(String, String, String, String, String, DateTime) - fullName: Butterfly.Core.Auth.AuthToken.AuthToken(System.String, System.String, System.String, System.String, System.String, DateTime) + name: AuthToken(String, String, String) + nameWithType: AuthToken.AuthToken(String, String, String) + fullName: Butterfly.Core.Auth.AuthToken.AuthToken(System.String, System.String, System.String) type: Constructor source: remote: @@ -262,83 +165,25 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: .ctor path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 661 + startLine: 655 assemblies: - Butterfly.Core namespace: Butterfly.Core.Auth syntax: - content: public AuthToken(string id, string userId, string username, string role, string accountId, DateTime expiresAt) + content: public AuthToken(string type, string accountId, string role) parameters: - - id: id + - id: type type: System.String - - id: userId - type: System.String - - id: username + - id: accountId type: System.String - id: role type: System.String - - id: accountId - type: System.String - - id: expiresAt - type: DateTime - content.vb: Public Sub New(id As String, userId As String, username As String, role As String, accountId As String, expiresAt As DateTime) + content.vb: Public Sub New(type As String, accountId As String, role As String) overload: Butterfly.Core.Auth.AuthToken.#ctor* modifiers.csharp: - public modifiers.vb: - Public -- uid: Butterfly.Core.Auth.AuthToken.FromDict(System.Collections.Generic.Dictionary{System.String,System.Object},System.String,System.String,System.String,System.String,System.String,System.String) - commentId: M:Butterfly.Core.Auth.AuthToken.FromDict(System.Collections.Generic.Dictionary{System.String,System.Object},System.String,System.String,System.String,System.String,System.String,System.String) - id: FromDict(System.Collections.Generic.Dictionary{System.String,System.Object},System.String,System.String,System.String,System.String,System.String,System.String) - parent: Butterfly.Core.Auth.AuthToken - langs: - - csharp - - vb - name: FromDict(System.Collections.Generic.Dictionary, String, String, String, String, String, String) - nameWithType: AuthToken.FromDict(System.Collections.Generic.Dictionary, String, String, String, String, String, String) - fullName: Butterfly.Core.Auth.AuthToken.FromDict(System.Collections.Generic.Dictionary, System.String, System.String, System.String, System.String, System.String, System.String) - type: Method - source: - remote: - path: Butterfly.Core/Auth/AuthManager.cs - branch: master - repo: https://github.com/firesharkstudios/Butterfly.git - id: FromDict - path: ../Butterfly.Core/Auth/AuthManager.cs - startLine: 670 - assemblies: - - Butterfly.Core - namespace: Butterfly.Core.Auth - syntax: - content: public static AuthToken FromDict(System.Collections.Generic.Dictionary dict, string idFieldName, string userIdFieldName, string usernameFieldName, string roleFieldName, string accountIdFieldName, string expiresAtFieldName) - parameters: - - id: dict - type: System.Collections.Generic.Dictionary{System.String,System.Object} - - id: idFieldName - type: System.String - - id: userIdFieldName - type: System.String - - id: usernameFieldName - type: System.String - - id: roleFieldName - type: System.String - - id: accountIdFieldName - type: System.String - - id: expiresAtFieldName - type: System.String - return: - type: Butterfly.Core.Auth.AuthToken - content.vb: Public Shared Function FromDict(dict As System.Collections.Generic.Dictionary(Of String, Object), idFieldName As String, userIdFieldName As String, usernameFieldName As String, roleFieldName As String, accountIdFieldName As String, expiresAtFieldName As String) As AuthToken - overload: Butterfly.Core.Auth.AuthToken.FromDict* - nameWithType.vb: AuthToken.FromDict(System.Collections.Generic.Dictionary(Of String, Object), String, String, String, String, String, String) - modifiers.csharp: - - public - - static - modifiers.vb: - - Public - - Shared - fullName.vb: Butterfly.Core.Auth.AuthToken.FromDict(System.Collections.Generic.Dictionary(Of System.String, System.Object), System.String, System.String, System.String, System.String, System.String, System.String) - name.vb: FromDict(System.Collections.Generic.Dictionary(Of String, Object), String, String, String, String, String, String) references: - uid: Butterfly.Core.Auth.AuthManager.LoginAsync(System.Collections.Generic.Dictionary{System.String,System.Object}) commentId: M:Butterfly.Core.Auth.AuthManager.LoginAsync(System.Collections.Generic.Dictionary{System.String,System.Object}) @@ -362,134 +207,9 @@ references: name: String nameWithType: String fullName: System.String -- uid: DateTime - isExternal: true - name: DateTime - nameWithType: DateTime - fullName: DateTime - uid: Butterfly.Core.Auth.AuthToken.#ctor* commentId: Overload:Butterfly.Core.Auth.AuthToken.#ctor name: AuthToken nameWithType: AuthToken.AuthToken fullName: Butterfly.Core.Auth.AuthToken.AuthToken -- uid: Butterfly.Core.Auth.AuthToken.FromDict* - commentId: Overload:Butterfly.Core.Auth.AuthToken.FromDict - name: FromDict - nameWithType: AuthToken.FromDict - fullName: Butterfly.Core.Auth.AuthToken.FromDict -- uid: System.Collections.Generic.Dictionary{System.String,System.Object} - commentId: '!:System.Collections.Generic.Dictionary{System.String,System.Object}' - definition: System.Collections.Generic.Dictionary`2 - name: System.Collections.Generic.Dictionary - nameWithType: System.Collections.Generic.Dictionary - fullName: System.Collections.Generic.Dictionary - nameWithType.vb: System.Collections.Generic.Dictionary(Of String, Object) - fullName.vb: System.Collections.Generic.Dictionary(Of System.String, System.Object) - name.vb: System.Collections.Generic.Dictionary(Of String, Object) - spec.csharp: - - uid: System.Collections.Generic.Dictionary`2 - name: System.Collections.Generic.Dictionary - nameWithType: System.Collections.Generic.Dictionary - fullName: System.Collections.Generic.Dictionary - isExternal: true - - name: < - nameWithType: < - fullName: < - - uid: System.String - name: String - nameWithType: String - fullName: System.String - isExternal: true - - name: ', ' - nameWithType: ', ' - fullName: ', ' - - uid: System.Object - name: Object - nameWithType: Object - fullName: System.Object - isExternal: true - - name: '>' - nameWithType: '>' - fullName: '>' - spec.vb: - - uid: System.Collections.Generic.Dictionary`2 - name: System.Collections.Generic.Dictionary - nameWithType: System.Collections.Generic.Dictionary - fullName: System.Collections.Generic.Dictionary - isExternal: true - - name: '(Of ' - nameWithType: '(Of ' - fullName: '(Of ' - - uid: System.String - name: String - nameWithType: String - fullName: System.String - isExternal: true - - name: ', ' - nameWithType: ', ' - fullName: ', ' - - uid: System.Object - name: Object - nameWithType: Object - fullName: System.Object - isExternal: true - - name: ) - nameWithType: ) - fullName: ) -- uid: Butterfly.Core.Auth.AuthToken - commentId: T:Butterfly.Core.Auth.AuthToken - parent: Butterfly.Core.Auth - name: AuthToken - nameWithType: AuthToken - fullName: Butterfly.Core.Auth.AuthToken -- uid: System.Collections.Generic.Dictionary`2 - isExternal: true - name: System.Collections.Generic.Dictionary<, > - nameWithType: System.Collections.Generic.Dictionary<, > - fullName: System.Collections.Generic.Dictionary<, > - nameWithType.vb: System.Collections.Generic.Dictionary(Of , ) - fullName.vb: System.Collections.Generic.Dictionary(Of , ) - name.vb: System.Collections.Generic.Dictionary(Of , ) - spec.csharp: - - uid: System.Collections.Generic.Dictionary`2 - name: System.Collections.Generic.Dictionary - nameWithType: System.Collections.Generic.Dictionary - fullName: System.Collections.Generic.Dictionary - isExternal: true - - name: < - nameWithType: < - fullName: < - - name: '' - nameWithType: '' - fullName: '' - - name: ', ' - nameWithType: ', ' - fullName: ', ' - - name: '' - nameWithType: '' - fullName: '' - - name: '>' - nameWithType: '>' - fullName: '>' - spec.vb: - - uid: System.Collections.Generic.Dictionary`2 - name: System.Collections.Generic.Dictionary - nameWithType: System.Collections.Generic.Dictionary - fullName: System.Collections.Generic.Dictionary - isExternal: true - - name: '(Of ' - nameWithType: '(Of ' - fullName: '(Of ' - - name: '' - nameWithType: '' - fullName: '' - - name: ', ' - nameWithType: ', ' - fullName: ', ' - - name: '' - nameWithType: '' - fullName: '' - - name: ) - nameWithType: ) - fullName: ) shouldSkipMarkup: true diff --git a/docfx_project/api/Butterfly.Core.Auth.IAuthenticator.yml b/docfx_project/api/Butterfly.Core.Auth.IAuthenticator.yml new file mode 100644 index 00000000..9dacfa6c --- /dev/null +++ b/docfx_project/api/Butterfly.Core.Auth.IAuthenticator.yml @@ -0,0 +1,164 @@ +### YamlMime:ManagedReference +items: +- uid: Butterfly.Core.Auth.IAuthenticator + commentId: T:Butterfly.Core.Auth.IAuthenticator + id: IAuthenticator + parent: Butterfly.Core.Auth + children: + - Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String,System.String) + langs: + - csharp + - vb + name: IAuthenticator + nameWithType: IAuthenticator + fullName: Butterfly.Core.Auth.IAuthenticator + type: Interface + source: + remote: + path: Butterfly.Core/Auth/IAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: IAuthenticator + path: ../Butterfly.Core/Auth/IAuthenticator.cs + startLine: 6 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: public interface IAuthenticator + content.vb: Public Interface IAuthenticator + modifiers.csharp: + - public + - interface + modifiers.vb: + - Public + - Interface +- uid: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String,System.String) + commentId: M:Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String,System.String) + id: AuthenticateAsync(System.String,System.String) + parent: Butterfly.Core.Auth.IAuthenticator + langs: + - csharp + - vb + name: AuthenticateAsync(String, String) + nameWithType: IAuthenticator.AuthenticateAsync(String, String) + fullName: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String, System.String) + type: Method + source: + remote: + path: Butterfly.Core/Auth/IAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: AuthenticateAsync + path: ../Butterfly.Core/Auth/IAuthenticator.cs + startLine: 7 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: Task AuthenticateAsync(string authType, string authValue) + parameters: + - id: authType + type: System.String + - id: authValue + type: System.String + return: + type: Task{Butterfly.Core.Auth.AuthToken} + content.vb: Function AuthenticateAsync(authType As String, authValue As String) As Task(Of AuthToken) + overload: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync* +references: +- uid: Butterfly.Core.Auth + commentId: N:Butterfly.Core.Auth + name: Butterfly.Core.Auth + nameWithType: Butterfly.Core.Auth + fullName: Butterfly.Core.Auth +- uid: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync* + commentId: Overload:Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync + name: AuthenticateAsync + nameWithType: IAuthenticator.AuthenticateAsync + fullName: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync +- uid: System.String + isExternal: true + name: String + nameWithType: String + fullName: System.String +- uid: Task{Butterfly.Core.Auth.AuthToken} + commentId: '!:Task{Butterfly.Core.Auth.AuthToken}' + definition: Task`1 + name: Task + nameWithType: Task + fullName: Task + nameWithType.vb: Task(Of AuthToken) + fullName.vb: Task(Of Butterfly.Core.Auth.AuthToken) + name.vb: Task(Of AuthToken) + spec.csharp: + - uid: Task`1 + name: Task + nameWithType: Task + fullName: Task + isExternal: true + - name: < + nameWithType: < + fullName: < + - uid: Butterfly.Core.Auth.AuthToken + name: AuthToken + nameWithType: AuthToken + fullName: Butterfly.Core.Auth.AuthToken + - name: '>' + nameWithType: '>' + fullName: '>' + spec.vb: + - uid: Task`1 + name: Task + nameWithType: Task + fullName: Task + isExternal: true + - name: '(Of ' + nameWithType: '(Of ' + fullName: '(Of ' + - uid: Butterfly.Core.Auth.AuthToken + name: AuthToken + nameWithType: AuthToken + fullName: Butterfly.Core.Auth.AuthToken + - name: ) + nameWithType: ) + fullName: ) +- uid: Task`1 + isExternal: true + name: Task<> + nameWithType: Task<> + fullName: Task<> + nameWithType.vb: Task(Of ) + fullName.vb: Task(Of ) + name.vb: Task(Of ) + spec.csharp: + - uid: Task`1 + name: Task + nameWithType: Task + fullName: Task + isExternal: true + - name: < + nameWithType: < + fullName: < + - name: '' + nameWithType: '' + fullName: '' + - name: '>' + nameWithType: '>' + fullName: '>' + spec.vb: + - uid: Task`1 + name: Task + nameWithType: Task + fullName: Task + isExternal: true + - name: '(Of ' + nameWithType: '(Of ' + fullName: '(Of ' + - name: '' + nameWithType: '' + fullName: '' + - name: ) + nameWithType: ) + fullName: ) +shouldSkipMarkup: true diff --git a/docfx_project/api/Butterfly.Core.Auth.ShareCodeAuthenticator.yml b/docfx_project/api/Butterfly.Core.Auth.ShareCodeAuthenticator.yml new file mode 100644 index 00000000..0d5543ac --- /dev/null +++ b/docfx_project/api/Butterfly.Core.Auth.ShareCodeAuthenticator.yml @@ -0,0 +1,530 @@ +### YamlMime:ManagedReference +items: +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator + commentId: T:Butterfly.Core.Auth.ShareCodeAuthenticator + id: ShareCodeAuthenticator + parent: Butterfly.Core.Auth + children: + - Butterfly.Core.Auth.ShareCodeAuthenticator.#ctor(Butterfly.Core.Database.IDatabase,System.String,System.String,System.String) + - Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableIdFieldName + - Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableName + - Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableShareCodeFieldName + - Butterfly.Core.Auth.ShareCodeAuthenticator.AUTH_TYPE + - Butterfly.Core.Auth.ShareCodeAuthenticator.AuthenticateAsync(System.String,System.String) + - Butterfly.Core.Auth.ShareCodeAuthenticator.database + - Butterfly.Core.Auth.ShareCodeAuthenticator.logger + langs: + - csharp + - vb + name: ShareCodeAuthenticator + nameWithType: ShareCodeAuthenticator + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator + type: Class + source: + remote: + path: Butterfly.Core/Auth/ShareCodeAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: ShareCodeAuthenticator + path: ../Butterfly.Core/Auth/ShareCodeAuthenticator.cs + startLine: 10 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: 'public class ShareCodeAuthenticator : object, IAuthenticator' + content.vb: >- + Public Class ShareCodeAuthenticator + + Inherits Object + + Implements IAuthenticator + inheritance: + - System.Object + implements: + - Butterfly.Core.Auth.IAuthenticator + modifiers.csharp: + - public + - class + modifiers.vb: + - Public + - Class +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.logger + commentId: F:Butterfly.Core.Auth.ShareCodeAuthenticator.logger + id: logger + parent: Butterfly.Core.Auth.ShareCodeAuthenticator + langs: + - csharp + - vb + name: logger + nameWithType: ShareCodeAuthenticator.logger + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.logger + type: Field + source: + remote: + path: Butterfly.Core/Auth/ShareCodeAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: logger + path: ../Butterfly.Core/Auth/ShareCodeAuthenticator.cs + startLine: 11 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected static readonly Logger logger + return: + type: Logger + content.vb: Protected Shared ReadOnly logger As Logger + modifiers.csharp: + - protected + - static + - readonly + modifiers.vb: + - Protected + - Shared + - ReadOnly +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.AUTH_TYPE + commentId: F:Butterfly.Core.Auth.ShareCodeAuthenticator.AUTH_TYPE + id: AUTH_TYPE + parent: Butterfly.Core.Auth.ShareCodeAuthenticator + langs: + - csharp + - vb + name: AUTH_TYPE + nameWithType: ShareCodeAuthenticator.AUTH_TYPE + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.AUTH_TYPE + type: Field + source: + remote: + path: Butterfly.Core/Auth/ShareCodeAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: AUTH_TYPE + path: ../Butterfly.Core/Auth/ShareCodeAuthenticator.cs + startLine: 13 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: public const string AUTH_TYPE = null + return: + type: System.String + content.vb: Public Const AUTH_TYPE As String = Nothing + modifiers.csharp: + - public + - const + modifiers.vb: + - Public + - Const +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.database + commentId: F:Butterfly.Core.Auth.ShareCodeAuthenticator.database + id: database + parent: Butterfly.Core.Auth.ShareCodeAuthenticator + langs: + - csharp + - vb + name: database + nameWithType: ShareCodeAuthenticator.database + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.database + type: Field + source: + remote: + path: Butterfly.Core/Auth/ShareCodeAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: database + path: ../Butterfly.Core/Auth/ShareCodeAuthenticator.cs + startLine: 15 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected readonly IDatabase database + return: + type: Butterfly.Core.Database.IDatabase + content.vb: Protected ReadOnly database As IDatabase + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableName + commentId: F:Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableName + id: accountTableName + parent: Butterfly.Core.Auth.ShareCodeAuthenticator + langs: + - csharp + - vb + name: accountTableName + nameWithType: ShareCodeAuthenticator.accountTableName + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableName + type: Field + source: + remote: + path: Butterfly.Core/Auth/ShareCodeAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: accountTableName + path: ../Butterfly.Core/Auth/ShareCodeAuthenticator.cs + startLine: 17 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected readonly string accountTableName + return: + type: System.String + content.vb: Protected ReadOnly accountTableName As String + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableIdFieldName + commentId: F:Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableIdFieldName + id: accountTableIdFieldName + parent: Butterfly.Core.Auth.ShareCodeAuthenticator + langs: + - csharp + - vb + name: accountTableIdFieldName + nameWithType: ShareCodeAuthenticator.accountTableIdFieldName + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableIdFieldName + type: Field + source: + remote: + path: Butterfly.Core/Auth/ShareCodeAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: accountTableIdFieldName + path: ../Butterfly.Core/Auth/ShareCodeAuthenticator.cs + startLine: 18 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected readonly string accountTableIdFieldName + return: + type: System.String + content.vb: Protected ReadOnly accountTableIdFieldName As String + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableShareCodeFieldName + commentId: F:Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableShareCodeFieldName + id: accountTableShareCodeFieldName + parent: Butterfly.Core.Auth.ShareCodeAuthenticator + langs: + - csharp + - vb + name: accountTableShareCodeFieldName + nameWithType: ShareCodeAuthenticator.accountTableShareCodeFieldName + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableShareCodeFieldName + type: Field + source: + remote: + path: Butterfly.Core/Auth/ShareCodeAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: accountTableShareCodeFieldName + path: ../Butterfly.Core/Auth/ShareCodeAuthenticator.cs + startLine: 19 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected readonly string accountTableShareCodeFieldName + return: + type: System.String + content.vb: Protected ReadOnly accountTableShareCodeFieldName As String + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.#ctor(Butterfly.Core.Database.IDatabase,System.String,System.String,System.String) + commentId: M:Butterfly.Core.Auth.ShareCodeAuthenticator.#ctor(Butterfly.Core.Database.IDatabase,System.String,System.String,System.String) + id: '#ctor(Butterfly.Core.Database.IDatabase,System.String,System.String,System.String)' + parent: Butterfly.Core.Auth.ShareCodeAuthenticator + langs: + - csharp + - vb + name: ShareCodeAuthenticator(IDatabase, String, String, String) + nameWithType: ShareCodeAuthenticator.ShareCodeAuthenticator(IDatabase, String, String, String) + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.ShareCodeAuthenticator(Butterfly.Core.Database.IDatabase, System.String, System.String, System.String) + type: Constructor + source: + remote: + path: Butterfly.Core/Auth/ShareCodeAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: .ctor + path: ../Butterfly.Core/Auth/ShareCodeAuthenticator.cs + startLine: 28 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + summary: "\n\n" + example: [] + syntax: + content: public ShareCodeAuthenticator(IDatabase database, string accountTableName = "account", string accountTableIdFieldName = "id", string accountTableShareCodeFieldName = "share_code") + parameters: + - id: database + type: Butterfly.Core.Database.IDatabase + description: '' + - id: accountTableName + type: System.String + description: Table name of the auth token table (default is "auth_token") + - id: accountTableIdFieldName + type: System.String + description: Field name of the id field on the auth token table (default is "id") + - id: accountTableShareCodeFieldName + type: System.String + description: Field name of the user id field on the auth token table (default is "user_id") + content.vb: Public Sub New(database As IDatabase, accountTableName As String = "account", accountTableIdFieldName As String = "id", accountTableShareCodeFieldName As String = "share_code") + overload: Butterfly.Core.Auth.ShareCodeAuthenticator.#ctor* + modifiers.csharp: + - public + modifiers.vb: + - Public +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.AuthenticateAsync(System.String,System.String) + commentId: M:Butterfly.Core.Auth.ShareCodeAuthenticator.AuthenticateAsync(System.String,System.String) + id: AuthenticateAsync(System.String,System.String) + parent: Butterfly.Core.Auth.ShareCodeAuthenticator + langs: + - csharp + - vb + name: AuthenticateAsync(String, String) + nameWithType: ShareCodeAuthenticator.AuthenticateAsync(String, String) + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.AuthenticateAsync(System.String, System.String) + type: Method + source: + remote: + path: Butterfly.Core/Auth/ShareCodeAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: AuthenticateAsync + path: ../Butterfly.Core/Auth/ShareCodeAuthenticator.cs + startLine: 46 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + summary: "\nValidates the auth token id returning an instance\n" + example: [] + syntax: + content: public Task AuthenticateAsync(string authType, string authValue) + parameters: + - id: authType + type: System.String + description: '' + - id: authValue + type: System.String + description: '' + return: + type: Task{Butterfly.Core.Auth.AuthToken} + description: An instance + content.vb: Public Function AuthenticateAsync(authType As String, authValue As String) As Task(Of AuthToken) + overload: Butterfly.Core.Auth.ShareCodeAuthenticator.AuthenticateAsync* + implements: + - Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String,System.String) + modifiers.csharp: + - public + modifiers.vb: + - Public +references: +- uid: Butterfly.Core.Auth + commentId: N:Butterfly.Core.Auth + name: Butterfly.Core.Auth + nameWithType: Butterfly.Core.Auth + fullName: Butterfly.Core.Auth +- uid: System.Object + commentId: T:System.Object + isExternal: true + name: Object + nameWithType: Object + fullName: System.Object +- uid: Butterfly.Core.Auth.IAuthenticator + commentId: T:Butterfly.Core.Auth.IAuthenticator + parent: Butterfly.Core.Auth + name: IAuthenticator + nameWithType: IAuthenticator + fullName: Butterfly.Core.Auth.IAuthenticator +- uid: Logger + isExternal: true + name: Logger + nameWithType: Logger + fullName: Logger +- uid: System.String + isExternal: true + name: String + nameWithType: String + fullName: System.String +- uid: Butterfly.Core.Database.IDatabase + commentId: T:Butterfly.Core.Database.IDatabase + parent: Butterfly.Core.Database + name: IDatabase + nameWithType: IDatabase + fullName: Butterfly.Core.Database.IDatabase +- uid: Butterfly.Core.Database + commentId: N:Butterfly.Core.Database + name: Butterfly.Core.Database + nameWithType: Butterfly.Core.Database + fullName: Butterfly.Core.Database +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.#ctor* + commentId: Overload:Butterfly.Core.Auth.ShareCodeAuthenticator.#ctor + name: ShareCodeAuthenticator + nameWithType: ShareCodeAuthenticator.ShareCodeAuthenticator + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.ShareCodeAuthenticator +- uid: Butterfly.Core.Auth.AuthToken + commentId: T:Butterfly.Core.Auth.AuthToken + parent: Butterfly.Core.Auth + name: AuthToken + nameWithType: AuthToken + fullName: Butterfly.Core.Auth.AuthToken +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.AuthenticateAsync* + commentId: Overload:Butterfly.Core.Auth.ShareCodeAuthenticator.AuthenticateAsync + name: AuthenticateAsync + nameWithType: ShareCodeAuthenticator.AuthenticateAsync + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.AuthenticateAsync +- uid: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String,System.String) + commentId: M:Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String,System.String) + parent: Butterfly.Core.Auth.IAuthenticator + isExternal: true + name: AuthenticateAsync(String, String) + nameWithType: IAuthenticator.AuthenticateAsync(String, String) + fullName: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String, System.String) + spec.csharp: + - uid: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String,System.String) + name: AuthenticateAsync + nameWithType: IAuthenticator.AuthenticateAsync + fullName: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync + - name: ( + nameWithType: ( + fullName: ( + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true + - name: ) + nameWithType: ) + fullName: ) + spec.vb: + - uid: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String,System.String) + name: AuthenticateAsync + nameWithType: IAuthenticator.AuthenticateAsync + fullName: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync + - name: ( + nameWithType: ( + fullName: ( + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true + - name: ) + nameWithType: ) + fullName: ) +- uid: Task{Butterfly.Core.Auth.AuthToken} + commentId: '!:Task{Butterfly.Core.Auth.AuthToken}' + definition: Task`1 + name: Task + nameWithType: Task + fullName: Task + nameWithType.vb: Task(Of AuthToken) + fullName.vb: Task(Of Butterfly.Core.Auth.AuthToken) + name.vb: Task(Of AuthToken) + spec.csharp: + - uid: Task`1 + name: Task + nameWithType: Task + fullName: Task + isExternal: true + - name: < + nameWithType: < + fullName: < + - uid: Butterfly.Core.Auth.AuthToken + name: AuthToken + nameWithType: AuthToken + fullName: Butterfly.Core.Auth.AuthToken + - name: '>' + nameWithType: '>' + fullName: '>' + spec.vb: + - uid: Task`1 + name: Task + nameWithType: Task + fullName: Task + isExternal: true + - name: '(Of ' + nameWithType: '(Of ' + fullName: '(Of ' + - uid: Butterfly.Core.Auth.AuthToken + name: AuthToken + nameWithType: AuthToken + fullName: Butterfly.Core.Auth.AuthToken + - name: ) + nameWithType: ) + fullName: ) +- uid: Task`1 + isExternal: true + name: Task<> + nameWithType: Task<> + fullName: Task<> + nameWithType.vb: Task(Of ) + fullName.vb: Task(Of ) + name.vb: Task(Of ) + spec.csharp: + - uid: Task`1 + name: Task + nameWithType: Task + fullName: Task + isExternal: true + - name: < + nameWithType: < + fullName: < + - name: '' + nameWithType: '' + fullName: '' + - name: '>' + nameWithType: '>' + fullName: '>' + spec.vb: + - uid: Task`1 + name: Task + nameWithType: Task + fullName: Task + isExternal: true + - name: '(Of ' + nameWithType: '(Of ' + fullName: '(Of ' + - name: '' + nameWithType: '' + fullName: '' + - name: ) + nameWithType: ) + fullName: ) +shouldSkipMarkup: true diff --git a/docfx_project/api/Butterfly.Core.Auth.ShareCodeToken.yml b/docfx_project/api/Butterfly.Core.Auth.ShareCodeToken.yml new file mode 100644 index 00000000..ff8f3c4f --- /dev/null +++ b/docfx_project/api/Butterfly.Core.Auth.ShareCodeToken.yml @@ -0,0 +1,135 @@ +### YamlMime:ManagedReference +items: +- uid: Butterfly.Core.Auth.ShareCodeToken + commentId: T:Butterfly.Core.Auth.ShareCodeToken + id: ShareCodeToken + parent: Butterfly.Core.Auth + children: + - Butterfly.Core.Auth.ShareCodeToken.#ctor(System.String,System.String) + langs: + - csharp + - vb + name: ShareCodeToken + nameWithType: ShareCodeToken + fullName: Butterfly.Core.Auth.ShareCodeToken + type: Class + source: + remote: + path: Butterfly.Core/Auth/ShareCodeAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: ShareCodeToken + path: ../Butterfly.Core/Auth/ShareCodeAuthenticator.cs + startLine: 59 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + summary: "\nRepresents the result of a successful or \n" + example: [] + syntax: + content: 'public class ShareCodeToken : AuthToken' + content.vb: >- + Public Class ShareCodeToken + + Inherits AuthToken + inheritance: + - System.Object + - Butterfly.Core.Auth.AuthToken + inheritedMembers: + - Butterfly.Core.Auth.AuthToken.type + - Butterfly.Core.Auth.AuthToken.accountId + - Butterfly.Core.Auth.AuthToken.role + modifiers.csharp: + - public + - class + modifiers.vb: + - Public + - Class +- uid: Butterfly.Core.Auth.ShareCodeToken.#ctor(System.String,System.String) + commentId: M:Butterfly.Core.Auth.ShareCodeToken.#ctor(System.String,System.String) + id: '#ctor(System.String,System.String)' + parent: Butterfly.Core.Auth.ShareCodeToken + langs: + - csharp + - vb + name: ShareCodeToken(String, String) + nameWithType: ShareCodeToken.ShareCodeToken(String, String) + fullName: Butterfly.Core.Auth.ShareCodeToken.ShareCodeToken(System.String, System.String) + type: Constructor + source: + remote: + path: Butterfly.Core/Auth/ShareCodeAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: .ctor + path: ../Butterfly.Core/Auth/ShareCodeAuthenticator.cs + startLine: 60 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: public ShareCodeToken(string accountId, string role) + parameters: + - id: accountId + type: System.String + - id: role + type: System.String + content.vb: Public Sub New(accountId As String, role As String) + overload: Butterfly.Core.Auth.ShareCodeToken.#ctor* + modifiers.csharp: + - public + modifiers.vb: + - Public +references: +- uid: Butterfly.Core.Auth.AuthManager.LoginAsync(System.Collections.Generic.Dictionary{System.String,System.Object}) + commentId: M:Butterfly.Core.Auth.AuthManager.LoginAsync(System.Collections.Generic.Dictionary{System.String,System.Object}) + isExternal: true +- uid: Butterfly.Core.Auth.AuthManager.RegisterAsync(System.Object,System.Collections.Generic.Dictionary{System.String,System.Object}) + commentId: M:Butterfly.Core.Auth.AuthManager.RegisterAsync(System.Object,System.Collections.Generic.Dictionary{System.String,System.Object}) + isExternal: true +- uid: Butterfly.Core.Auth + commentId: N:Butterfly.Core.Auth + name: Butterfly.Core.Auth + nameWithType: Butterfly.Core.Auth + fullName: Butterfly.Core.Auth +- uid: System.Object + commentId: T:System.Object + isExternal: true + name: Object + nameWithType: Object + fullName: System.Object +- uid: Butterfly.Core.Auth.AuthToken + commentId: T:Butterfly.Core.Auth.AuthToken + parent: Butterfly.Core.Auth + name: AuthToken + nameWithType: AuthToken + fullName: Butterfly.Core.Auth.AuthToken +- uid: Butterfly.Core.Auth.AuthToken.type + commentId: F:Butterfly.Core.Auth.AuthToken.type + parent: Butterfly.Core.Auth.AuthToken + name: type + nameWithType: AuthToken.type + fullName: Butterfly.Core.Auth.AuthToken.type +- uid: Butterfly.Core.Auth.AuthToken.accountId + commentId: F:Butterfly.Core.Auth.AuthToken.accountId + parent: Butterfly.Core.Auth.AuthToken + name: accountId + nameWithType: AuthToken.accountId + fullName: Butterfly.Core.Auth.AuthToken.accountId +- uid: Butterfly.Core.Auth.AuthToken.role + commentId: F:Butterfly.Core.Auth.AuthToken.role + parent: Butterfly.Core.Auth.AuthToken + name: role + nameWithType: AuthToken.role + fullName: Butterfly.Core.Auth.AuthToken.role +- uid: Butterfly.Core.Auth.ShareCodeToken.#ctor* + commentId: Overload:Butterfly.Core.Auth.ShareCodeToken.#ctor + name: ShareCodeToken + nameWithType: ShareCodeToken.ShareCodeToken + fullName: Butterfly.Core.Auth.ShareCodeToken.ShareCodeToken +- uid: System.String + isExternal: true + name: String + nameWithType: String + fullName: System.String +shouldSkipMarkup: true diff --git a/docfx_project/api/Butterfly.Core.Auth.UserRefToken.yml b/docfx_project/api/Butterfly.Core.Auth.UserRefToken.yml new file mode 100644 index 00000000..651d49db --- /dev/null +++ b/docfx_project/api/Butterfly.Core.Auth.UserRefToken.yml @@ -0,0 +1,457 @@ +### YamlMime:ManagedReference +items: +- uid: Butterfly.Core.Auth.UserRefToken + commentId: T:Butterfly.Core.Auth.UserRefToken + id: UserRefToken + parent: Butterfly.Core.Auth + children: + - Butterfly.Core.Auth.UserRefToken.#ctor(System.String,System.String,System.String,System.String,System.String,DateTime) + - Butterfly.Core.Auth.UserRefToken.expiresAt + - Butterfly.Core.Auth.UserRefToken.FromDict(System.Collections.Generic.Dictionary{System.String,System.Object},System.String,System.String,System.String,System.String,System.String,System.String) + - Butterfly.Core.Auth.UserRefToken.id + - Butterfly.Core.Auth.UserRefToken.userId + - Butterfly.Core.Auth.UserRefToken.username + langs: + - csharp + - vb + name: UserRefToken + nameWithType: UserRefToken + fullName: Butterfly.Core.Auth.UserRefToken + type: Class + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: UserRefToken + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 101 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + summary: "\nRepresents the result of a successful or \n" + example: [] + syntax: + content: 'public class UserRefToken : AuthToken' + content.vb: >- + Public Class UserRefToken + + Inherits AuthToken + inheritance: + - System.Object + - Butterfly.Core.Auth.AuthToken + inheritedMembers: + - Butterfly.Core.Auth.AuthToken.type + - Butterfly.Core.Auth.AuthToken.accountId + - Butterfly.Core.Auth.AuthToken.role + modifiers.csharp: + - public + - class + modifiers.vb: + - Public + - Class +- uid: Butterfly.Core.Auth.UserRefToken.id + commentId: F:Butterfly.Core.Auth.UserRefToken.id + id: id + parent: Butterfly.Core.Auth.UserRefToken + langs: + - csharp + - vb + name: id + nameWithType: UserRefToken.id + fullName: Butterfly.Core.Auth.UserRefToken.id + type: Field + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: id + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 102 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: public readonly string id + return: + type: System.String + content.vb: Public ReadOnly id As String + modifiers.csharp: + - public + - readonly + modifiers.vb: + - Public + - ReadOnly +- uid: Butterfly.Core.Auth.UserRefToken.userId + commentId: F:Butterfly.Core.Auth.UserRefToken.userId + id: userId + parent: Butterfly.Core.Auth.UserRefToken + langs: + - csharp + - vb + name: userId + nameWithType: UserRefToken.userId + fullName: Butterfly.Core.Auth.UserRefToken.userId + type: Field + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: userId + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 103 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: public readonly string userId + return: + type: System.String + content.vb: Public ReadOnly userId As String + modifiers.csharp: + - public + - readonly + modifiers.vb: + - Public + - ReadOnly +- uid: Butterfly.Core.Auth.UserRefToken.username + commentId: F:Butterfly.Core.Auth.UserRefToken.username + id: username + parent: Butterfly.Core.Auth.UserRefToken + langs: + - csharp + - vb + name: username + nameWithType: UserRefToken.username + fullName: Butterfly.Core.Auth.UserRefToken.username + type: Field + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: username + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 104 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: public readonly string username + return: + type: System.String + content.vb: Public ReadOnly username As String + modifiers.csharp: + - public + - readonly + modifiers.vb: + - Public + - ReadOnly +- uid: Butterfly.Core.Auth.UserRefToken.expiresAt + commentId: F:Butterfly.Core.Auth.UserRefToken.expiresAt + id: expiresAt + parent: Butterfly.Core.Auth.UserRefToken + langs: + - csharp + - vb + name: expiresAt + nameWithType: UserRefToken.expiresAt + fullName: Butterfly.Core.Auth.UserRefToken.expiresAt + type: Field + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: expiresAt + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 105 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: public readonly DateTime expiresAt + return: + type: DateTime + content.vb: Public ReadOnly expiresAt As DateTime + modifiers.csharp: + - public + - readonly + modifiers.vb: + - Public + - ReadOnly +- uid: Butterfly.Core.Auth.UserRefToken.#ctor(System.String,System.String,System.String,System.String,System.String,DateTime) + commentId: M:Butterfly.Core.Auth.UserRefToken.#ctor(System.String,System.String,System.String,System.String,System.String,DateTime) + id: '#ctor(System.String,System.String,System.String,System.String,System.String,DateTime)' + parent: Butterfly.Core.Auth.UserRefToken + langs: + - csharp + - vb + name: UserRefToken(String, String, String, String, String, DateTime) + nameWithType: UserRefToken.UserRefToken(String, String, String, String, String, DateTime) + fullName: Butterfly.Core.Auth.UserRefToken.UserRefToken(System.String, System.String, System.String, System.String, System.String, DateTime) + type: Constructor + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: .ctor + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 107 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: public UserRefToken(string id, string userId, string username, string role, string accountId, DateTime expiresAt) + parameters: + - id: id + type: System.String + - id: userId + type: System.String + - id: username + type: System.String + - id: role + type: System.String + - id: accountId + type: System.String + - id: expiresAt + type: DateTime + content.vb: Public Sub New(id As String, userId As String, username As String, role As String, accountId As String, expiresAt As DateTime) + overload: Butterfly.Core.Auth.UserRefToken.#ctor* + modifiers.csharp: + - public + modifiers.vb: + - Public +- uid: Butterfly.Core.Auth.UserRefToken.FromDict(System.Collections.Generic.Dictionary{System.String,System.Object},System.String,System.String,System.String,System.String,System.String,System.String) + commentId: M:Butterfly.Core.Auth.UserRefToken.FromDict(System.Collections.Generic.Dictionary{System.String,System.Object},System.String,System.String,System.String,System.String,System.String,System.String) + id: FromDict(System.Collections.Generic.Dictionary{System.String,System.Object},System.String,System.String,System.String,System.String,System.String,System.String) + parent: Butterfly.Core.Auth.UserRefToken + langs: + - csharp + - vb + name: FromDict(System.Collections.Generic.Dictionary, String, String, String, String, String, String) + nameWithType: UserRefToken.FromDict(System.Collections.Generic.Dictionary, String, String, String, String, String, String) + fullName: Butterfly.Core.Auth.UserRefToken.FromDict(System.Collections.Generic.Dictionary, System.String, System.String, System.String, System.String, System.String, System.String) + type: Method + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: FromDict + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 114 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: public static UserRefToken FromDict(System.Collections.Generic.Dictionary dict, string idFieldName, string userIdFieldName, string usernameFieldName, string roleFieldName, string accountIdFieldName, string expiresAtFieldName) + parameters: + - id: dict + type: System.Collections.Generic.Dictionary{System.String,System.Object} + - id: idFieldName + type: System.String + - id: userIdFieldName + type: System.String + - id: usernameFieldName + type: System.String + - id: roleFieldName + type: System.String + - id: accountIdFieldName + type: System.String + - id: expiresAtFieldName + type: System.String + return: + type: Butterfly.Core.Auth.UserRefToken + content.vb: Public Shared Function FromDict(dict As System.Collections.Generic.Dictionary(Of String, Object), idFieldName As String, userIdFieldName As String, usernameFieldName As String, roleFieldName As String, accountIdFieldName As String, expiresAtFieldName As String) As UserRefToken + overload: Butterfly.Core.Auth.UserRefToken.FromDict* + nameWithType.vb: UserRefToken.FromDict(System.Collections.Generic.Dictionary(Of String, Object), String, String, String, String, String, String) + modifiers.csharp: + - public + - static + modifiers.vb: + - Public + - Shared + fullName.vb: Butterfly.Core.Auth.UserRefToken.FromDict(System.Collections.Generic.Dictionary(Of System.String, System.Object), System.String, System.String, System.String, System.String, System.String, System.String) + name.vb: FromDict(System.Collections.Generic.Dictionary(Of String, Object), String, String, String, String, String, String) +references: +- uid: Butterfly.Core.Auth.AuthManager.LoginAsync(System.Collections.Generic.Dictionary{System.String,System.Object}) + commentId: M:Butterfly.Core.Auth.AuthManager.LoginAsync(System.Collections.Generic.Dictionary{System.String,System.Object}) + isExternal: true +- uid: Butterfly.Core.Auth.AuthManager.RegisterAsync(System.Object,System.Collections.Generic.Dictionary{System.String,System.Object}) + commentId: M:Butterfly.Core.Auth.AuthManager.RegisterAsync(System.Object,System.Collections.Generic.Dictionary{System.String,System.Object}) + isExternal: true +- uid: Butterfly.Core.Auth + commentId: N:Butterfly.Core.Auth + name: Butterfly.Core.Auth + nameWithType: Butterfly.Core.Auth + fullName: Butterfly.Core.Auth +- uid: System.Object + commentId: T:System.Object + isExternal: true + name: Object + nameWithType: Object + fullName: System.Object +- uid: Butterfly.Core.Auth.AuthToken + commentId: T:Butterfly.Core.Auth.AuthToken + parent: Butterfly.Core.Auth + name: AuthToken + nameWithType: AuthToken + fullName: Butterfly.Core.Auth.AuthToken +- uid: Butterfly.Core.Auth.AuthToken.type + commentId: F:Butterfly.Core.Auth.AuthToken.type + parent: Butterfly.Core.Auth.AuthToken + name: type + nameWithType: AuthToken.type + fullName: Butterfly.Core.Auth.AuthToken.type +- uid: Butterfly.Core.Auth.AuthToken.accountId + commentId: F:Butterfly.Core.Auth.AuthToken.accountId + parent: Butterfly.Core.Auth.AuthToken + name: accountId + nameWithType: AuthToken.accountId + fullName: Butterfly.Core.Auth.AuthToken.accountId +- uid: Butterfly.Core.Auth.AuthToken.role + commentId: F:Butterfly.Core.Auth.AuthToken.role + parent: Butterfly.Core.Auth.AuthToken + name: role + nameWithType: AuthToken.role + fullName: Butterfly.Core.Auth.AuthToken.role +- uid: System.String + isExternal: true + name: String + nameWithType: String + fullName: System.String +- uid: DateTime + isExternal: true + name: DateTime + nameWithType: DateTime + fullName: DateTime +- uid: Butterfly.Core.Auth.UserRefToken.#ctor* + commentId: Overload:Butterfly.Core.Auth.UserRefToken.#ctor + name: UserRefToken + nameWithType: UserRefToken.UserRefToken + fullName: Butterfly.Core.Auth.UserRefToken.UserRefToken +- uid: Butterfly.Core.Auth.UserRefToken.FromDict* + commentId: Overload:Butterfly.Core.Auth.UserRefToken.FromDict + name: FromDict + nameWithType: UserRefToken.FromDict + fullName: Butterfly.Core.Auth.UserRefToken.FromDict +- uid: System.Collections.Generic.Dictionary{System.String,System.Object} + commentId: '!:System.Collections.Generic.Dictionary{System.String,System.Object}' + definition: System.Collections.Generic.Dictionary`2 + name: System.Collections.Generic.Dictionary + nameWithType: System.Collections.Generic.Dictionary + fullName: System.Collections.Generic.Dictionary + nameWithType.vb: System.Collections.Generic.Dictionary(Of String, Object) + fullName.vb: System.Collections.Generic.Dictionary(Of System.String, System.Object) + name.vb: System.Collections.Generic.Dictionary(Of String, Object) + spec.csharp: + - uid: System.Collections.Generic.Dictionary`2 + name: System.Collections.Generic.Dictionary + nameWithType: System.Collections.Generic.Dictionary + fullName: System.Collections.Generic.Dictionary + isExternal: true + - name: < + nameWithType: < + fullName: < + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.Object + name: Object + nameWithType: Object + fullName: System.Object + isExternal: true + - name: '>' + nameWithType: '>' + fullName: '>' + spec.vb: + - uid: System.Collections.Generic.Dictionary`2 + name: System.Collections.Generic.Dictionary + nameWithType: System.Collections.Generic.Dictionary + fullName: System.Collections.Generic.Dictionary + isExternal: true + - name: '(Of ' + nameWithType: '(Of ' + fullName: '(Of ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.Object + name: Object + nameWithType: Object + fullName: System.Object + isExternal: true + - name: ) + nameWithType: ) + fullName: ) +- uid: Butterfly.Core.Auth.UserRefToken + commentId: T:Butterfly.Core.Auth.UserRefToken + parent: Butterfly.Core.Auth + name: UserRefToken + nameWithType: UserRefToken + fullName: Butterfly.Core.Auth.UserRefToken +- uid: System.Collections.Generic.Dictionary`2 + isExternal: true + name: System.Collections.Generic.Dictionary<, > + nameWithType: System.Collections.Generic.Dictionary<, > + fullName: System.Collections.Generic.Dictionary<, > + nameWithType.vb: System.Collections.Generic.Dictionary(Of , ) + fullName.vb: System.Collections.Generic.Dictionary(Of , ) + name.vb: System.Collections.Generic.Dictionary(Of , ) + spec.csharp: + - uid: System.Collections.Generic.Dictionary`2 + name: System.Collections.Generic.Dictionary + nameWithType: System.Collections.Generic.Dictionary + fullName: System.Collections.Generic.Dictionary + isExternal: true + - name: < + nameWithType: < + fullName: < + - name: '' + nameWithType: '' + fullName: '' + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - name: '' + nameWithType: '' + fullName: '' + - name: '>' + nameWithType: '>' + fullName: '>' + spec.vb: + - uid: System.Collections.Generic.Dictionary`2 + name: System.Collections.Generic.Dictionary + nameWithType: System.Collections.Generic.Dictionary + fullName: System.Collections.Generic.Dictionary + isExternal: true + - name: '(Of ' + nameWithType: '(Of ' + fullName: '(Of ' + - name: '' + nameWithType: '' + fullName: '' + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - name: '' + nameWithType: '' + fullName: '' + - name: ) + nameWithType: ) + fullName: ) +shouldSkipMarkup: true diff --git a/docfx_project/api/Butterfly.Core.Auth.UserRefTokenAuthenticator.yml b/docfx_project/api/Butterfly.Core.Auth.UserRefTokenAuthenticator.yml new file mode 100644 index 00000000..5889f424 --- /dev/null +++ b/docfx_project/api/Butterfly.Core.Auth.UserRefTokenAuthenticator.yml @@ -0,0 +1,814 @@ +### YamlMime:ManagedReference +items: +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator + commentId: T:Butterfly.Core.Auth.UserRefTokenAuthenticator + id: UserRefTokenAuthenticator + parent: Butterfly.Core.Auth + children: + - Butterfly.Core.Auth.UserRefTokenAuthenticator.#ctor(Butterfly.Core.Database.IDatabase,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String) + - Butterfly.Core.Auth.UserRefTokenAuthenticator.AUTH_TYPE + - Butterfly.Core.Auth.UserRefTokenAuthenticator.AuthenticateAsync(System.String,System.String) + - Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenIdFieldName + - Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableExpiresAtFieldName + - Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableName + - Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableUserIdFieldName + - Butterfly.Core.Auth.UserRefTokenAuthenticator.database + - Butterfly.Core.Auth.UserRefTokenAuthenticator.InsertAsync(Butterfly.Core.Database.ITransaction,System.String,DateTime) + - Butterfly.Core.Auth.UserRefTokenAuthenticator.logger + - Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableAccountIdFieldName + - Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableName + - Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableRoleFieldName + - Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableUsernameFieldName + langs: + - csharp + - vb + name: UserRefTokenAuthenticator + nameWithType: UserRefTokenAuthenticator + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator + type: Class + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: UserRefTokenAuthenticator + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 12 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: 'public class UserRefTokenAuthenticator : object, IAuthenticator' + content.vb: >- + Public Class UserRefTokenAuthenticator + + Inherits Object + + Implements IAuthenticator + inheritance: + - System.Object + implements: + - Butterfly.Core.Auth.IAuthenticator + modifiers.csharp: + - public + - class + modifiers.vb: + - Public + - Class +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.logger + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.logger + id: logger + parent: Butterfly.Core.Auth.UserRefTokenAuthenticator + langs: + - csharp + - vb + name: logger + nameWithType: UserRefTokenAuthenticator.logger + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.logger + type: Field + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: logger + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 13 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected static readonly Logger logger + return: + type: Logger + content.vb: Protected Shared ReadOnly logger As Logger + modifiers.csharp: + - protected + - static + - readonly + modifiers.vb: + - Protected + - Shared + - ReadOnly +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.AUTH_TYPE + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.AUTH_TYPE + id: AUTH_TYPE + parent: Butterfly.Core.Auth.UserRefTokenAuthenticator + langs: + - csharp + - vb + name: AUTH_TYPE + nameWithType: UserRefTokenAuthenticator.AUTH_TYPE + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.AUTH_TYPE + type: Field + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: AUTH_TYPE + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 15 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: public const string AUTH_TYPE = null + return: + type: System.String + content.vb: Public Const AUTH_TYPE As String = Nothing + modifiers.csharp: + - public + - const + modifiers.vb: + - Public + - Const +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.database + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.database + id: database + parent: Butterfly.Core.Auth.UserRefTokenAuthenticator + langs: + - csharp + - vb + name: database + nameWithType: UserRefTokenAuthenticator.database + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.database + type: Field + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: database + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 17 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected readonly IDatabase database + return: + type: Butterfly.Core.Database.IDatabase + content.vb: Protected ReadOnly database As IDatabase + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableName + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableName + id: authTokenTableName + parent: Butterfly.Core.Auth.UserRefTokenAuthenticator + langs: + - csharp + - vb + name: authTokenTableName + nameWithType: UserRefTokenAuthenticator.authTokenTableName + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableName + type: Field + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: authTokenTableName + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 18 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected readonly string authTokenTableName + return: + type: System.String + content.vb: Protected ReadOnly authTokenTableName As String + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenIdFieldName + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenIdFieldName + id: authTokenIdFieldName + parent: Butterfly.Core.Auth.UserRefTokenAuthenticator + langs: + - csharp + - vb + name: authTokenIdFieldName + nameWithType: UserRefTokenAuthenticator.authTokenIdFieldName + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenIdFieldName + type: Field + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: authTokenIdFieldName + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 19 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected readonly string authTokenIdFieldName + return: + type: System.String + content.vb: Protected ReadOnly authTokenIdFieldName As String + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableUserIdFieldName + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableUserIdFieldName + id: authTokenTableUserIdFieldName + parent: Butterfly.Core.Auth.UserRefTokenAuthenticator + langs: + - csharp + - vb + name: authTokenTableUserIdFieldName + nameWithType: UserRefTokenAuthenticator.authTokenTableUserIdFieldName + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableUserIdFieldName + type: Field + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: authTokenTableUserIdFieldName + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 20 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected readonly string authTokenTableUserIdFieldName + return: + type: System.String + content.vb: Protected ReadOnly authTokenTableUserIdFieldName As String + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableExpiresAtFieldName + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableExpiresAtFieldName + id: authTokenTableExpiresAtFieldName + parent: Butterfly.Core.Auth.UserRefTokenAuthenticator + langs: + - csharp + - vb + name: authTokenTableExpiresAtFieldName + nameWithType: UserRefTokenAuthenticator.authTokenTableExpiresAtFieldName + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableExpiresAtFieldName + type: Field + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: authTokenTableExpiresAtFieldName + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 21 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected readonly string authTokenTableExpiresAtFieldName + return: + type: System.String + content.vb: Protected ReadOnly authTokenTableExpiresAtFieldName As String + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableName + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableName + id: userTableName + parent: Butterfly.Core.Auth.UserRefTokenAuthenticator + langs: + - csharp + - vb + name: userTableName + nameWithType: UserRefTokenAuthenticator.userTableName + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableName + type: Field + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: userTableName + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 23 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected readonly string userTableName + return: + type: System.String + content.vb: Protected ReadOnly userTableName As String + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableUsernameFieldName + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableUsernameFieldName + id: userTableUsernameFieldName + parent: Butterfly.Core.Auth.UserRefTokenAuthenticator + langs: + - csharp + - vb + name: userTableUsernameFieldName + nameWithType: UserRefTokenAuthenticator.userTableUsernameFieldName + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableUsernameFieldName + type: Field + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: userTableUsernameFieldName + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 24 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected readonly string userTableUsernameFieldName + return: + type: System.String + content.vb: Protected ReadOnly userTableUsernameFieldName As String + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableAccountIdFieldName + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableAccountIdFieldName + id: userTableAccountIdFieldName + parent: Butterfly.Core.Auth.UserRefTokenAuthenticator + langs: + - csharp + - vb + name: userTableAccountIdFieldName + nameWithType: UserRefTokenAuthenticator.userTableAccountIdFieldName + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableAccountIdFieldName + type: Field + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: userTableAccountIdFieldName + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 25 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected readonly string userTableAccountIdFieldName + return: + type: System.String + content.vb: Protected ReadOnly userTableAccountIdFieldName As String + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableRoleFieldName + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableRoleFieldName + id: userTableRoleFieldName + parent: Butterfly.Core.Auth.UserRefTokenAuthenticator + langs: + - csharp + - vb + name: userTableRoleFieldName + nameWithType: UserRefTokenAuthenticator.userTableRoleFieldName + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableRoleFieldName + type: Field + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: userTableRoleFieldName + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 26 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: protected readonly string userTableRoleFieldName + return: + type: System.String + content.vb: Protected ReadOnly userTableRoleFieldName As String + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.#ctor(Butterfly.Core.Database.IDatabase,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String) + commentId: M:Butterfly.Core.Auth.UserRefTokenAuthenticator.#ctor(Butterfly.Core.Database.IDatabase,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String) + id: '#ctor(Butterfly.Core.Database.IDatabase,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)' + parent: Butterfly.Core.Auth.UserRefTokenAuthenticator + langs: + - csharp + - vb + name: UserRefTokenAuthenticator(IDatabase, String, String, String, String, String, String, String, String) + nameWithType: UserRefTokenAuthenticator.UserRefTokenAuthenticator(IDatabase, String, String, String, String, String, String, String, String) + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.UserRefTokenAuthenticator(Butterfly.Core.Database.IDatabase, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String) + type: Constructor + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: .ctor + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 40 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + summary: "\n\n" + example: [] + syntax: + content: public UserRefTokenAuthenticator(IDatabase database, string authTokenTableName = "auth_token", string authTokenIdFieldName = "id", string authTokenTableUserIdFieldName = "user_id", string authTokenTableExpiresAtFieldName = "expires_at", string userTableName = "user", string userTableUsernameFieldName = "username", string userTableAccountIdFieldName = "account_id", string userTableRoleFieldName = "role") + parameters: + - id: database + type: Butterfly.Core.Database.IDatabase + description: '' + - id: authTokenTableName + type: System.String + description: Table name of the auth token table (default is "auth_token") + - id: authTokenIdFieldName + type: System.String + description: Field name of the id field on the auth token table (default is "id") + - id: authTokenTableUserIdFieldName + type: System.String + description: Field name of the user id field on the auth token table (default is "user_id") + - id: authTokenTableExpiresAtFieldName + type: System.String + description: Field name of the expires at field on the auth token table (default is "expires_at") + - id: userTableName + type: System.String + description: Table name of the user table (default is "user") + - id: userTableUsernameFieldName + type: System.String + description: Field name of the username field on the user table (default is "username") + - id: userTableAccountIdFieldName + type: System.String + description: Field name of the account id field on the user table (default is "account_id") + - id: userTableRoleFieldName + type: System.String + description: Field name of the role field on the user table (default is "role") + content.vb: Public Sub New(database As IDatabase, authTokenTableName As String = "auth_token", authTokenIdFieldName As String = "id", authTokenTableUserIdFieldName As String = "user_id", authTokenTableExpiresAtFieldName As String = "expires_at", userTableName As String = "user", userTableUsernameFieldName As String = "username", userTableAccountIdFieldName As String = "account_id", userTableRoleFieldName As String = "role") + overload: Butterfly.Core.Auth.UserRefTokenAuthenticator.#ctor* + modifiers.csharp: + - public + modifiers.vb: + - Public +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.AuthenticateAsync(System.String,System.String) + commentId: M:Butterfly.Core.Auth.UserRefTokenAuthenticator.AuthenticateAsync(System.String,System.String) + id: AuthenticateAsync(System.String,System.String) + parent: Butterfly.Core.Auth.UserRefTokenAuthenticator + langs: + - csharp + - vb + name: AuthenticateAsync(String, String) + nameWithType: UserRefTokenAuthenticator.AuthenticateAsync(String, String) + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.AuthenticateAsync(System.String, System.String) + type: Method + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: AuthenticateAsync + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 69 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + summary: "\nValidates the auth token id returning an instance\n" + example: [] + syntax: + content: public Task AuthenticateAsync(string authType, string authValue) + parameters: + - id: authType + type: System.String + description: '' + - id: authValue + type: System.String + description: '' + return: + type: Task{Butterfly.Core.Auth.AuthToken} + description: An instance + content.vb: Public Function AuthenticateAsync(authType As String, authValue As String) As Task(Of AuthToken) + overload: Butterfly.Core.Auth.UserRefTokenAuthenticator.AuthenticateAsync* + implements: + - Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String,System.String) + modifiers.csharp: + - public + modifiers.vb: + - Public +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.InsertAsync(Butterfly.Core.Database.ITransaction,System.String,DateTime) + commentId: M:Butterfly.Core.Auth.UserRefTokenAuthenticator.InsertAsync(Butterfly.Core.Database.ITransaction,System.String,DateTime) + id: InsertAsync(Butterfly.Core.Database.ITransaction,System.String,DateTime) + parent: Butterfly.Core.Auth.UserRefTokenAuthenticator + langs: + - csharp + - vb + name: InsertAsync(ITransaction, String, DateTime) + nameWithType: UserRefTokenAuthenticator.InsertAsync(ITransaction, String, DateTime) + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.InsertAsync(Butterfly.Core.Database.ITransaction, System.String, DateTime) + type: Method + source: + remote: + path: Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: InsertAsync + path: ../Butterfly.Core/Auth/UserRefTokenAuthenticator.cs + startLine: 90 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Auth + syntax: + content: public Task InsertAsync(ITransaction transaction, string userId, DateTime expiresAt) + parameters: + - id: transaction + type: Butterfly.Core.Database.ITransaction + - id: userId + type: System.String + - id: expiresAt + type: DateTime + return: + type: Task{System.String} + content.vb: Public Function InsertAsync(transaction As ITransaction, userId As String, expiresAt As DateTime) As Task(Of String) + overload: Butterfly.Core.Auth.UserRefTokenAuthenticator.InsertAsync* + modifiers.csharp: + - public + modifiers.vb: + - Public +references: +- uid: Butterfly.Core.Auth + commentId: N:Butterfly.Core.Auth + name: Butterfly.Core.Auth + nameWithType: Butterfly.Core.Auth + fullName: Butterfly.Core.Auth +- uid: System.Object + commentId: T:System.Object + isExternal: true + name: Object + nameWithType: Object + fullName: System.Object +- uid: Butterfly.Core.Auth.IAuthenticator + commentId: T:Butterfly.Core.Auth.IAuthenticator + parent: Butterfly.Core.Auth + name: IAuthenticator + nameWithType: IAuthenticator + fullName: Butterfly.Core.Auth.IAuthenticator +- uid: Logger + isExternal: true + name: Logger + nameWithType: Logger + fullName: Logger +- uid: System.String + isExternal: true + name: String + nameWithType: String + fullName: System.String +- uid: Butterfly.Core.Database.IDatabase + commentId: T:Butterfly.Core.Database.IDatabase + parent: Butterfly.Core.Database + name: IDatabase + nameWithType: IDatabase + fullName: Butterfly.Core.Database.IDatabase +- uid: Butterfly.Core.Database + commentId: N:Butterfly.Core.Database + name: Butterfly.Core.Database + nameWithType: Butterfly.Core.Database + fullName: Butterfly.Core.Database +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.#ctor* + commentId: Overload:Butterfly.Core.Auth.UserRefTokenAuthenticator.#ctor + name: UserRefTokenAuthenticator + nameWithType: UserRefTokenAuthenticator.UserRefTokenAuthenticator + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.UserRefTokenAuthenticator +- uid: Butterfly.Core.Auth.AuthToken + commentId: T:Butterfly.Core.Auth.AuthToken + parent: Butterfly.Core.Auth + name: AuthToken + nameWithType: AuthToken + fullName: Butterfly.Core.Auth.AuthToken +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.AuthenticateAsync* + commentId: Overload:Butterfly.Core.Auth.UserRefTokenAuthenticator.AuthenticateAsync + name: AuthenticateAsync + nameWithType: UserRefTokenAuthenticator.AuthenticateAsync + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.AuthenticateAsync +- uid: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String,System.String) + commentId: M:Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String,System.String) + parent: Butterfly.Core.Auth.IAuthenticator + isExternal: true + name: AuthenticateAsync(String, String) + nameWithType: IAuthenticator.AuthenticateAsync(String, String) + fullName: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String, System.String) + spec.csharp: + - uid: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String,System.String) + name: AuthenticateAsync + nameWithType: IAuthenticator.AuthenticateAsync + fullName: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync + - name: ( + nameWithType: ( + fullName: ( + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true + - name: ) + nameWithType: ) + fullName: ) + spec.vb: + - uid: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String,System.String) + name: AuthenticateAsync + nameWithType: IAuthenticator.AuthenticateAsync + fullName: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync + - name: ( + nameWithType: ( + fullName: ( + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true + - name: ) + nameWithType: ) + fullName: ) +- uid: Task{Butterfly.Core.Auth.AuthToken} + commentId: '!:Task{Butterfly.Core.Auth.AuthToken}' + definition: Task`1 + name: Task + nameWithType: Task + fullName: Task + nameWithType.vb: Task(Of AuthToken) + fullName.vb: Task(Of Butterfly.Core.Auth.AuthToken) + name.vb: Task(Of AuthToken) + spec.csharp: + - uid: Task`1 + name: Task + nameWithType: Task + fullName: Task + isExternal: true + - name: < + nameWithType: < + fullName: < + - uid: Butterfly.Core.Auth.AuthToken + name: AuthToken + nameWithType: AuthToken + fullName: Butterfly.Core.Auth.AuthToken + - name: '>' + nameWithType: '>' + fullName: '>' + spec.vb: + - uid: Task`1 + name: Task + nameWithType: Task + fullName: Task + isExternal: true + - name: '(Of ' + nameWithType: '(Of ' + fullName: '(Of ' + - uid: Butterfly.Core.Auth.AuthToken + name: AuthToken + nameWithType: AuthToken + fullName: Butterfly.Core.Auth.AuthToken + - name: ) + nameWithType: ) + fullName: ) +- uid: Task`1 + isExternal: true + name: Task<> + nameWithType: Task<> + fullName: Task<> + nameWithType.vb: Task(Of ) + fullName.vb: Task(Of ) + name.vb: Task(Of ) + spec.csharp: + - uid: Task`1 + name: Task + nameWithType: Task + fullName: Task + isExternal: true + - name: < + nameWithType: < + fullName: < + - name: '' + nameWithType: '' + fullName: '' + - name: '>' + nameWithType: '>' + fullName: '>' + spec.vb: + - uid: Task`1 + name: Task + nameWithType: Task + fullName: Task + isExternal: true + - name: '(Of ' + nameWithType: '(Of ' + fullName: '(Of ' + - name: '' + nameWithType: '' + fullName: '' + - name: ) + nameWithType: ) + fullName: ) +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.InsertAsync* + commentId: Overload:Butterfly.Core.Auth.UserRefTokenAuthenticator.InsertAsync + name: InsertAsync + nameWithType: UserRefTokenAuthenticator.InsertAsync + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.InsertAsync +- uid: Butterfly.Core.Database.ITransaction + commentId: T:Butterfly.Core.Database.ITransaction + parent: Butterfly.Core.Database + name: ITransaction + nameWithType: ITransaction + fullName: Butterfly.Core.Database.ITransaction +- uid: DateTime + isExternal: true + name: DateTime + nameWithType: DateTime + fullName: DateTime +- uid: Task{System.String} + commentId: '!:Task{System.String}' + definition: Task`1 + name: Task + nameWithType: Task + fullName: Task + nameWithType.vb: Task(Of String) + fullName.vb: Task(Of System.String) + name.vb: Task(Of String) + spec.csharp: + - uid: Task`1 + name: Task + nameWithType: Task + fullName: Task + isExternal: true + - name: < + nameWithType: < + fullName: < + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true + - name: '>' + nameWithType: '>' + fullName: '>' + spec.vb: + - uid: Task`1 + name: Task + nameWithType: Task + fullName: Task + isExternal: true + - name: '(Of ' + nameWithType: '(Of ' + fullName: '(Of ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true + - name: ) + nameWithType: ) + fullName: ) +shouldSkipMarkup: true diff --git a/docfx_project/api/Butterfly.Core.Auth.yml b/docfx_project/api/Butterfly.Core.Auth.yml index 180b3d51..05af163f 100644 --- a/docfx_project/api/Butterfly.Core.Auth.yml +++ b/docfx_project/api/Butterfly.Core.Auth.yml @@ -6,6 +6,11 @@ items: children: - Butterfly.Core.Auth.AuthManager - Butterfly.Core.Auth.AuthToken + - Butterfly.Core.Auth.IAuthenticator + - Butterfly.Core.Auth.ShareCodeAuthenticator + - Butterfly.Core.Auth.ShareCodeToken + - Butterfly.Core.Auth.UserRefToken + - Butterfly.Core.Auth.UserRefTokenAuthenticator langs: - csharp - vb @@ -27,6 +32,35 @@ references: name: AuthToken nameWithType: AuthToken fullName: Butterfly.Core.Auth.AuthToken +- uid: Butterfly.Core.Auth.IAuthenticator + commentId: T:Butterfly.Core.Auth.IAuthenticator + parent: Butterfly.Core.Auth + name: IAuthenticator + nameWithType: IAuthenticator + fullName: Butterfly.Core.Auth.IAuthenticator +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator + commentId: T:Butterfly.Core.Auth.ShareCodeAuthenticator + parent: Butterfly.Core.Auth + name: ShareCodeAuthenticator + nameWithType: ShareCodeAuthenticator + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator +- uid: Butterfly.Core.Auth.ShareCodeToken + commentId: T:Butterfly.Core.Auth.ShareCodeToken + name: ShareCodeToken + nameWithType: ShareCodeToken + fullName: Butterfly.Core.Auth.ShareCodeToken +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator + commentId: T:Butterfly.Core.Auth.UserRefTokenAuthenticator + parent: Butterfly.Core.Auth + name: UserRefTokenAuthenticator + nameWithType: UserRefTokenAuthenticator + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator +- uid: Butterfly.Core.Auth.UserRefToken + commentId: T:Butterfly.Core.Auth.UserRefToken + parent: Butterfly.Core.Auth + name: UserRefToken + nameWithType: UserRefToken + fullName: Butterfly.Core.Auth.UserRefToken - uid: Butterfly.Core.Auth commentId: N:Butterfly.Core.Auth name: Butterfly.Core.Auth diff --git a/docfx_project/api/Butterfly.Core.Channel.BaseChannelConnection.yml b/docfx_project/api/Butterfly.Core.Channel.BaseChannelConnection.yml index 6a00574b..3e3a9247 100644 --- a/docfx_project/api/Butterfly.Core.Channel.BaseChannelConnection.yml +++ b/docfx_project/api/Butterfly.Core.Channel.BaseChannelConnection.yml @@ -21,7 +21,7 @@ items: - Butterfly.Core.Channel.BaseChannelConnection.LastHeartbeat - Butterfly.Core.Channel.BaseChannelConnection.logger - Butterfly.Core.Channel.BaseChannelConnection.monitor - - Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object) + - Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) - Butterfly.Core.Channel.BaseChannelConnection.ReceiveMessageAsync(System.String) - Butterfly.Core.Channel.BaseChannelConnection.RunAsync - Butterfly.Core.Channel.BaseChannelConnection.SendAsync(System.String) @@ -55,7 +55,9 @@ items: content: 'public abstract class BaseChannelConnection : object, IChannelConnection, IDisposable' content.vb: >- Public MustInherit Class BaseChannelConnection + Inherits Object + Implements IChannelConnection, IDisposable inheritance: - System.Object @@ -518,16 +520,16 @@ items: modifiers.vb: - Public - ReadOnly -- uid: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object) - commentId: M:Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object) - id: QueueMessage(System.String,System.String,System.Object) +- uid: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) + commentId: M:Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) + id: QueueMessage(System.String,System.String,System.Object,System.Boolean) parent: Butterfly.Core.Channel.BaseChannelConnection langs: - csharp - vb - name: QueueMessage(String, String, Object) - nameWithType: BaseChannelConnection.QueueMessage(String, String, Object) - fullName: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String, System.String, System.Object) + name: QueueMessage(String, String, Object, Boolean) + nameWithType: BaseChannelConnection.QueueMessage(String, String, Object, Boolean) + fullName: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String, System.String, System.Object, System.Boolean) type: Method source: remote: @@ -543,7 +545,7 @@ items: summary: "\nQueue an object to be sent over the channel to the client. The queue is processed by a background thread when the Channel is started.\n" example: [] syntax: - content: public void QueueMessage(string channelKey = null, string messageType = null, object data = null) + content: public void QueueMessage(string channelKey = null, string messageType = null, object data = null, bool immediate = false) parameters: - id: channelKey type: System.String @@ -554,10 +556,12 @@ items: - id: data type: System.Object description: The value to be sent to the client (will be converted to JSON) - content.vb: Public Sub QueueMessage(channelKey As String = Nothing, messageType As String = Nothing, data As Object = Nothing) + - id: immediate + type: System.Boolean + content.vb: Public Sub QueueMessage(channelKey As String = Nothing, messageType As String = Nothing, data As Object = Nothing, immediate As Boolean = False) overload: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage* implements: - - Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object) + - Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) modifiers.csharp: - public modifiers.vb: @@ -580,7 +584,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: started path: ../Butterfly.Core/Channel/BaseChannelConnection.cs - startLine: 86 + startLine: 91 assemblies: - Butterfly.Core namespace: Butterfly.Core.Channel @@ -611,7 +615,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: Start path: ../Butterfly.Core/Channel/BaseChannelConnection.cs - startLine: 87 + startLine: 92 assemblies: - Butterfly.Core namespace: Butterfly.Core.Channel @@ -648,7 +652,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: channelByKey path: ../Butterfly.Core/Channel/BaseChannelConnection.cs - startLine: 94 + startLine: 99 assemblies: - Butterfly.Core namespace: Butterfly.Core.Channel @@ -681,7 +685,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: RunAsync path: ../Butterfly.Core/Channel/BaseChannelConnection.cs - startLine: 96 + startLine: 101 assemblies: - Butterfly.Core namespace: Butterfly.Core.Channel @@ -713,7 +717,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: SendAsync path: ../Butterfly.Core/Channel/BaseChannelConnection.cs - startLine: 119 + startLine: 124 assemblies: - Butterfly.Core namespace: Butterfly.Core.Channel @@ -752,7 +756,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: ReceiveMessageAsync path: ../Butterfly.Core/Channel/BaseChannelConnection.cs - startLine: 121 + startLine: 126 assemblies: - Butterfly.Core namespace: Butterfly.Core.Channel @@ -787,7 +791,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: EMPTY_DICT path: ../Butterfly.Core/Channel/BaseChannelConnection.cs - startLine: 173 + startLine: 178 assemblies: - Butterfly.Core namespace: Butterfly.Core.Channel @@ -818,7 +822,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: SubscribeAsync path: ../Butterfly.Core/Channel/BaseChannelConnection.cs - startLine: 175 + startLine: 180 assemblies: - Butterfly.Core namespace: Butterfly.Core.Channel @@ -856,7 +860,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: UnsubscribeAll path: ../Butterfly.Core/Channel/BaseChannelConnection.cs - startLine: 212 + startLine: 217 assemblies: - Butterfly.Core namespace: Butterfly.Core.Channel @@ -886,7 +890,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: Unsubscribe path: ../Butterfly.Core/Channel/BaseChannelConnection.cs - startLine: 216 + startLine: 221 assemblies: - Butterfly.Core namespace: Butterfly.Core.Channel @@ -922,7 +926,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: Dispose path: ../Butterfly.Core/Channel/BaseChannelConnection.cs - startLine: 235 + startLine: 240 assemblies: - Butterfly.Core namespace: Butterfly.Core.Channel @@ -954,7 +958,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: DoDispose path: ../Butterfly.Core/Channel/BaseChannelConnection.cs - startLine: 257 + startLine: 262 assemblies: - Butterfly.Core namespace: Butterfly.Core.Channel @@ -1154,15 +1158,15 @@ references: name: QueueMessage nameWithType: BaseChannelConnection.QueueMessage fullName: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage -- uid: Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object) - commentId: M:Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object) +- uid: Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) + commentId: M:Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) parent: Butterfly.Core.Channel.IChannelConnection isExternal: true - name: QueueMessage(String, String, Object) - nameWithType: IChannelConnection.QueueMessage(String, String, Object) - fullName: Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String, System.String, System.Object) + name: QueueMessage(String, String, Object, Boolean) + nameWithType: IChannelConnection.QueueMessage(String, String, Object, Boolean) + fullName: Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String, System.String, System.Object, System.Boolean) spec.csharp: - - uid: Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object) + - uid: Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) name: QueueMessage nameWithType: IChannelConnection.QueueMessage fullName: Butterfly.Core.Channel.IChannelConnection.QueueMessage @@ -1190,11 +1194,19 @@ references: nameWithType: Object fullName: System.Object isExternal: true + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.Boolean + name: Boolean + nameWithType: Boolean + fullName: System.Boolean + isExternal: true - name: ) nameWithType: ) fullName: ) spec.vb: - - uid: Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object) + - uid: Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) name: QueueMessage nameWithType: IChannelConnection.QueueMessage fullName: Butterfly.Core.Channel.IChannelConnection.QueueMessage @@ -1222,6 +1234,14 @@ references: nameWithType: Object fullName: System.Object isExternal: true + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.Boolean + name: Boolean + nameWithType: Boolean + fullName: System.Boolean + isExternal: true - name: ) nameWithType: ) fullName: ) diff --git a/docfx_project/api/Butterfly.Core.Channel.BaseSubscriptionApi.yml b/docfx_project/api/Butterfly.Core.Channel.BaseSubscriptionApi.yml index 7d41fd1d..09f49f63 100644 --- a/docfx_project/api/Butterfly.Core.Channel.BaseSubscriptionApi.yml +++ b/docfx_project/api/Butterfly.Core.Channel.BaseSubscriptionApi.yml @@ -45,13 +45,14 @@ items: - Butterfly.Core namespace: Butterfly.Core.Channel summary: "\nBase class implementing . New implementations will normally extend this class.\n" - remarks: "\nListen for subscription requests to the todos channel...

\n
// Listen for subscribe requests...\n// - The handler must return an IDisposable object (gets disposed when the channel is unsubscribed)\n// - The handler can push data to the client by calling channel.Queue()\nsubscriptionApi.OnSubscribe("todos", (vars, channel) => {\n    return database.CreateAndStartDynamicView("todo", dataEventTransaction => channel.Queue(dataEventTransaction));\n});\nsubscriptionApi.Start();
\n" example: [] syntax: content: 'public abstract class BaseSubscriptionApi : object, ISubscriptionApi, IDisposable' content.vb: >- Public MustInherit Class BaseSubscriptionApi + Inherits Object + Implements ISubscriptionApi, IDisposable inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Channel.Channel.yml b/docfx_project/api/Butterfly.Core.Channel.Channel.yml index 9ab9ec82..4122c76e 100644 --- a/docfx_project/api/Butterfly.Core.Channel.Channel.yml +++ b/docfx_project/api/Butterfly.Core.Channel.Channel.yml @@ -42,6 +42,7 @@ items: content: 'public class Channel : IDisposable' content.vb: >- Public Class Channel + Inherits IDisposable inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Channel.ChannelSubscription.yml b/docfx_project/api/Butterfly.Core.Channel.ChannelSubscription.yml index 5b210bc9..063d22ff 100644 --- a/docfx_project/api/Butterfly.Core.Channel.ChannelSubscription.yml +++ b/docfx_project/api/Butterfly.Core.Channel.ChannelSubscription.yml @@ -34,6 +34,7 @@ items: content: 'public class ChannelSubscription : object' content.vb: >- Public Class ChannelSubscription + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Channel.IChannelConnection.yml b/docfx_project/api/Butterfly.Core.Channel.IChannelConnection.yml index 7e1b2081..cdaedb96 100644 --- a/docfx_project/api/Butterfly.Core.Channel.IChannelConnection.yml +++ b/docfx_project/api/Butterfly.Core.Channel.IChannelConnection.yml @@ -9,7 +9,7 @@ items: - Butterfly.Core.Channel.IChannelConnection.Created - Butterfly.Core.Channel.IChannelConnection.Id - Butterfly.Core.Channel.IChannelConnection.LastHeartbeat - - Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object) + - Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) - Butterfly.Core.Channel.IChannelConnection.Start(System.Object,System.String) langs: - csharp @@ -35,6 +35,7 @@ items: content: 'public interface IChannelConnection : IDisposable' content.vb: >- Public Interface IChannelConnection + Inherits IDisposable modifiers.csharp: - public @@ -205,16 +206,16 @@ items: type: System.String content.vb: Sub Start(authToken As Object, id As String) overload: Butterfly.Core.Channel.IChannelConnection.Start* -- uid: Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object) - commentId: M:Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object) - id: QueueMessage(System.String,System.String,System.Object) +- uid: Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) + commentId: M:Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) + id: QueueMessage(System.String,System.String,System.Object,System.Boolean) parent: Butterfly.Core.Channel.IChannelConnection langs: - csharp - vb - name: QueueMessage(String, String, Object) - nameWithType: IChannelConnection.QueueMessage(String, String, Object) - fullName: Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String, System.String, System.Object) + name: QueueMessage(String, String, Object, Boolean) + nameWithType: IChannelConnection.QueueMessage(String, String, Object, Boolean) + fullName: Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String, System.String, System.Object, System.Boolean) type: Method source: remote: @@ -228,7 +229,7 @@ items: - Butterfly.Core namespace: Butterfly.Core.Channel syntax: - content: void QueueMessage(string channelKey = null, string messageType = null, object data = null) + content: void QueueMessage(string channelKey = null, string messageType = null, object data = null, bool immediate = false) parameters: - id: channelKey type: System.String @@ -236,7 +237,9 @@ items: type: System.String - id: data type: System.Object - content.vb: Sub QueueMessage(channelKey As String = Nothing, messageType As String = Nothing, data As Object = Nothing) + - id: immediate + type: System.Boolean + content.vb: Sub QueueMessage(channelKey As String = Nothing, messageType As String = Nothing, data As Object = Nothing, immediate As Boolean = False) overload: Butterfly.Core.Channel.IChannelConnection.QueueMessage* references: - uid: Butterfly.Core.Channel @@ -290,4 +293,9 @@ references: name: QueueMessage nameWithType: IChannelConnection.QueueMessage fullName: Butterfly.Core.Channel.IChannelConnection.QueueMessage +- uid: System.Boolean + isExternal: true + name: Boolean + nameWithType: Boolean + fullName: System.Boolean shouldSkipMarkup: true diff --git a/docfx_project/api/Butterfly.Core.Channel.ISubscriptionApi.yml b/docfx_project/api/Butterfly.Core.Channel.ISubscriptionApi.yml index f16cd6ac..a488992a 100644 --- a/docfx_project/api/Butterfly.Core.Channel.ISubscriptionApi.yml +++ b/docfx_project/api/Butterfly.Core.Channel.ISubscriptionApi.yml @@ -35,6 +35,7 @@ items: content: 'public interface ISubscriptionApi : IDisposable' content.vb: >- Public Interface ISubscriptionApi + Inherits IDisposable modifiers.csharp: - public diff --git a/docfx_project/api/Butterfly.Core.Database.BaseDatabase.yml b/docfx_project/api/Butterfly.Core.Database.BaseDatabase.yml index c9c8af3b..f60f8f3a 100644 --- a/docfx_project/api/Butterfly.Core.Database.BaseDatabase.yml +++ b/docfx_project/api/Butterfly.Core.Database.BaseDatabase.yml @@ -83,7 +83,9 @@ items: content: 'public abstract class BaseDatabase : object, IDatabase' content.vb: >- Public MustInherit Class BaseDatabase + Inherits Object + Implements IDatabase inheritance: - System.Object @@ -1056,7 +1058,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: SelectValuesAsync path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 175 + startLine: 177 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1100,7 +1102,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: SelectRowAsync path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 183 + startLine: 184 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1139,7 +1141,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: SelectRowsAsync path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 191 + startLine: 192 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1178,7 +1180,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: SelectRowsAsync path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 196 + startLine: 197 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1217,7 +1219,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: DoSelectRowsAsync path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 203 + startLine: 204 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1261,7 +1263,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: QueryValueAsync path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 205 + startLine: 206 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1307,7 +1309,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: QueryRowAsync path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 212 + startLine: 213 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1346,7 +1348,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: QueryRowsAsync path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 219 + startLine: 220 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1385,7 +1387,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: DoQueryRowsAsync path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 240 + startLine: 241 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1427,7 +1429,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: InsertAndCommitAsync path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 242 + startLine: 243 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1473,7 +1475,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: UpdateAndCommitAsync path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 251 + startLine: 252 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1512,7 +1514,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: DeleteAndCommitAsync path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 260 + startLine: 261 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1551,7 +1553,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: BeginTransaction path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 269 + startLine: 270 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1585,7 +1587,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: BeginTransactionAsync path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 275 + startLine: 276 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1619,7 +1621,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: CreateTransaction path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 281 + startLine: 282 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1653,7 +1655,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: getDefaultValueByFieldName path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 283 + startLine: 284 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1686,7 +1688,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: SetDefaultValue path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 285 + startLine: 286 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1728,7 +1730,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: getOverrideValueByFieldName path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 308 + startLine: 309 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1761,7 +1763,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: SetOverrideValue path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 310 + startLine: 311 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1803,7 +1805,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: inputPreprocessors path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 333 + startLine: 334 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1836,7 +1838,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: AddInputPreprocessor path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 335 + startLine: 336 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1874,7 +1876,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: RemapTypeInputPreprocessor path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 345 + startLine: 346 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1916,7 +1918,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: CopyFieldValueInputPreprocessor path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 355 + startLine: 356 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1955,7 +1957,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: PARSE_TYPE path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 366 + startLine: 367 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1990,7 +1992,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: ConvertMySqlType path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 368 + startLine: 369 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -2027,7 +2029,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: CreateDynamicViewSet path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 410 + startLine: 411 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -2067,7 +2069,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: CreateDynamicViewSet path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 414 + startLine: 415 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -2107,7 +2109,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: CreateAndStartDynamicViewAsync path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 418 + startLine: 419 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -2155,7 +2157,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: CreateAndStartDynamicViewAsync path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 424 + startLine: 425 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database diff --git a/docfx_project/api/Butterfly.Core.Database.BaseStatement.yml b/docfx_project/api/Butterfly.Core.Database.BaseStatement.yml index 5100c9a5..4cbf738b 100644 --- a/docfx_project/api/Butterfly.Core.Database.BaseStatement.yml +++ b/docfx_project/api/Butterfly.Core.Database.BaseStatement.yml @@ -39,6 +39,7 @@ items: content: 'public abstract class BaseStatement : object' content.vb: >- Public MustInherit Class BaseStatement + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.BaseTransaction.yml b/docfx_project/api/Butterfly.Core.Database.BaseTransaction.yml index f0e7462d..49a595ce 100644 --- a/docfx_project/api/Butterfly.Core.Database.BaseTransaction.yml +++ b/docfx_project/api/Butterfly.Core.Database.BaseTransaction.yml @@ -30,8 +30,8 @@ items: - Butterfly.Core.Database.BaseTransaction.GetKeyValue(Butterfly.Core.Database.TableIndex,System.Collections.Generic.Dictionary{System.String,System.Object},System.Collections.Generic.Dictionary{System.String,System.Object},Butterfly.Core.Database.StatementEqualsRef[],Butterfly.Core.Database.TableIndex,System.String) - Butterfly.Core.Database.BaseTransaction.InsertAsync(Butterfly.Core.Database.InsertStatement,System.Object,System.Boolean) - Butterfly.Core.Database.BaseTransaction.InsertAsync``1(System.String,System.Object,System.Boolean) - - Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task}) - - Butterfly.Core.Database.BaseTransaction.onCommits + - Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task},System.String) + - Butterfly.Core.Database.BaseTransaction.onCommitRefs - Butterfly.Core.Database.BaseTransaction.Rollback - Butterfly.Core.Database.BaseTransaction.SynchronizeAsync(System.String,System.Collections.Generic.Dictionary{System.String,System.Object}[],System.Collections.Generic.Dictionary{System.String,System.Object}[],System.String[]) - Butterfly.Core.Database.BaseTransaction.TruncateAsync(System.String) @@ -61,7 +61,9 @@ items: content: 'public abstract class BaseTransaction : object, ITransaction, IDisposable' content.vb: >- Public MustInherit Class BaseTransaction + Inherits Object + Implements ITransaction, IDisposable inheritance: - System.Object @@ -148,33 +150,33 @@ items: modifiers.vb: - Protected - ReadOnly -- uid: Butterfly.Core.Database.BaseTransaction.onCommits - commentId: F:Butterfly.Core.Database.BaseTransaction.onCommits - id: onCommits +- uid: Butterfly.Core.Database.BaseTransaction.onCommitRefs + commentId: F:Butterfly.Core.Database.BaseTransaction.onCommitRefs + id: onCommitRefs parent: Butterfly.Core.Database.BaseTransaction langs: - csharp - vb - name: onCommits - nameWithType: BaseTransaction.onCommits - fullName: Butterfly.Core.Database.BaseTransaction.onCommits + name: onCommitRefs + nameWithType: BaseTransaction.onCommitRefs + fullName: Butterfly.Core.Database.BaseTransaction.onCommitRefs type: Field source: remote: path: Butterfly.Core/Database/BaseTransaction.cs branch: master repo: https://github.com/firesharkstudios/Butterfly.git - id: onCommits + id: onCommitRefs path: ../Butterfly.Core/Database/BaseTransaction.cs startLine: 24 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database syntax: - content: protected readonly List> onCommits + content: protected readonly List onCommitRefs return: - type: List{Func{Task}} - content.vb: Protected ReadOnly onCommits As List(Of Func(Of Task)) + type: List{Butterfly.Core.Database.OnCommitRef} + content.vb: Protected ReadOnly onCommitRefs As List(Of OnCommitRef) modifiers.csharp: - protected - readonly @@ -1092,16 +1094,16 @@ items: - public modifiers.vb: - Public -- uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task}) - commentId: M:Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task}) - id: OnCommit(Func{Task}) +- uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task},System.String) + commentId: M:Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task},System.String) + id: OnCommit(Func{Task},System.String) parent: Butterfly.Core.Database.BaseTransaction langs: - csharp - vb - name: OnCommit(Func) - nameWithType: BaseTransaction.OnCommit(Func) - fullName: Butterfly.Core.Database.BaseTransaction.OnCommit(Func) + name: OnCommit(Func, String) + nameWithType: BaseTransaction.OnCommit(Func, String) + fullName: Butterfly.Core.Database.BaseTransaction.OnCommit(Func, System.String) type: Method source: remote: @@ -1110,26 +1112,28 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: OnCommit path: ../Butterfly.Core/Database/BaseTransaction.cs - startLine: 259 + startLine: 263 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database syntax: - content: public void OnCommit(Func onCommit) + content: public void OnCommit(Func onCommit, string key = null) parameters: - id: onCommit type: Func{Task} - content.vb: Public Sub OnCommit(onCommit As Func(Of Task)) + - id: key + type: System.String + content.vb: Public Sub OnCommit(onCommit As Func(Of Task), key As String = Nothing) overload: Butterfly.Core.Database.BaseTransaction.OnCommit* implements: - - Butterfly.Core.Database.ITransaction.OnCommit(Func{Task}) - nameWithType.vb: BaseTransaction.OnCommit(Func(Of Task)) + - Butterfly.Core.Database.ITransaction.OnCommit(Func{Task},System.String) + nameWithType.vb: BaseTransaction.OnCommit(Func(Of Task), String) modifiers.csharp: - public modifiers.vb: - Public - fullName.vb: Butterfly.Core.Database.BaseTransaction.OnCommit(Func(Of Task)) - name.vb: OnCommit(Func(Of Task)) + fullName.vb: Butterfly.Core.Database.BaseTransaction.OnCommit(Func(Of Task), System.String) + name.vb: OnCommit(Func(Of Task), String) - uid: Butterfly.Core.Database.BaseTransaction.DoCommitAsync commentId: M:Butterfly.Core.Database.BaseTransaction.DoCommitAsync id: DoCommitAsync @@ -1148,7 +1152,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: DoCommitAsync path: ../Butterfly.Core/Database/BaseTransaction.cs - startLine: 263 + startLine: 267 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1182,7 +1186,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: Rollback path: ../Butterfly.Core/Database/BaseTransaction.cs - startLine: 266 + startLine: 270 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1214,7 +1218,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: DoRollback path: ../Butterfly.Core/Database/BaseTransaction.cs - startLine: 270 + startLine: 274 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1246,7 +1250,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: Dispose path: ../Butterfly.Core/Database/BaseTransaction.cs - startLine: 274 + startLine: 278 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -1368,15 +1372,15 @@ references: - name: ) nameWithType: ) fullName: ) -- uid: List{Func{Task}} - commentId: '!:List{Func{Task}}' +- uid: List{Butterfly.Core.Database.OnCommitRef} + commentId: '!:List{Butterfly.Core.Database.OnCommitRef}' definition: List`1 - name: List> - nameWithType: List> - fullName: List> - nameWithType.vb: List(Of Func(Of Task)) - fullName.vb: List(Of Func(Of Task)) - name.vb: List(Of Func(Of Task)) + name: List + nameWithType: List + fullName: List + nameWithType.vb: List(Of OnCommitRef) + fullName.vb: List(Of Butterfly.Core.Database.OnCommitRef) + name.vb: List(Of OnCommitRef) spec.csharp: - uid: List`1 name: List @@ -1386,22 +1390,10 @@ references: - name: < nameWithType: < fullName: < - - uid: Func`1 - name: Func - nameWithType: Func - fullName: Func - isExternal: true - - name: < - nameWithType: < - fullName: < - - uid: Task - name: Task - nameWithType: Task - fullName: Task - isExternal: true - - name: '>' - nameWithType: '>' - fullName: '>' + - uid: Butterfly.Core.Database.OnCommitRef + name: OnCommitRef + nameWithType: OnCommitRef + fullName: Butterfly.Core.Database.OnCommitRef - name: '>' nameWithType: '>' fullName: '>' @@ -1414,22 +1406,10 @@ references: - name: '(Of ' nameWithType: '(Of ' fullName: '(Of ' - - uid: Func`1 - name: Func - nameWithType: Func - fullName: Func - isExternal: true - - name: '(Of ' - nameWithType: '(Of ' - fullName: '(Of ' - - uid: Task - name: Task - nameWithType: Task - fullName: Task - isExternal: true - - name: ) - nameWithType: ) - fullName: ) + - uid: Butterfly.Core.Database.OnCommitRef + name: OnCommitRef + nameWithType: OnCommitRef + fullName: Butterfly.Core.Database.OnCommitRef - name: ) nameWithType: ) fullName: ) @@ -2545,18 +2525,18 @@ references: name: OnCommit nameWithType: BaseTransaction.OnCommit fullName: Butterfly.Core.Database.BaseTransaction.OnCommit -- uid: Butterfly.Core.Database.ITransaction.OnCommit(Func{Task}) - commentId: M:Butterfly.Core.Database.ITransaction.OnCommit(Func{Task}) +- uid: Butterfly.Core.Database.ITransaction.OnCommit(Func{Task},System.String) + commentId: M:Butterfly.Core.Database.ITransaction.OnCommit(Func{Task},System.String) parent: Butterfly.Core.Database.ITransaction isExternal: true - name: OnCommit(Func) - nameWithType: ITransaction.OnCommit(Func) - fullName: Butterfly.Core.Database.ITransaction.OnCommit(Func) - nameWithType.vb: ITransaction.OnCommit(Func(Of Task)) - fullName.vb: Butterfly.Core.Database.ITransaction.OnCommit(Func(Of Task)) - name.vb: OnCommit(Func(Of Task)) + name: OnCommit(Func, String) + nameWithType: ITransaction.OnCommit(Func, String) + fullName: Butterfly.Core.Database.ITransaction.OnCommit(Func, System.String) + nameWithType.vb: ITransaction.OnCommit(Func(Of Task), String) + fullName.vb: Butterfly.Core.Database.ITransaction.OnCommit(Func(Of Task), System.String) + name.vb: OnCommit(Func(Of Task), String) spec.csharp: - - uid: Butterfly.Core.Database.ITransaction.OnCommit(Func{Task}) + - uid: Butterfly.Core.Database.ITransaction.OnCommit(Func{Task},System.String) name: OnCommit nameWithType: ITransaction.OnCommit fullName: Butterfly.Core.Database.ITransaction.OnCommit @@ -2579,11 +2559,19 @@ references: - name: '>' nameWithType: '>' fullName: '>' + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true - name: ) nameWithType: ) fullName: ) spec.vb: - - uid: Butterfly.Core.Database.ITransaction.OnCommit(Func{Task}) + - uid: Butterfly.Core.Database.ITransaction.OnCommit(Func{Task},System.String) name: OnCommit nameWithType: ITransaction.OnCommit fullName: Butterfly.Core.Database.ITransaction.OnCommit @@ -2606,6 +2594,14 @@ references: - name: ) nameWithType: ) fullName: ) + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true - name: ) nameWithType: ) fullName: ) diff --git a/docfx_project/api/Butterfly.Core.Database.CreateStatement.yml b/docfx_project/api/Butterfly.Core.Database.CreateStatement.yml index 6357677b..8f3d01b5 100644 --- a/docfx_project/api/Butterfly.Core.Database.CreateStatement.yml +++ b/docfx_project/api/Butterfly.Core.Database.CreateStatement.yml @@ -37,6 +37,7 @@ items: content: 'public class CreateStatement : BaseStatement' content.vb: >- Public Class CreateStatement + Inherits BaseStatement inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.DataEventTransactionListener.yml b/docfx_project/api/Butterfly.Core.Database.DataEventTransactionListener.yml index 551516a0..9f32dc7f 100644 --- a/docfx_project/api/Butterfly.Core.Database.DataEventTransactionListener.yml +++ b/docfx_project/api/Butterfly.Core.Database.DataEventTransactionListener.yml @@ -33,6 +33,7 @@ items: content: 'public class DataEventTransactionListener : object' content.vb: >- Public Class DataEventTransactionListener + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.DatabaseException.yml b/docfx_project/api/Butterfly.Core.Database.DatabaseException.yml index ed5f53d0..b2517b21 100644 --- a/docfx_project/api/Butterfly.Core.Database.DatabaseException.yml +++ b/docfx_project/api/Butterfly.Core.Database.DatabaseException.yml @@ -20,7 +20,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: DatabaseException path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 466 + startLine: 467 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -28,6 +28,7 @@ items: content: 'public class DatabaseException : Exception' content.vb: >- Public Class DatabaseException + Inherits Exception inheritance: - System.Object @@ -58,7 +59,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: .ctor path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 467 + startLine: 468 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database diff --git a/docfx_project/api/Butterfly.Core.Database.DeleteStatement.yml b/docfx_project/api/Butterfly.Core.Database.DeleteStatement.yml index 73b21418..84c6e83d 100644 --- a/docfx_project/api/Butterfly.Core.Database.DeleteStatement.yml +++ b/docfx_project/api/Butterfly.Core.Database.DeleteStatement.yml @@ -35,6 +35,7 @@ items: content: 'public class DeleteStatement : BaseStatement' content.vb: >- Public Class DeleteStatement + Inherits BaseStatement inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.DuplicateKeyDatabaseException.yml b/docfx_project/api/Butterfly.Core.Database.DuplicateKeyDatabaseException.yml index 82d94ce0..39c140a5 100644 --- a/docfx_project/api/Butterfly.Core.Database.DuplicateKeyDatabaseException.yml +++ b/docfx_project/api/Butterfly.Core.Database.DuplicateKeyDatabaseException.yml @@ -20,7 +20,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: DuplicateKeyDatabaseException path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 471 + startLine: 472 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -28,6 +28,7 @@ items: content: 'public class DuplicateKeyDatabaseException : DatabaseException' content.vb: >- Public Class DuplicateKeyDatabaseException + Inherits DatabaseException inheritance: - System.Object @@ -56,7 +57,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: .ctor path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 472 + startLine: 473 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database diff --git a/docfx_project/api/Butterfly.Core.Database.Dynamic.BaseDynamicParam.yml b/docfx_project/api/Butterfly.Core.Database.Dynamic.BaseDynamicParam.yml index f2231f77..ff2b29c7 100644 --- a/docfx_project/api/Butterfly.Core.Database.Dynamic.BaseDynamicParam.yml +++ b/docfx_project/api/Butterfly.Core.Database.Dynamic.BaseDynamicParam.yml @@ -37,7 +37,9 @@ items: content: 'public abstract class BaseDynamicParam : object, IDynamicParam' content.vb: >- Public MustInherit Class BaseDynamicParam + Inherits Object + Implements IDynamicParam inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.Dynamic.ChildDynamicParam.yml b/docfx_project/api/Butterfly.Core.Database.Dynamic.ChildDynamicParam.yml index da9633f9..90407f3a 100644 --- a/docfx_project/api/Butterfly.Core.Database.Dynamic.ChildDynamicParam.yml +++ b/docfx_project/api/Butterfly.Core.Database.Dynamic.ChildDynamicParam.yml @@ -32,6 +32,7 @@ items: content: 'public class ChildDynamicParam : object' content.vb: >- Public Class ChildDynamicParam + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.Dynamic.DynamicView.yml b/docfx_project/api/Butterfly.Core.Database.Dynamic.DynamicView.yml index 559961bb..621ad7a8 100644 --- a/docfx_project/api/Butterfly.Core.Database.Dynamic.DynamicView.yml +++ b/docfx_project/api/Butterfly.Core.Database.Dynamic.DynamicView.yml @@ -40,6 +40,7 @@ items: content: 'public class DynamicView : object' content.vb: >- Public Class DynamicView + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.Dynamic.DynamicViewSet.yml b/docfx_project/api/Butterfly.Core.Database.Dynamic.DynamicViewSet.yml index 2ff55463..24de16c3 100644 --- a/docfx_project/api/Butterfly.Core.Database.Dynamic.DynamicViewSet.yml +++ b/docfx_project/api/Butterfly.Core.Database.Dynamic.DynamicViewSet.yml @@ -53,6 +53,7 @@ items: content: 'public class DynamicViewSet : IDisposable' content.vb: >- Public Class DynamicViewSet + Inherits IDisposable inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.Dynamic.MultiValueDynamicParam.yml b/docfx_project/api/Butterfly.Core.Database.Dynamic.MultiValueDynamicParam.yml index 0e639d46..ec28a251 100644 --- a/docfx_project/api/Butterfly.Core.Database.Dynamic.MultiValueDynamicParam.yml +++ b/docfx_project/api/Butterfly.Core.Database.Dynamic.MultiValueDynamicParam.yml @@ -34,7 +34,9 @@ items: content: 'public class MultiValueDynamicParam : BaseDynamicParam, IDynamicParam' content.vb: >- Public Class MultiValueDynamicParam + Inherits BaseDynamicParam + Implements IDynamicParam inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.Dynamic.SingleValueDynamicParam.yml b/docfx_project/api/Butterfly.Core.Database.Dynamic.SingleValueDynamicParam.yml index c66f4f3b..885bdeec 100644 --- a/docfx_project/api/Butterfly.Core.Database.Dynamic.SingleValueDynamicParam.yml +++ b/docfx_project/api/Butterfly.Core.Database.Dynamic.SingleValueDynamicParam.yml @@ -34,7 +34,9 @@ items: content: 'public class SingleValueDynamicParam : BaseDynamicParam, IDynamicParam' content.vb: >- Public Class SingleValueDynamicParam + Inherits BaseDynamicParam + Implements IDynamicParam inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.Event.DataEvent.yml b/docfx_project/api/Butterfly.Core.Database.Event.DataEvent.yml index 06b0f8b7..0f0ed4da 100644 --- a/docfx_project/api/Butterfly.Core.Database.Event.DataEvent.yml +++ b/docfx_project/api/Butterfly.Core.Database.Event.DataEvent.yml @@ -33,6 +33,7 @@ items: content: 'public class DataEvent : object' content.vb: >- Public Class DataEvent + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.Event.DataEventTransaction.yml b/docfx_project/api/Butterfly.Core.Database.Event.DataEventTransaction.yml index 63c9a741..886378ef 100644 --- a/docfx_project/api/Butterfly.Core.Database.Event.DataEventTransaction.yml +++ b/docfx_project/api/Butterfly.Core.Database.Event.DataEventTransaction.yml @@ -37,6 +37,7 @@ items: content: 'public class DataEventTransaction : object' content.vb: >- Public Class DataEventTransaction + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.Event.InitialBeginDataEvent.yml b/docfx_project/api/Butterfly.Core.Database.Event.InitialBeginDataEvent.yml index 6b7f58eb..87b14fb9 100644 --- a/docfx_project/api/Butterfly.Core.Database.Event.InitialBeginDataEvent.yml +++ b/docfx_project/api/Butterfly.Core.Database.Event.InitialBeginDataEvent.yml @@ -31,6 +31,7 @@ items: content: 'public class InitialBeginDataEvent : DataEvent' content.vb: >- Public Class InitialBeginDataEvent + Inherits DataEvent inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.Event.InitialEndDataEvent.yml b/docfx_project/api/Butterfly.Core.Database.Event.InitialEndDataEvent.yml index df78358f..4d3ff608 100644 --- a/docfx_project/api/Butterfly.Core.Database.Event.InitialEndDataEvent.yml +++ b/docfx_project/api/Butterfly.Core.Database.Event.InitialEndDataEvent.yml @@ -28,6 +28,7 @@ items: content: 'public class InitialEndDataEvent : DataEvent' content.vb: >- Public Class InitialEndDataEvent + Inherits DataEvent inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.Event.KeyValueDataEvent.yml b/docfx_project/api/Butterfly.Core.Database.Event.KeyValueDataEvent.yml index 3d0ad4fb..5e0b5edf 100644 --- a/docfx_project/api/Butterfly.Core.Database.Event.KeyValueDataEvent.yml +++ b/docfx_project/api/Butterfly.Core.Database.Event.KeyValueDataEvent.yml @@ -31,6 +31,7 @@ items: content: 'public class KeyValueDataEvent : DataEvent' content.vb: >- Public Class KeyValueDataEvent + Inherits DataEvent inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.Event.RecordDataEvent.yml b/docfx_project/api/Butterfly.Core.Database.Event.RecordDataEvent.yml index 4877d7ed..e24a195f 100644 --- a/docfx_project/api/Butterfly.Core.Database.Event.RecordDataEvent.yml +++ b/docfx_project/api/Butterfly.Core.Database.Event.RecordDataEvent.yml @@ -30,6 +30,7 @@ items: content: 'public class RecordDataEvent : KeyValueDataEvent' content.vb: >- Public Class RecordDataEvent + Inherits KeyValueDataEvent inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.ITransaction.yml b/docfx_project/api/Butterfly.Core.Database.ITransaction.yml index 5a77082d..df3d541c 100644 --- a/docfx_project/api/Butterfly.Core.Database.ITransaction.yml +++ b/docfx_project/api/Butterfly.Core.Database.ITransaction.yml @@ -10,7 +10,7 @@ items: - Butterfly.Core.Database.ITransaction.Database - Butterfly.Core.Database.ITransaction.DeleteAsync(System.String,System.Object) - Butterfly.Core.Database.ITransaction.InsertAsync``1(System.String,System.Object,System.Boolean) - - Butterfly.Core.Database.ITransaction.OnCommit(Func{Task}) + - Butterfly.Core.Database.ITransaction.OnCommit(Func{Task},System.String) - Butterfly.Core.Database.ITransaction.Rollback - Butterfly.Core.Database.ITransaction.SynchronizeAsync(System.String,System.Collections.Generic.Dictionary{System.String,System.Object}[],System.Collections.Generic.Dictionary{System.String,System.Object}[],System.String[]) - Butterfly.Core.Database.ITransaction.TruncateAsync(System.String) @@ -39,6 +39,7 @@ items: content: 'public interface ITransaction : IDisposable' content.vb: >- Public Interface ITransaction + Inherits IDisposable modifiers.csharp: - public @@ -345,16 +346,16 @@ items: type: Task content.vb: Function CommitAsync As Task overload: Butterfly.Core.Database.ITransaction.CommitAsync* -- uid: Butterfly.Core.Database.ITransaction.OnCommit(Func{Task}) - commentId: M:Butterfly.Core.Database.ITransaction.OnCommit(Func{Task}) - id: OnCommit(Func{Task}) +- uid: Butterfly.Core.Database.ITransaction.OnCommit(Func{Task},System.String) + commentId: M:Butterfly.Core.Database.ITransaction.OnCommit(Func{Task},System.String) + id: OnCommit(Func{Task},System.String) parent: Butterfly.Core.Database.ITransaction langs: - csharp - vb - name: OnCommit(Func) - nameWithType: ITransaction.OnCommit(Func) - fullName: Butterfly.Core.Database.ITransaction.OnCommit(Func) + name: OnCommit(Func, String) + nameWithType: ITransaction.OnCommit(Func, String) + fullName: Butterfly.Core.Database.ITransaction.OnCommit(Func, System.String) type: Method source: remote: @@ -363,23 +364,26 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: OnCommit path: ../Butterfly.Core/Database/ITransaction.cs - startLine: 148 + startLine: 149 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database summary: "\nRegister a callback that is invoked when the transaction is successfully committed\n" example: [] syntax: - content: void OnCommit(Func onCommit) + content: void OnCommit(Func onCommit, string key = null) parameters: - id: onCommit type: Func{Task} description: '' - content.vb: Sub OnCommit(onCommit As Func(Of Task)) + - id: key + type: System.String + description: Provide a key if you need to ensure only one onCommit instance is executed with that key + content.vb: Sub OnCommit(onCommit As Func(Of Task), key As String = Nothing) overload: Butterfly.Core.Database.ITransaction.OnCommit* - nameWithType.vb: ITransaction.OnCommit(Func(Of Task)) - fullName.vb: Butterfly.Core.Database.ITransaction.OnCommit(Func(Of Task)) - name.vb: OnCommit(Func(Of Task)) + nameWithType.vb: ITransaction.OnCommit(Func(Of Task), String) + fullName.vb: Butterfly.Core.Database.ITransaction.OnCommit(Func(Of Task), System.String) + name.vb: OnCommit(Func(Of Task), String) - uid: Butterfly.Core.Database.ITransaction.Rollback commentId: M:Butterfly.Core.Database.ITransaction.Rollback id: Rollback @@ -398,7 +402,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: Rollback path: ../Butterfly.Core/Database/ITransaction.cs - startLine: 153 + startLine: 154 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database diff --git a/docfx_project/api/Butterfly.Core.Database.InsertStatement.yml b/docfx_project/api/Butterfly.Core.Database.InsertStatement.yml index cf8cf879..bf9b98e6 100644 --- a/docfx_project/api/Butterfly.Core.Database.InsertStatement.yml +++ b/docfx_project/api/Butterfly.Core.Database.InsertStatement.yml @@ -39,6 +39,7 @@ items: content: 'public class InsertStatement : BaseStatement' content.vb: >- Public Class InsertStatement + Inherits BaseStatement inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.Memory.MemoryDatabase.yml b/docfx_project/api/Butterfly.Core.Database.Memory.MemoryDatabase.yml index 1bfec8df..a6c24ac1 100644 --- a/docfx_project/api/Butterfly.Core.Database.Memory.MemoryDatabase.yml +++ b/docfx_project/api/Butterfly.Core.Database.Memory.MemoryDatabase.yml @@ -35,13 +35,14 @@ items: assemblies: - Butterfly.Core namespace: Butterfly.Core.Database.Memory - summary: "\nBase class implementing . New implementations will normally extend this class.\n" example: [] syntax: content: 'public class MemoryDatabase : BaseDatabase, IDatabase' content.vb: >- Public Class MemoryDatabase + Inherits BaseDatabase + Implements IDatabase inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.Memory.MemoryTable.yml b/docfx_project/api/Butterfly.Core.Database.Memory.MemoryTable.yml index e5f3ba37..8a458fb2 100644 --- a/docfx_project/api/Butterfly.Core.Database.Memory.MemoryTable.yml +++ b/docfx_project/api/Butterfly.Core.Database.Memory.MemoryTable.yml @@ -29,6 +29,7 @@ items: content: 'public class MemoryTable : Table' content.vb: >- Public Class MemoryTable + Inherits Table inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.Memory.MemoryTransaction.yml b/docfx_project/api/Butterfly.Core.Database.Memory.MemoryTransaction.yml index d2dbe2d3..2a77fcb5 100644 --- a/docfx_project/api/Butterfly.Core.Database.Memory.MemoryTransaction.yml +++ b/docfx_project/api/Butterfly.Core.Database.Memory.MemoryTransaction.yml @@ -37,13 +37,14 @@ items: assemblies: - Butterfly.Core namespace: Butterfly.Core.Database.Memory - summary: "\nBase class implementing .\n" example: [] syntax: content: 'public class MemoryTransaction : BaseTransaction, ITransaction, IDisposable' content.vb: >- Public Class MemoryTransaction + Inherits BaseTransaction + Implements ITransaction, IDisposable inheritance: - System.Object @@ -54,7 +55,7 @@ items: inheritedMembers: - Butterfly.Core.Database.BaseTransaction.database - Butterfly.Core.Database.BaseTransaction.dataEvents - - Butterfly.Core.Database.BaseTransaction.onCommits + - Butterfly.Core.Database.BaseTransaction.onCommitRefs - Butterfly.Core.Database.BaseTransaction.Database - Butterfly.Core.Database.BaseTransaction.Create(Butterfly.Core.Database.CreateStatement) - Butterfly.Core.Database.BaseTransaction.CreateAsync(Butterfly.Core.Database.CreateStatement) @@ -69,7 +70,7 @@ items: - Butterfly.Core.Database.BaseTransaction.TruncateAsync(System.String) - Butterfly.Core.Database.BaseTransaction.Commit - Butterfly.Core.Database.BaseTransaction.CommitAsync - - Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task}) + - Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task},System.String) - Butterfly.Core.Database.BaseTransaction.Rollback modifiers.csharp: - public @@ -631,12 +632,12 @@ references: name: dataEvents nameWithType: BaseTransaction.dataEvents fullName: Butterfly.Core.Database.BaseTransaction.dataEvents -- uid: Butterfly.Core.Database.BaseTransaction.onCommits - commentId: F:Butterfly.Core.Database.BaseTransaction.onCommits +- uid: Butterfly.Core.Database.BaseTransaction.onCommitRefs + commentId: F:Butterfly.Core.Database.BaseTransaction.onCommitRefs parent: Butterfly.Core.Database.BaseTransaction - name: onCommits - nameWithType: BaseTransaction.onCommits - fullName: Butterfly.Core.Database.BaseTransaction.onCommits + name: onCommitRefs + nameWithType: BaseTransaction.onCommitRefs + fullName: Butterfly.Core.Database.BaseTransaction.onCommitRefs - uid: Butterfly.Core.Database.BaseTransaction.Database commentId: P:Butterfly.Core.Database.BaseTransaction.Database parent: Butterfly.Core.Database.BaseTransaction @@ -1528,18 +1529,18 @@ references: - name: ) nameWithType: ) fullName: ) -- uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task}) - commentId: M:Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task}) +- uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task},System.String) + commentId: M:Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task},System.String) parent: Butterfly.Core.Database.BaseTransaction isExternal: true - name: OnCommit(Func) - nameWithType: BaseTransaction.OnCommit(Func) - fullName: Butterfly.Core.Database.BaseTransaction.OnCommit(Func) - nameWithType.vb: BaseTransaction.OnCommit(Func(Of Task)) - fullName.vb: Butterfly.Core.Database.BaseTransaction.OnCommit(Func(Of Task)) - name.vb: OnCommit(Func(Of Task)) + name: OnCommit(Func, String) + nameWithType: BaseTransaction.OnCommit(Func, String) + fullName: Butterfly.Core.Database.BaseTransaction.OnCommit(Func, System.String) + nameWithType.vb: BaseTransaction.OnCommit(Func(Of Task), String) + fullName.vb: Butterfly.Core.Database.BaseTransaction.OnCommit(Func(Of Task), System.String) + name.vb: OnCommit(Func(Of Task), String) spec.csharp: - - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task}) + - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task},System.String) name: OnCommit nameWithType: BaseTransaction.OnCommit fullName: Butterfly.Core.Database.BaseTransaction.OnCommit @@ -1562,11 +1563,19 @@ references: - name: '>' nameWithType: '>' fullName: '>' + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true - name: ) nameWithType: ) fullName: ) spec.vb: - - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task}) + - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task},System.String) name: OnCommit nameWithType: BaseTransaction.OnCommit fullName: Butterfly.Core.Database.BaseTransaction.OnCommit @@ -1589,6 +1598,14 @@ references: - name: ) nameWithType: ) fullName: ) + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true - name: ) nameWithType: ) fullName: ) diff --git a/docfx_project/api/Butterfly.Core.Database.OnCommitRef.yml b/docfx_project/api/Butterfly.Core.Database.OnCommitRef.yml new file mode 100644 index 00000000..45d4e010 --- /dev/null +++ b/docfx_project/api/Butterfly.Core.Database.OnCommitRef.yml @@ -0,0 +1,250 @@ +### YamlMime:ManagedReference +items: +- uid: Butterfly.Core.Database.OnCommitRef + commentId: T:Butterfly.Core.Database.OnCommitRef + id: OnCommitRef + parent: Butterfly.Core.Database + children: + - Butterfly.Core.Database.OnCommitRef.#ctor(Func{Task},System.String) + - Butterfly.Core.Database.OnCommitRef.key + - Butterfly.Core.Database.OnCommitRef.onCommit + langs: + - csharp + - vb + name: OnCommitRef + nameWithType: OnCommitRef + fullName: Butterfly.Core.Database.OnCommitRef + type: Class + source: + remote: + path: Butterfly.Core/Database/OnCommitRef.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: OnCommitRef + path: ../Butterfly.Core/Database/OnCommitRef.cs + startLine: 4 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Database + syntax: + content: 'public class OnCommitRef : object' + content.vb: >- + Public Class OnCommitRef + + Inherits Object + inheritance: + - System.Object + modifiers.csharp: + - public + - class + modifiers.vb: + - Public + - Class +- uid: Butterfly.Core.Database.OnCommitRef.onCommit + commentId: F:Butterfly.Core.Database.OnCommitRef.onCommit + id: onCommit + parent: Butterfly.Core.Database.OnCommitRef + langs: + - csharp + - vb + name: onCommit + nameWithType: OnCommitRef.onCommit + fullName: Butterfly.Core.Database.OnCommitRef.onCommit + type: Field + source: + remote: + path: Butterfly.Core/Database/OnCommitRef.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: onCommit + path: ../Butterfly.Core/Database/OnCommitRef.cs + startLine: 5 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Database + syntax: + content: public readonly Func onCommit + return: + type: Func{Task} + content.vb: Public ReadOnly onCommit As Func(Of Task) + modifiers.csharp: + - public + - readonly + modifiers.vb: + - Public + - ReadOnly +- uid: Butterfly.Core.Database.OnCommitRef.key + commentId: F:Butterfly.Core.Database.OnCommitRef.key + id: key + parent: Butterfly.Core.Database.OnCommitRef + langs: + - csharp + - vb + name: key + nameWithType: OnCommitRef.key + fullName: Butterfly.Core.Database.OnCommitRef.key + type: Field + source: + remote: + path: Butterfly.Core/Database/OnCommitRef.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: key + path: ../Butterfly.Core/Database/OnCommitRef.cs + startLine: 6 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Database + syntax: + content: public readonly string key + return: + type: System.String + content.vb: Public ReadOnly key As String + modifiers.csharp: + - public + - readonly + modifiers.vb: + - Public + - ReadOnly +- uid: Butterfly.Core.Database.OnCommitRef.#ctor(Func{Task},System.String) + commentId: M:Butterfly.Core.Database.OnCommitRef.#ctor(Func{Task},System.String) + id: '#ctor(Func{Task},System.String)' + parent: Butterfly.Core.Database.OnCommitRef + langs: + - csharp + - vb + name: OnCommitRef(Func, String) + nameWithType: OnCommitRef.OnCommitRef(Func, String) + fullName: Butterfly.Core.Database.OnCommitRef.OnCommitRef(Func, System.String) + type: Constructor + source: + remote: + path: Butterfly.Core/Database/OnCommitRef.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: .ctor + path: ../Butterfly.Core/Database/OnCommitRef.cs + startLine: 7 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Database + syntax: + content: public OnCommitRef(Func onCommit, string key) + parameters: + - id: onCommit + type: Func{Task} + - id: key + type: System.String + content.vb: Public Sub New(onCommit As Func(Of Task), key As String) + overload: Butterfly.Core.Database.OnCommitRef.#ctor* + nameWithType.vb: OnCommitRef.OnCommitRef(Func(Of Task), String) + modifiers.csharp: + - public + modifiers.vb: + - Public + fullName.vb: Butterfly.Core.Database.OnCommitRef.OnCommitRef(Func(Of Task), System.String) + name.vb: OnCommitRef(Func(Of Task), String) +references: +- uid: Butterfly.Core.Database + commentId: N:Butterfly.Core.Database + name: Butterfly.Core.Database + nameWithType: Butterfly.Core.Database + fullName: Butterfly.Core.Database +- uid: System.Object + commentId: T:System.Object + isExternal: true + name: Object + nameWithType: Object + fullName: System.Object +- uid: Func{Task} + commentId: '!:Func{Task}' + definition: Func`1 + name: Func + nameWithType: Func + fullName: Func + nameWithType.vb: Func(Of Task) + fullName.vb: Func(Of Task) + name.vb: Func(Of Task) + spec.csharp: + - uid: Func`1 + name: Func + nameWithType: Func + fullName: Func + isExternal: true + - name: < + nameWithType: < + fullName: < + - uid: Task + name: Task + nameWithType: Task + fullName: Task + isExternal: true + - name: '>' + nameWithType: '>' + fullName: '>' + spec.vb: + - uid: Func`1 + name: Func + nameWithType: Func + fullName: Func + isExternal: true + - name: '(Of ' + nameWithType: '(Of ' + fullName: '(Of ' + - uid: Task + name: Task + nameWithType: Task + fullName: Task + isExternal: true + - name: ) + nameWithType: ) + fullName: ) +- uid: Func`1 + isExternal: true + name: Func<> + nameWithType: Func<> + fullName: Func<> + nameWithType.vb: Func(Of ) + fullName.vb: Func(Of ) + name.vb: Func(Of ) + spec.csharp: + - uid: Func`1 + name: Func + nameWithType: Func + fullName: Func + isExternal: true + - name: < + nameWithType: < + fullName: < + - name: '' + nameWithType: '' + fullName: '' + - name: '>' + nameWithType: '>' + fullName: '>' + spec.vb: + - uid: Func`1 + name: Func + nameWithType: Func + fullName: Func + isExternal: true + - name: '(Of ' + nameWithType: '(Of ' + fullName: '(Of ' + - name: '' + nameWithType: '' + fullName: '' + - name: ) + nameWithType: ) + fullName: ) +- uid: System.String + isExternal: true + name: String + nameWithType: String + fullName: System.String +- uid: Butterfly.Core.Database.OnCommitRef.#ctor* + commentId: Overload:Butterfly.Core.Database.OnCommitRef.#ctor + name: OnCommitRef + nameWithType: OnCommitRef.OnCommitRef + fullName: Butterfly.Core.Database.OnCommitRef.OnCommitRef +shouldSkipMarkup: true diff --git a/docfx_project/api/Butterfly.Core.Database.SelectStatement.yml b/docfx_project/api/Butterfly.Core.Database.SelectStatement.yml index 6191c871..d1d3d679 100644 --- a/docfx_project/api/Butterfly.Core.Database.SelectStatement.yml +++ b/docfx_project/api/Butterfly.Core.Database.SelectStatement.yml @@ -41,6 +41,7 @@ items: content: 'public class SelectStatement : BaseStatement' content.vb: >- Public Class SelectStatement + Inherits BaseStatement inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.StatementEqualsRef.yml b/docfx_project/api/Butterfly.Core.Database.StatementEqualsRef.yml index 9f0c0070..af416cda 100644 --- a/docfx_project/api/Butterfly.Core.Database.StatementEqualsRef.yml +++ b/docfx_project/api/Butterfly.Core.Database.StatementEqualsRef.yml @@ -34,6 +34,7 @@ items: content: 'public class StatementEqualsRef : object' content.vb: >- Public Class StatementEqualsRef + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.StatementFieldRef.yml b/docfx_project/api/Butterfly.Core.Database.StatementFieldRef.yml index fd716104..3e4863a0 100644 --- a/docfx_project/api/Butterfly.Core.Database.StatementFieldRef.yml +++ b/docfx_project/api/Butterfly.Core.Database.StatementFieldRef.yml @@ -37,6 +37,7 @@ items: content: 'public class StatementFieldRef : object' content.vb: >- Public Class StatementFieldRef + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.StatementFromRef.yml b/docfx_project/api/Butterfly.Core.Database.StatementFromRef.yml index 0042f427..776dd10a 100644 --- a/docfx_project/api/Butterfly.Core.Database.StatementFromRef.yml +++ b/docfx_project/api/Butterfly.Core.Database.StatementFromRef.yml @@ -38,6 +38,7 @@ items: content: 'public class StatementFromRef : object' content.vb: >- Public Class StatementFromRef + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.Table.yml b/docfx_project/api/Butterfly.Core.Database.Table.yml index c2d23cf0..9890bd5b 100644 --- a/docfx_project/api/Butterfly.Core.Database.Table.yml +++ b/docfx_project/api/Butterfly.Core.Database.Table.yml @@ -39,6 +39,7 @@ items: content: 'public class Table : object' content.vb: >- Public Class Table + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.TableFieldDef.yml b/docfx_project/api/Butterfly.Core.Database.TableFieldDef.yml index b4b40ec8..4a137e8f 100644 --- a/docfx_project/api/Butterfly.Core.Database.TableFieldDef.yml +++ b/docfx_project/api/Butterfly.Core.Database.TableFieldDef.yml @@ -36,6 +36,7 @@ items: content: 'public class TableFieldDef : object' content.vb: >- Public Class TableFieldDef + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.TableIndex.yml b/docfx_project/api/Butterfly.Core.Database.TableIndex.yml index aa08fb2a..24044d39 100644 --- a/docfx_project/api/Butterfly.Core.Database.TableIndex.yml +++ b/docfx_project/api/Butterfly.Core.Database.TableIndex.yml @@ -32,6 +32,7 @@ items: content: 'public class TableIndex : object' content.vb: >- Public Class TableIndex + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.UnableToConnectDatabaseException.yml b/docfx_project/api/Butterfly.Core.Database.UnableToConnectDatabaseException.yml index baef9cec..9e1b1bad 100644 --- a/docfx_project/api/Butterfly.Core.Database.UnableToConnectDatabaseException.yml +++ b/docfx_project/api/Butterfly.Core.Database.UnableToConnectDatabaseException.yml @@ -20,7 +20,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: UnableToConnectDatabaseException path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 476 + startLine: 477 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database @@ -28,6 +28,7 @@ items: content: 'public class UnableToConnectDatabaseException : DatabaseException' content.vb: >- Public Class UnableToConnectDatabaseException + Inherits DatabaseException inheritance: - System.Object @@ -56,7 +57,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: .ctor path: ../Butterfly.Core/Database/BaseDatabase.cs - startLine: 477 + startLine: 478 assemblies: - Butterfly.Core namespace: Butterfly.Core.Database diff --git a/docfx_project/api/Butterfly.Core.Database.UpdateStatement.yml b/docfx_project/api/Butterfly.Core.Database.UpdateStatement.yml index 79dcca55..80275c3e 100644 --- a/docfx_project/api/Butterfly.Core.Database.UpdateStatement.yml +++ b/docfx_project/api/Butterfly.Core.Database.UpdateStatement.yml @@ -36,6 +36,7 @@ items: content: 'public class UpdateStatement : BaseStatement' content.vb: >- Public Class UpdateStatement + Inherits BaseStatement inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Database.yml b/docfx_project/api/Butterfly.Core.Database.yml index 2aa5cba4..5f55b0ab 100644 --- a/docfx_project/api/Butterfly.Core.Database.yml +++ b/docfx_project/api/Butterfly.Core.Database.yml @@ -17,6 +17,7 @@ items: - Butterfly.Core.Database.InsertStatement - Butterfly.Core.Database.ITransaction - Butterfly.Core.Database.JoinType + - Butterfly.Core.Database.OnCommitRef - Butterfly.Core.Database.SelectStatement - Butterfly.Core.Database.StatementEqualsRef - Butterfly.Core.Database.StatementFieldRef @@ -88,6 +89,11 @@ references: name: ITransaction nameWithType: ITransaction fullName: Butterfly.Core.Database.ITransaction +- uid: Butterfly.Core.Database.OnCommitRef + commentId: T:Butterfly.Core.Database.OnCommitRef + name: OnCommitRef + nameWithType: OnCommitRef + fullName: Butterfly.Core.Database.OnCommitRef - uid: Butterfly.Core.Database.BaseStatement commentId: T:Butterfly.Core.Database.BaseStatement parent: Butterfly.Core.Database diff --git a/docfx_project/api/Butterfly.Core.Notify.BaseNotifyMessageSender.yml b/docfx_project/api/Butterfly.Core.Notify.BaseNotifyMessageSender.yml index b7d9d71b..568d5cb6 100644 --- a/docfx_project/api/Butterfly.Core.Notify.BaseNotifyMessageSender.yml +++ b/docfx_project/api/Butterfly.Core.Notify.BaseNotifyMessageSender.yml @@ -33,13 +33,15 @@ items: content: 'public abstract class BaseNotifyMessageSender : object, INotifyMessageSender' content.vb: >- Public MustInherit Class BaseNotifyMessageSender + Inherits Object + Implements INotifyMessageSender inheritance: - System.Object derivedClasses: - Butterfly.Aws.AwsSesEmailNotifyMessageSender - - Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender + - Butterfly.Twilio.TwilioPhoneNotifyMessageSender implements: - Butterfly.Core.Notify.INotifyMessageSender modifiers.csharp: diff --git a/docfx_project/api/Butterfly.Core.Notify.NotifyManager.NotifyMessageEngine.yml b/docfx_project/api/Butterfly.Core.Notify.NotifyManager.NotifyMessageEngine.yml index 7435b3df..9313a80f 100644 --- a/docfx_project/api/Butterfly.Core.Notify.NotifyManager.NotifyMessageEngine.yml +++ b/docfx_project/api/Butterfly.Core.Notify.NotifyManager.NotifyMessageEngine.yml @@ -30,7 +30,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: NotifyMessageEngine path: ../Butterfly.Core/Notify/NotifyManager.cs - startLine: 209 + startLine: 201 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify @@ -38,6 +38,7 @@ items: content: 'protected class NotifyMessageEngine : object' content.vb: >- Protected Class NotifyMessageEngine + Inherits Object inheritance: - System.Object @@ -65,7 +66,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: notifyMessageType path: ../Butterfly.Core/Notify/NotifyManager.cs - startLine: 210 + startLine: 202 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify @@ -98,7 +99,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: notifyMessageSender path: ../Butterfly.Core/Notify/NotifyManager.cs - startLine: 211 + startLine: 203 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify @@ -131,7 +132,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: database path: ../Butterfly.Core/Notify/NotifyManager.cs - startLine: 212 + startLine: 204 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify @@ -164,7 +165,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: notifyMessageTableName path: ../Butterfly.Core/Notify/NotifyManager.cs - startLine: 213 + startLine: 205 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify @@ -197,7 +198,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: cancellationTokenSource path: ../Butterfly.Core/Notify/NotifyManager.cs - startLine: 215 + startLine: 207 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify @@ -228,7 +229,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: .ctor path: ../Butterfly.Core/Notify/NotifyManager.cs - startLine: 217 + startLine: 209 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify @@ -267,7 +268,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: started path: ../Butterfly.Core/Notify/NotifyManager.cs - startLine: 224 + startLine: 216 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify @@ -298,7 +299,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: Start path: ../Butterfly.Core/Notify/NotifyManager.cs - startLine: 226 + startLine: 218 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify @@ -328,7 +329,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: Stop path: ../Butterfly.Core/Notify/NotifyManager.cs - startLine: 232 + startLine: 224 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify @@ -358,7 +359,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: Queue path: ../Butterfly.Core/Notify/NotifyManager.cs - startLine: 237 + startLine: 229 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify @@ -410,7 +411,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: Pulse path: ../Butterfly.Core/Notify/NotifyManager.cs - startLine: 252 + startLine: 244 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify diff --git a/docfx_project/api/Butterfly.Core.Notify.NotifyManager.yml b/docfx_project/api/Butterfly.Core.Notify.NotifyManager.yml index c82ca65e..0d5e864b 100644 --- a/docfx_project/api/Butterfly.Core.Notify.NotifyManager.yml +++ b/docfx_project/api/Butterfly.Core.Notify.NotifyManager.yml @@ -14,11 +14,10 @@ items: - Butterfly.Core.Notify.NotifyManager.notifyMessageTableName - Butterfly.Core.Notify.NotifyManager.notifyVerifyTableName - Butterfly.Core.Notify.NotifyManager.PHONE_FIELD_VALIDATOR - - Butterfly.Core.Notify.NotifyManager.phoneTextNotifyMessageEngine + - Butterfly.Core.Notify.NotifyManager.phoneNotifyMessageEngine - Butterfly.Core.Notify.NotifyManager.Queue(Butterfly.Core.Database.ITransaction,Butterfly.Core.Notify.NotifyMessage[]) - Butterfly.Core.Notify.NotifyManager.RANDOM - Butterfly.Core.Notify.NotifyManager.SendVerifyCodeAsync(System.String) - - Butterfly.Core.Notify.NotifyManager.SetupWebApi(Butterfly.Core.WebApi.IWebApi,System.String) - Butterfly.Core.Notify.NotifyManager.Start - Butterfly.Core.Notify.NotifyManager.Stop - Butterfly.Core.Notify.NotifyManager.Validate(System.String) @@ -26,7 +25,7 @@ items: - Butterfly.Core.Notify.NotifyManager.verifyCodeExpiresSeconds - Butterfly.Core.Notify.NotifyManager.verifyCodeFormat - Butterfly.Core.Notify.NotifyManager.verifyEmailNotifyMessage - - Butterfly.Core.Notify.NotifyManager.verifyPhoneTextNotifyMessage + - Butterfly.Core.Notify.NotifyManager.verifyPhoneNotifyMessage langs: - csharp - vb @@ -49,6 +48,7 @@ items: content: 'public class NotifyManager : object' content.vb: >- Public Class NotifyManager + Inherits Object inheritance: - System.Object @@ -159,33 +159,33 @@ items: modifiers.vb: - Protected - ReadOnly -- uid: Butterfly.Core.Notify.NotifyManager.phoneTextNotifyMessageEngine - commentId: F:Butterfly.Core.Notify.NotifyManager.phoneTextNotifyMessageEngine - id: phoneTextNotifyMessageEngine +- uid: Butterfly.Core.Notify.NotifyManager.phoneNotifyMessageEngine + commentId: F:Butterfly.Core.Notify.NotifyManager.phoneNotifyMessageEngine + id: phoneNotifyMessageEngine parent: Butterfly.Core.Notify.NotifyManager langs: - csharp - vb - name: phoneTextNotifyMessageEngine - nameWithType: NotifyManager.phoneTextNotifyMessageEngine - fullName: Butterfly.Core.Notify.NotifyManager.phoneTextNotifyMessageEngine + name: phoneNotifyMessageEngine + nameWithType: NotifyManager.phoneNotifyMessageEngine + fullName: Butterfly.Core.Notify.NotifyManager.phoneNotifyMessageEngine type: Field source: remote: path: Butterfly.Core/Notify/NotifyManager.cs branch: master repo: https://github.com/firesharkstudios/Butterfly.git - id: phoneTextNotifyMessageEngine + id: phoneNotifyMessageEngine path: ../Butterfly.Core/Notify/NotifyManager.cs startLine: 32 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify syntax: - content: protected readonly NotifyManager.NotifyMessageEngine phoneTextNotifyMessageEngine + content: protected readonly NotifyManager.NotifyMessageEngine phoneNotifyMessageEngine return: type: Butterfly.Core.Notify.NotifyManager.NotifyMessageEngine - content.vb: Protected ReadOnly phoneTextNotifyMessageEngine As NotifyManager.NotifyMessageEngine + content.vb: Protected ReadOnly phoneNotifyMessageEngine As NotifyManager.NotifyMessageEngine modifiers.csharp: - protected - readonly @@ -324,33 +324,33 @@ items: modifiers.vb: - Protected - ReadOnly -- uid: Butterfly.Core.Notify.NotifyManager.verifyPhoneTextNotifyMessage - commentId: F:Butterfly.Core.Notify.NotifyManager.verifyPhoneTextNotifyMessage - id: verifyPhoneTextNotifyMessage +- uid: Butterfly.Core.Notify.NotifyManager.verifyPhoneNotifyMessage + commentId: F:Butterfly.Core.Notify.NotifyManager.verifyPhoneNotifyMessage + id: verifyPhoneNotifyMessage parent: Butterfly.Core.Notify.NotifyManager langs: - csharp - vb - name: verifyPhoneTextNotifyMessage - nameWithType: NotifyManager.verifyPhoneTextNotifyMessage - fullName: Butterfly.Core.Notify.NotifyManager.verifyPhoneTextNotifyMessage + name: verifyPhoneNotifyMessage + nameWithType: NotifyManager.verifyPhoneNotifyMessage + fullName: Butterfly.Core.Notify.NotifyManager.verifyPhoneNotifyMessage type: Field source: remote: path: Butterfly.Core/Notify/NotifyManager.cs branch: master repo: https://github.com/firesharkstudios/Butterfly.git - id: verifyPhoneTextNotifyMessage + id: verifyPhoneNotifyMessage path: ../Butterfly.Core/Notify/NotifyManager.cs startLine: 39 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify syntax: - content: protected readonly NotifyMessage verifyPhoneTextNotifyMessage + content: protected readonly NotifyMessage verifyPhoneNotifyMessage return: type: Butterfly.Core.Notify.NotifyMessage - content.vb: Protected ReadOnly verifyPhoneTextNotifyMessage As NotifyMessage + content.vb: Protected ReadOnly verifyPhoneNotifyMessage As NotifyMessage modifiers.csharp: - protected - readonly @@ -518,13 +518,13 @@ items: - Butterfly.Core namespace: Butterfly.Core.Notify syntax: - content: public NotifyManager(IDatabase database, INotifyMessageSender emailNotifyMessageSender = null, INotifyMessageSender phoneTextNotifyMessageSender = null, string notifyMessageTableName = "notify_message", string notifyVerifyTableName = "notify_verify", int verifyCodeExpiresSeconds = 3600, string verifyEmailFile = null, string verifyPhoneTextFile = null, string verifyCodeFormat = "###-###") + content: public NotifyManager(IDatabase database, INotifyMessageSender emailNotifyMessageSender = null, INotifyMessageSender phoneNotifyMessageSender = null, string notifyMessageTableName = "notify_message", string notifyVerifyTableName = "notify_verify", int verifyCodeExpiresSeconds = 3600, string verifyEmailFile = null, string verifyPhoneTextFile = null, string verifyCodeFormat = "###-###") parameters: - id: database type: Butterfly.Core.Database.IDatabase - id: emailNotifyMessageSender type: Butterfly.Core.Notify.INotifyMessageSender - - id: phoneTextNotifyMessageSender + - id: phoneNotifyMessageSender type: Butterfly.Core.Notify.INotifyMessageSender - id: notifyMessageTableName type: System.String @@ -538,7 +538,7 @@ items: type: System.String - id: verifyCodeFormat type: System.String - content.vb: Public Sub New(database As IDatabase, emailNotifyMessageSender As INotifyMessageSender = Nothing, phoneTextNotifyMessageSender As INotifyMessageSender = Nothing, notifyMessageTableName As String = "notify_message", notifyVerifyTableName As String = "notify_verify", verifyCodeExpiresSeconds As Integer = 3600, verifyEmailFile As String = Nothing, verifyPhoneTextFile As String = Nothing, verifyCodeFormat As String = "###-###") + content.vb: Public Sub New(database As IDatabase, emailNotifyMessageSender As INotifyMessageSender = Nothing, phoneNotifyMessageSender As INotifyMessageSender = Nothing, notifyMessageTableName As String = "notify_message", notifyVerifyTableName As String = "notify_verify", verifyCodeExpiresSeconds As Integer = 3600, verifyEmailFile As String = Nothing, verifyPhoneTextFile As String = Nothing, verifyCodeFormat As String = "###-###") overload: Butterfly.Core.Notify.NotifyManager.#ctor* modifiers.csharp: - public @@ -604,41 +604,6 @@ items: - public modifiers.vb: - Public -- uid: Butterfly.Core.Notify.NotifyManager.SetupWebApi(Butterfly.Core.WebApi.IWebApi,System.String) - commentId: M:Butterfly.Core.Notify.NotifyManager.SetupWebApi(Butterfly.Core.WebApi.IWebApi,System.String) - id: SetupWebApi(Butterfly.Core.WebApi.IWebApi,System.String) - parent: Butterfly.Core.Notify.NotifyManager - langs: - - csharp - - vb - name: SetupWebApi(IWebApi, String) - nameWithType: NotifyManager.SetupWebApi(IWebApi, String) - fullName: Butterfly.Core.Notify.NotifyManager.SetupWebApi(Butterfly.Core.WebApi.IWebApi, System.String) - type: Method - source: - remote: - path: Butterfly.Core/Notify/NotifyManager.cs - branch: master - repo: https://github.com/firesharkstudios/Butterfly.git - id: SetupWebApi - path: ../Butterfly.Core/Notify/NotifyManager.cs - startLine: 70 - assemblies: - - Butterfly.Core - namespace: Butterfly.Core.Notify - syntax: - content: public void SetupWebApi(IWebApi webApi, string pathPrefix = "/api/notify") - parameters: - - id: webApi - type: Butterfly.Core.WebApi.IWebApi - - id: pathPrefix - type: System.String - content.vb: Public Sub SetupWebApi(webApi As IWebApi, pathPrefix As String = "/api/notify") - overload: Butterfly.Core.Notify.NotifyManager.SetupWebApi* - modifiers.csharp: - - public - modifiers.vb: - - Public - uid: Butterfly.Core.Notify.NotifyManager.SendVerifyCodeAsync(System.String) commentId: M:Butterfly.Core.Notify.NotifyManager.SendVerifyCodeAsync(System.String) id: SendVerifyCodeAsync(System.String) @@ -657,7 +622,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: SendVerifyCodeAsync path: ../Butterfly.Core/Notify/NotifyManager.cs - startLine: 78 + startLine: 70 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify @@ -692,7 +657,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: VerifyAsync path: ../Butterfly.Core/Notify/NotifyManager.cs - startLine: 137 + startLine: 129 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify @@ -729,7 +694,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: Validate path: ../Butterfly.Core/Notify/NotifyManager.cs - startLine: 152 + startLine: 144 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify @@ -766,7 +731,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: Queue path: ../Butterfly.Core/Notify/NotifyManager.cs - startLine: 168 + startLine: 160 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify @@ -811,7 +776,7 @@ items: repo: https://github.com/firesharkstudios/Butterfly.git id: DetectNotifyMessageType path: ../Butterfly.Core/Notify/NotifyManager.cs - startLine: 202 + startLine: 194 assemblies: - Butterfly.Core namespace: Butterfly.Core.Notify @@ -922,22 +887,6 @@ references: name: Stop nameWithType: NotifyManager.Stop fullName: Butterfly.Core.Notify.NotifyManager.Stop -- uid: Butterfly.Core.Notify.NotifyManager.SetupWebApi* - commentId: Overload:Butterfly.Core.Notify.NotifyManager.SetupWebApi - name: SetupWebApi - nameWithType: NotifyManager.SetupWebApi - fullName: Butterfly.Core.Notify.NotifyManager.SetupWebApi -- uid: Butterfly.Core.WebApi.IWebApi - commentId: T:Butterfly.Core.WebApi.IWebApi - parent: Butterfly.Core.WebApi - name: IWebApi - nameWithType: IWebApi - fullName: Butterfly.Core.WebApi.IWebApi -- uid: Butterfly.Core.WebApi - commentId: N:Butterfly.Core.WebApi - name: Butterfly.Core.WebApi - nameWithType: Butterfly.Core.WebApi - fullName: Butterfly.Core.WebApi - uid: Butterfly.Core.Notify.NotifyManager.SendVerifyCodeAsync* commentId: Overload:Butterfly.Core.Notify.NotifyManager.SendVerifyCodeAsync name: SendVerifyCodeAsync diff --git a/docfx_project/api/Butterfly.Core.Notify.NotifyMessage.yml b/docfx_project/api/Butterfly.Core.Notify.NotifyMessage.yml index e9fb5544..89a15bde 100644 --- a/docfx_project/api/Butterfly.Core.Notify.NotifyMessage.yml +++ b/docfx_project/api/Butterfly.Core.Notify.NotifyMessage.yml @@ -42,6 +42,7 @@ items: content: 'public class NotifyMessage : object' content.vb: >- Public Class NotifyMessage + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Notify.Test.NotifyTest.yml b/docfx_project/api/Butterfly.Core.Notify.Test.NotifyTest.yml index 2f6835e9..54c5becf 100644 --- a/docfx_project/api/Butterfly.Core.Notify.Test.NotifyTest.yml +++ b/docfx_project/api/Butterfly.Core.Notify.Test.NotifyTest.yml @@ -7,7 +7,7 @@ items: children: - Butterfly.Core.Notify.Test.NotifyTest.ParseNotifyMessage - Butterfly.Core.Notify.Test.NotifyTest.SendEmailNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender) - - Butterfly.Core.Notify.Test.NotifyTest.SendPhoneTextNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender) + - Butterfly.Core.Notify.Test.NotifyTest.SendPhoneNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender) langs: - csharp - vb @@ -30,6 +30,7 @@ items: content: 'public class NotifyTest : object' content.vb: >- Public Class NotifyTest + Inherits Object inheritance: - System.Object @@ -106,37 +107,37 @@ items: modifiers.vb: - Public - Shared -- uid: Butterfly.Core.Notify.Test.NotifyTest.SendPhoneTextNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender) - commentId: M:Butterfly.Core.Notify.Test.NotifyTest.SendPhoneTextNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender) - id: SendPhoneTextNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender) +- uid: Butterfly.Core.Notify.Test.NotifyTest.SendPhoneNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender) + commentId: M:Butterfly.Core.Notify.Test.NotifyTest.SendPhoneNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender) + id: SendPhoneNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender) parent: Butterfly.Core.Notify.Test.NotifyTest langs: - csharp - vb - name: SendPhoneTextNotifyMessage(INotifyMessageSender) - nameWithType: NotifyTest.SendPhoneTextNotifyMessage(INotifyMessageSender) - fullName: Butterfly.Core.Notify.Test.NotifyTest.SendPhoneTextNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender) + name: SendPhoneNotifyMessage(INotifyMessageSender) + nameWithType: NotifyTest.SendPhoneNotifyMessage(INotifyMessageSender) + fullName: Butterfly.Core.Notify.Test.NotifyTest.SendPhoneNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender) type: Method source: remote: path: Butterfly.Core.Test/NotifyTest.cs branch: master repo: https://github.com/firesharkstudios/Butterfly.git - id: SendPhoneTextNotifyMessage + id: SendPhoneNotifyMessage path: ../Butterfly.Core.Test/NotifyTest.cs startLine: 42 assemblies: - Butterfly.Core.Test namespace: Butterfly.Core.Notify.Test syntax: - content: public static Task SendPhoneTextNotifyMessage(INotifyMessageSender notifyMessageSender) + content: public static Task SendPhoneNotifyMessage(INotifyMessageSender notifyMessageSender) parameters: - id: notifyMessageSender type: Butterfly.Core.Notify.INotifyMessageSender return: type: Task - content.vb: Public Shared Function SendPhoneTextNotifyMessage(notifyMessageSender As INotifyMessageSender) As Task - overload: Butterfly.Core.Notify.Test.NotifyTest.SendPhoneTextNotifyMessage* + content.vb: Public Shared Function SendPhoneNotifyMessage(notifyMessageSender As INotifyMessageSender) As Task + overload: Butterfly.Core.Notify.Test.NotifyTest.SendPhoneNotifyMessage* modifiers.csharp: - public - static @@ -181,9 +182,9 @@ references: name: Butterfly.Core.Notify nameWithType: Butterfly.Core.Notify fullName: Butterfly.Core.Notify -- uid: Butterfly.Core.Notify.Test.NotifyTest.SendPhoneTextNotifyMessage* - commentId: Overload:Butterfly.Core.Notify.Test.NotifyTest.SendPhoneTextNotifyMessage - name: SendPhoneTextNotifyMessage - nameWithType: NotifyTest.SendPhoneTextNotifyMessage - fullName: Butterfly.Core.Notify.Test.NotifyTest.SendPhoneTextNotifyMessage +- uid: Butterfly.Core.Notify.Test.NotifyTest.SendPhoneNotifyMessage* + commentId: Overload:Butterfly.Core.Notify.Test.NotifyTest.SendPhoneNotifyMessage + name: SendPhoneNotifyMessage + nameWithType: NotifyTest.SendPhoneNotifyMessage + fullName: Butterfly.Core.Notify.Test.NotifyTest.SendPhoneNotifyMessage shouldSkipMarkup: true diff --git a/docfx_project/api/Butterfly.Core.Test.AuthTest.yml b/docfx_project/api/Butterfly.Core.Test.AuthTest.yml index bc210288..80c29f55 100644 --- a/docfx_project/api/Butterfly.Core.Test.AuthTest.yml +++ b/docfx_project/api/Butterfly.Core.Test.AuthTest.yml @@ -30,6 +30,7 @@ items: content: 'public class AuthTest : object' content.vb: >- Public Class AuthTest + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Test.ChannelUnitTest.yml b/docfx_project/api/Butterfly.Core.Test.ChannelUnitTest.yml index cdb70779..60dbd7fc 100644 --- a/docfx_project/api/Butterfly.Core.Test.ChannelUnitTest.yml +++ b/docfx_project/api/Butterfly.Core.Test.ChannelUnitTest.yml @@ -28,6 +28,7 @@ items: content: 'public class ChannelUnitTest : object' content.vb: >- Public Class ChannelUnitTest + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Test.DatabaseUnitTest.yml b/docfx_project/api/Butterfly.Core.Test.DatabaseUnitTest.yml index 14c8accc..5ac63f8d 100644 --- a/docfx_project/api/Butterfly.Core.Test.DatabaseUnitTest.yml +++ b/docfx_project/api/Butterfly.Core.Test.DatabaseUnitTest.yml @@ -35,6 +35,7 @@ items: content: 'public class DatabaseUnitTest : object' content.vb: >- Public Class DatabaseUnitTest + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Test.DynamicUnitTest.yml b/docfx_project/api/Butterfly.Core.Test.DynamicUnitTest.yml index 08ab6197..e4ed1798 100644 --- a/docfx_project/api/Butterfly.Core.Test.DynamicUnitTest.yml +++ b/docfx_project/api/Butterfly.Core.Test.DynamicUnitTest.yml @@ -30,6 +30,7 @@ items: content: 'public class DynamicUnitTest : object' content.vb: >- Public Class DynamicUnitTest + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Test.TestDisposable.yml b/docfx_project/api/Butterfly.Core.Test.TestDisposable.yml index 5e43ac06..5000573b 100644 --- a/docfx_project/api/Butterfly.Core.Test.TestDisposable.yml +++ b/docfx_project/api/Butterfly.Core.Test.TestDisposable.yml @@ -29,6 +29,7 @@ items: content: 'public class TestDisposable : IDisposable' content.vb: >- Public Class TestDisposable + Inherits IDisposable inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Test.WebApiUnitTest.yml b/docfx_project/api/Butterfly.Core.Test.WebApiUnitTest.yml index 7b2dd5f8..c52eae10 100644 --- a/docfx_project/api/Butterfly.Core.Test.WebApiUnitTest.yml +++ b/docfx_project/api/Butterfly.Core.Test.WebApiUnitTest.yml @@ -28,6 +28,7 @@ items: content: 'public class WebApiUnitTest : object' content.vb: >- Public Class WebApiUnitTest + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.CleverNameX.yml b/docfx_project/api/Butterfly.Core.Util.CleverNameX.yml index 060f2db8..fc123234 100644 --- a/docfx_project/api/Butterfly.Core.Util.CleverNameX.yml +++ b/docfx_project/api/Butterfly.Core.Util.CleverNameX.yml @@ -30,6 +30,7 @@ items: content: 'public static class CleverNameX : object' content.vb: >- Public Module CleverNameX + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.CommandLineUtil.yml b/docfx_project/api/Butterfly.Core.Util.CommandLineUtil.yml index 64944bc8..32783aeb 100644 --- a/docfx_project/api/Butterfly.Core.Util.CommandLineUtil.yml +++ b/docfx_project/api/Butterfly.Core.Util.CommandLineUtil.yml @@ -29,6 +29,7 @@ items: content: 'public static class CommandLineUtil : object' content.vb: >- Public Module CommandLineUtil + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.ConsoleUtil.yml b/docfx_project/api/Butterfly.Core.Util.ConsoleUtil.yml index a4921c76..1097706d 100644 --- a/docfx_project/api/Butterfly.Core.Util.ConsoleUtil.yml +++ b/docfx_project/api/Butterfly.Core.Util.ConsoleUtil.yml @@ -28,6 +28,7 @@ items: content: 'public static class ConsoleUtil : object' content.vb: >- Public Module ConsoleUtil + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.DateTimeX.yml b/docfx_project/api/Butterfly.Core.Util.DateTimeX.yml index e6ab2b2f..af067491 100644 --- a/docfx_project/api/Butterfly.Core.Util.DateTimeX.yml +++ b/docfx_project/api/Butterfly.Core.Util.DateTimeX.yml @@ -29,6 +29,7 @@ items: content: 'public static class DateTimeX : object' content.vb: >- Public Module DateTimeX + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.DictionaryItemDisposable-2.yml b/docfx_project/api/Butterfly.Core.Util.DictionaryItemDisposable-2.yml index 14dd9612..0cda4442 100644 --- a/docfx_project/api/Butterfly.Core.Util.DictionaryItemDisposable-2.yml +++ b/docfx_project/api/Butterfly.Core.Util.DictionaryItemDisposable-2.yml @@ -34,6 +34,7 @@ items: - id: U content.vb: >- Public Class DictionaryItemDisposable(Of T, U) + Inherits IDisposable inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.DictionaryX.yml b/docfx_project/api/Butterfly.Core.Util.DictionaryX.yml index e68e1777..99ade465 100644 --- a/docfx_project/api/Butterfly.Core.Util.DictionaryX.yml +++ b/docfx_project/api/Butterfly.Core.Util.DictionaryX.yml @@ -33,6 +33,7 @@ items: content: 'public static class DictionaryX : object' content.vb: >- Public Module DictionaryX + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.DynamicX.yml b/docfx_project/api/Butterfly.Core.Util.DynamicX.yml index 2a04b81e..19398dca 100644 --- a/docfx_project/api/Butterfly.Core.Util.DynamicX.yml +++ b/docfx_project/api/Butterfly.Core.Util.DynamicX.yml @@ -30,6 +30,7 @@ items: content: 'public static class DynamicX : object' content.vb: >- Public Module DynamicX + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.EnvironmentX.yml b/docfx_project/api/Butterfly.Core.Util.EnvironmentX.yml index 25885309..616c4e82 100644 --- a/docfx_project/api/Butterfly.Core.Util.EnvironmentX.yml +++ b/docfx_project/api/Butterfly.Core.Util.EnvironmentX.yml @@ -28,6 +28,7 @@ items: content: 'public static class EnvironmentX : object' content.vb: >- Public Module EnvironmentX + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.Field.EmailFieldValidator.yml b/docfx_project/api/Butterfly.Core.Util.Field.EmailFieldValidator.yml index 65c1c3ee..4329fa29 100644 --- a/docfx_project/api/Butterfly.Core.Util.Field.EmailFieldValidator.yml +++ b/docfx_project/api/Butterfly.Core.Util.Field.EmailFieldValidator.yml @@ -34,7 +34,9 @@ items: content: 'public class EmailFieldValidator : object, IFieldValidator' content.vb: >- Public Class EmailFieldValidator + Inherits Object + Implements IFieldValidator inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.Field.GenericFieldValidator.yml b/docfx_project/api/Butterfly.Core.Util.Field.GenericFieldValidator.yml index 28f6e6f1..772fc11c 100644 --- a/docfx_project/api/Butterfly.Core.Util.Field.GenericFieldValidator.yml +++ b/docfx_project/api/Butterfly.Core.Util.Field.GenericFieldValidator.yml @@ -35,7 +35,9 @@ items: content: 'public class GenericFieldValidator : object, IFieldValidator' content.vb: >- Public Class GenericFieldValidator + Inherits Object + Implements IFieldValidator inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.Field.NameFieldValidator.yml b/docfx_project/api/Butterfly.Core.Util.Field.NameFieldValidator.yml index 78b27a71..d09a506f 100644 --- a/docfx_project/api/Butterfly.Core.Util.Field.NameFieldValidator.yml +++ b/docfx_project/api/Butterfly.Core.Util.Field.NameFieldValidator.yml @@ -34,7 +34,9 @@ items: content: 'public class NameFieldValidator : object, IFieldValidator' content.vb: >- Public Class NameFieldValidator + Inherits Object + Implements IFieldValidator inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.Field.PhoneFieldValidator.yml b/docfx_project/api/Butterfly.Core.Util.Field.PhoneFieldValidator.yml index d06f8ca0..82f6e855 100644 --- a/docfx_project/api/Butterfly.Core.Util.Field.PhoneFieldValidator.yml +++ b/docfx_project/api/Butterfly.Core.Util.Field.PhoneFieldValidator.yml @@ -33,7 +33,9 @@ items: content: 'public class PhoneFieldValidator : object, IFieldValidator' content.vb: >- Public Class PhoneFieldValidator + Inherits Object + Implements IFieldValidator inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.FileX.yml b/docfx_project/api/Butterfly.Core.Util.FileX.yml index e95f1403..6f8b6c60 100644 --- a/docfx_project/api/Butterfly.Core.Util.FileX.yml +++ b/docfx_project/api/Butterfly.Core.Util.FileX.yml @@ -35,6 +35,7 @@ items: content: 'public static class FileX : object' content.vb: >- Public Module FileX + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.IHttpResponseX.yml b/docfx_project/api/Butterfly.Core.Util.IHttpResponseX.yml index 760899cb..8a921245 100644 --- a/docfx_project/api/Butterfly.Core.Util.IHttpResponseX.yml +++ b/docfx_project/api/Butterfly.Core.Util.IHttpResponseX.yml @@ -29,6 +29,7 @@ items: content: 'public static class IHttpResponseX : object' content.vb: >- Public Module IHttpResponseX + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.IWebRequestX.yml b/docfx_project/api/Butterfly.Core.Util.IWebRequestX.yml index 0c95f5a6..be2eddd2 100644 --- a/docfx_project/api/Butterfly.Core.Util.IWebRequestX.yml +++ b/docfx_project/api/Butterfly.Core.Util.IWebRequestX.yml @@ -28,6 +28,7 @@ items: content: 'public static class IWebRequestX : object' content.vb: >- Public Module IWebRequestX + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.Job.JobData.yml b/docfx_project/api/Butterfly.Core.Util.Job.JobData.yml index 33b26d29..2a5eda0e 100644 --- a/docfx_project/api/Butterfly.Core.Util.Job.JobData.yml +++ b/docfx_project/api/Butterfly.Core.Util.Job.JobData.yml @@ -30,6 +30,7 @@ items: content: 'public class JobData : object' content.vb: >- Public Class JobData + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.Job.JobManager.yml b/docfx_project/api/Butterfly.Core.Util.Job.JobManager.yml index 8f1fd7ed..b932dfa7 100644 --- a/docfx_project/api/Butterfly.Core.Util.Job.JobManager.yml +++ b/docfx_project/api/Butterfly.Core.Util.Job.JobManager.yml @@ -38,6 +38,7 @@ items: content: 'public class JobManager : object' content.vb: >- Public Class JobManager + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.JsonUtil.yml b/docfx_project/api/Butterfly.Core.Util.JsonUtil.yml index ef46cf67..9da10546 100644 --- a/docfx_project/api/Butterfly.Core.Util.JsonUtil.yml +++ b/docfx_project/api/Butterfly.Core.Util.JsonUtil.yml @@ -33,6 +33,7 @@ items: content: 'public static class JsonUtil : object' content.vb: >- Public Module JsonUtil + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.ListItemDisposable-1.yml b/docfx_project/api/Butterfly.Core.Util.ListItemDisposable-1.yml index 04da3925..f89479d6 100644 --- a/docfx_project/api/Butterfly.Core.Util.ListItemDisposable-1.yml +++ b/docfx_project/api/Butterfly.Core.Util.ListItemDisposable-1.yml @@ -34,6 +34,7 @@ items: - id: T content.vb: >- Public Class ListItemDisposable(Of T) + Inherits IDisposable inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.NameValueCollectionX.yml b/docfx_project/api/Butterfly.Core.Util.NameValueCollectionX.yml index 59282563..0b6c4674 100644 --- a/docfx_project/api/Butterfly.Core.Util.NameValueCollectionX.yml +++ b/docfx_project/api/Butterfly.Core.Util.NameValueCollectionX.yml @@ -28,6 +28,7 @@ items: content: 'public static class NameValueCollectionX : object' content.vb: >- Public Module NameValueCollectionX + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.PermissionDeniedException.yml b/docfx_project/api/Butterfly.Core.Util.PermissionDeniedException.yml index 45d25bda..a4e53387 100644 --- a/docfx_project/api/Butterfly.Core.Util.PermissionDeniedException.yml +++ b/docfx_project/api/Butterfly.Core.Util.PermissionDeniedException.yml @@ -28,6 +28,7 @@ items: content: 'public class PermissionDeniedException : Exception' content.vb: >- Public Class PermissionDeniedException + Inherits Exception inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.ProcessX.yml b/docfx_project/api/Butterfly.Core.Util.ProcessX.yml index f50e0c41..f0bc9f8c 100644 --- a/docfx_project/api/Butterfly.Core.Util.ProcessX.yml +++ b/docfx_project/api/Butterfly.Core.Util.ProcessX.yml @@ -32,6 +32,7 @@ items: content: 'public static class ProcessX : object' content.vb: >- Public Module ProcessX + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.RandomUtil.yml b/docfx_project/api/Butterfly.Core.Util.RandomUtil.yml index 0e6b4858..411751e6 100644 --- a/docfx_project/api/Butterfly.Core.Util.RandomUtil.yml +++ b/docfx_project/api/Butterfly.Core.Util.RandomUtil.yml @@ -28,6 +28,7 @@ items: content: 'public static class RandomUtil : object' content.vb: >- Public Module RandomUtil + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.RunEvery.yml b/docfx_project/api/Butterfly.Core.Util.RunEvery.yml index a20c7889..45ec8629 100644 --- a/docfx_project/api/Butterfly.Core.Util.RunEvery.yml +++ b/docfx_project/api/Butterfly.Core.Util.RunEvery.yml @@ -29,6 +29,7 @@ items: content: 'public class RunEvery : IDisposable' content.vb: >- Public Class RunEvery + Inherits IDisposable inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.SafeUtil.yml b/docfx_project/api/Butterfly.Core.Util.SafeUtil.yml index 62491c34..7caac09d 100644 --- a/docfx_project/api/Butterfly.Core.Util.SafeUtil.yml +++ b/docfx_project/api/Butterfly.Core.Util.SafeUtil.yml @@ -33,6 +33,7 @@ items: content: 'public static class SafeUtil : object' content.vb: >- Public Module SafeUtil + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.SecureUtil.yml b/docfx_project/api/Butterfly.Core.Util.SecureUtil.yml index ff06d018..60670e85 100644 --- a/docfx_project/api/Butterfly.Core.Util.SecureUtil.yml +++ b/docfx_project/api/Butterfly.Core.Util.SecureUtil.yml @@ -28,6 +28,7 @@ items: content: 'public static class SecureUtil : object' content.vb: >- Public Module SecureUtil + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.StringX.yml b/docfx_project/api/Butterfly.Core.Util.StringX.yml index 9dff19e1..4e36f766 100644 --- a/docfx_project/api/Butterfly.Core.Util.StringX.yml +++ b/docfx_project/api/Butterfly.Core.Util.StringX.yml @@ -30,6 +30,7 @@ items: content: 'public static class StringX : object' content.vb: >- Public Module StringX + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.UnauthorizedException.yml b/docfx_project/api/Butterfly.Core.Util.UnauthorizedException.yml index 26640a61..267e0e25 100644 --- a/docfx_project/api/Butterfly.Core.Util.UnauthorizedException.yml +++ b/docfx_project/api/Butterfly.Core.Util.UnauthorizedException.yml @@ -28,6 +28,7 @@ items: content: 'public class UnauthorizedException : Exception' content.vb: >- Public Class UnauthorizedException + Inherits Exception inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.UriX.yml b/docfx_project/api/Butterfly.Core.Util.UriX.yml index f78ec358..5f5781a0 100644 --- a/docfx_project/api/Butterfly.Core.Util.UriX.yml +++ b/docfx_project/api/Butterfly.Core.Util.UriX.yml @@ -28,6 +28,7 @@ items: content: 'public static class UriX : object' content.vb: >- Public Module UriX + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.Util.WebClientWithTimeout.yml b/docfx_project/api/Butterfly.Core.Util.WebClientWithTimeout.yml new file mode 100644 index 00000000..5d88ae3b --- /dev/null +++ b/docfx_project/api/Butterfly.Core.Util.WebClientWithTimeout.yml @@ -0,0 +1,184 @@ +### YamlMime:ManagedReference +items: +- uid: Butterfly.Core.Util.WebClientWithTimeout + commentId: T:Butterfly.Core.Util.WebClientWithTimeout + id: WebClientWithTimeout + parent: Butterfly.Core.Util + children: + - Butterfly.Core.Util.WebClientWithTimeout.#ctor(System.Int32) + - Butterfly.Core.Util.WebClientWithTimeout.GetWebRequest(Uri) + - Butterfly.Core.Util.WebClientWithTimeout.timeoutMillis + langs: + - csharp + - vb + name: WebClientWithTimeout + nameWithType: WebClientWithTimeout + fullName: Butterfly.Core.Util.WebClientWithTimeout + type: Class + source: + remote: + path: Butterfly.Core/Util/WebClientWithTimeout.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: WebClientWithTimeout + path: ../Butterfly.Core/Util/WebClientWithTimeout.cs + startLine: 4 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Util + syntax: + content: 'public class WebClientWithTimeout : WebClient' + content.vb: >- + Public Class WebClientWithTimeout + + Inherits WebClient + inheritance: + - System.Object + modifiers.csharp: + - public + - class + modifiers.vb: + - Public + - Class +- uid: Butterfly.Core.Util.WebClientWithTimeout.timeoutMillis + commentId: F:Butterfly.Core.Util.WebClientWithTimeout.timeoutMillis + id: timeoutMillis + parent: Butterfly.Core.Util.WebClientWithTimeout + langs: + - csharp + - vb + name: timeoutMillis + nameWithType: WebClientWithTimeout.timeoutMillis + fullName: Butterfly.Core.Util.WebClientWithTimeout.timeoutMillis + type: Field + source: + remote: + path: Butterfly.Core/Util/WebClientWithTimeout.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: timeoutMillis + path: ../Butterfly.Core/Util/WebClientWithTimeout.cs + startLine: 6 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Util + syntax: + content: protected readonly int timeoutMillis + return: + type: System.Int32 + content.vb: Protected ReadOnly timeoutMillis As Integer + modifiers.csharp: + - protected + - readonly + modifiers.vb: + - Protected + - ReadOnly +- uid: Butterfly.Core.Util.WebClientWithTimeout.#ctor(System.Int32) + commentId: M:Butterfly.Core.Util.WebClientWithTimeout.#ctor(System.Int32) + id: '#ctor(System.Int32)' + parent: Butterfly.Core.Util.WebClientWithTimeout + langs: + - csharp + - vb + name: WebClientWithTimeout(Int32) + nameWithType: WebClientWithTimeout.WebClientWithTimeout(Int32) + fullName: Butterfly.Core.Util.WebClientWithTimeout.WebClientWithTimeout(System.Int32) + type: Constructor + source: + remote: + path: Butterfly.Core/Util/WebClientWithTimeout.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: .ctor + path: ../Butterfly.Core/Util/WebClientWithTimeout.cs + startLine: 8 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Util + syntax: + content: public WebClientWithTimeout(int timeoutMillis) + parameters: + - id: timeoutMillis + type: System.Int32 + content.vb: Public Sub New(timeoutMillis As Integer) + overload: Butterfly.Core.Util.WebClientWithTimeout.#ctor* + modifiers.csharp: + - public + modifiers.vb: + - Public +- uid: Butterfly.Core.Util.WebClientWithTimeout.GetWebRequest(Uri) + commentId: M:Butterfly.Core.Util.WebClientWithTimeout.GetWebRequest(Uri) + id: GetWebRequest(Uri) + parent: Butterfly.Core.Util.WebClientWithTimeout + langs: + - csharp + - vb + name: GetWebRequest(Uri) + nameWithType: WebClientWithTimeout.GetWebRequest(Uri) + fullName: Butterfly.Core.Util.WebClientWithTimeout.GetWebRequest(Uri) + type: Method + source: + remote: + path: Butterfly.Core/Util/WebClientWithTimeout.cs + branch: master + repo: https://github.com/firesharkstudios/Butterfly.git + id: GetWebRequest + path: ../Butterfly.Core/Util/WebClientWithTimeout.cs + startLine: 12 + assemblies: + - Butterfly.Core + namespace: Butterfly.Core.Util + syntax: + content: protected override WebRequest GetWebRequest(Uri uri) + parameters: + - id: uri + type: Uri + return: + type: WebRequest + content.vb: Protected Overrides Function GetWebRequest(uri As Uri) As WebRequest + overload: Butterfly.Core.Util.WebClientWithTimeout.GetWebRequest* + modifiers.csharp: + - protected + - override + modifiers.vb: + - Protected + - Overrides +references: +- uid: Butterfly.Core.Util + commentId: N:Butterfly.Core.Util + name: Butterfly.Core.Util + nameWithType: Butterfly.Core.Util + fullName: Butterfly.Core.Util +- uid: System.Object + commentId: T:System.Object + isExternal: true + name: Object + nameWithType: Object + fullName: System.Object +- uid: System.Int32 + isExternal: true + name: Int32 + nameWithType: Int32 + fullName: System.Int32 +- uid: Butterfly.Core.Util.WebClientWithTimeout.#ctor* + commentId: Overload:Butterfly.Core.Util.WebClientWithTimeout.#ctor + name: WebClientWithTimeout + nameWithType: WebClientWithTimeout.WebClientWithTimeout + fullName: Butterfly.Core.Util.WebClientWithTimeout.WebClientWithTimeout +- uid: Butterfly.Core.Util.WebClientWithTimeout.GetWebRequest* + commentId: Overload:Butterfly.Core.Util.WebClientWithTimeout.GetWebRequest + name: GetWebRequest + nameWithType: WebClientWithTimeout.GetWebRequest + fullName: Butterfly.Core.Util.WebClientWithTimeout.GetWebRequest +- uid: Uri + isExternal: true + name: Uri + nameWithType: Uri + fullName: Uri +- uid: WebRequest + commentId: '!:WebRequest' + isExternal: true + name: WebRequest + nameWithType: WebRequest + fullName: WebRequest +shouldSkipMarkup: true diff --git a/docfx_project/api/Butterfly.Core.Util.yml b/docfx_project/api/Butterfly.Core.Util.yml index 312c89bd..1d9e9570 100644 --- a/docfx_project/api/Butterfly.Core.Util.yml +++ b/docfx_project/api/Butterfly.Core.Util.yml @@ -28,6 +28,7 @@ items: - Butterfly.Core.Util.StringX - Butterfly.Core.Util.UnauthorizedException - Butterfly.Core.Util.UriX + - Butterfly.Core.Util.WebClientWithTimeout langs: - csharp - vb @@ -235,6 +236,11 @@ references: name: UriX nameWithType: UriX fullName: Butterfly.Core.Util.UriX +- uid: Butterfly.Core.Util.WebClientWithTimeout + commentId: T:Butterfly.Core.Util.WebClientWithTimeout + name: WebClientWithTimeout + nameWithType: WebClientWithTimeout + fullName: Butterfly.Core.Util.WebClientWithTimeout - uid: Butterfly.Core.Util commentId: N:Butterfly.Core.Util name: Butterfly.Core.Util diff --git a/docfx_project/api/Butterfly.Core.WebApi.BaseHttpRequest.yml b/docfx_project/api/Butterfly.Core.WebApi.BaseHttpRequest.yml index 088f93a1..0132cdba 100644 --- a/docfx_project/api/Butterfly.Core.WebApi.BaseHttpRequest.yml +++ b/docfx_project/api/Butterfly.Core.WebApi.BaseHttpRequest.yml @@ -36,7 +36,9 @@ items: content: 'public abstract class BaseHttpRequest : object, IHttpRequest, IWebRequest' content.vb: >- Public MustInherit Class BaseHttpRequest + Inherits Object + Implements IHttpRequest, IWebRequest inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.WebApi.BaseWebApi.yml b/docfx_project/api/Butterfly.Core.WebApi.BaseWebApi.yml index d34260fc..d87442dd 100644 --- a/docfx_project/api/Butterfly.Core.WebApi.BaseWebApi.yml +++ b/docfx_project/api/Butterfly.Core.WebApi.BaseWebApi.yml @@ -39,7 +39,9 @@ items: content: 'public abstract class BaseWebApi : object, IWebApi, IDisposable' content.vb: >- Public MustInherit Class BaseWebApi + Inherits Object + Implements IWebApi, IDisposable inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Core.WebApi.IHttpRequest.yml b/docfx_project/api/Butterfly.Core.WebApi.IHttpRequest.yml index bd5f7550..0a37ea33 100644 --- a/docfx_project/api/Butterfly.Core.WebApi.IHttpRequest.yml +++ b/docfx_project/api/Butterfly.Core.WebApi.IHttpRequest.yml @@ -31,6 +31,7 @@ items: content: 'public interface IHttpRequest : IWebRequest' content.vb: >- Public Interface IHttpRequest + Inherits IWebRequest inheritedMembers: - Butterfly.Core.Util.IWebRequest.RequestUrl diff --git a/docfx_project/api/Butterfly.Core.WebApi.IWebApi.yml b/docfx_project/api/Butterfly.Core.WebApi.IWebApi.yml index 02715ead..60fab8e5 100644 --- a/docfx_project/api/Butterfly.Core.WebApi.IWebApi.yml +++ b/docfx_project/api/Butterfly.Core.WebApi.IWebApi.yml @@ -35,6 +35,7 @@ items: content: 'public interface IWebApi : IDisposable' content.vb: >- Public Interface IWebApi + Inherits IDisposable modifiers.csharp: - public diff --git a/docfx_project/api/Butterfly.Core.WebApi.WebHandler.yml b/docfx_project/api/Butterfly.Core.WebApi.WebHandler.yml index a126cf44..c0d1db2b 100644 --- a/docfx_project/api/Butterfly.Core.WebApi.WebHandler.yml +++ b/docfx_project/api/Butterfly.Core.WebApi.WebHandler.yml @@ -32,6 +32,7 @@ items: content: 'public class WebHandler : object' content.vb: >- Public Class WebHandler + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.EmbedIO.EmbedIOContext.yml b/docfx_project/api/Butterfly.EmbedIO.EmbedIOContext.yml index 603dc79c..682c98bc 100644 --- a/docfx_project/api/Butterfly.EmbedIO.EmbedIOContext.yml +++ b/docfx_project/api/Butterfly.EmbedIO.EmbedIOContext.yml @@ -37,6 +37,7 @@ items: content: 'public class EmbedIOContext : IDisposable' content.vb: >- Public Class EmbedIOContext + Inherits IDisposable inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.EmbedIO.EmbedIOHttpWebRequest.yml b/docfx_project/api/Butterfly.EmbedIO.EmbedIOHttpWebRequest.yml index 49c9784d..d61c10d8 100644 --- a/docfx_project/api/Butterfly.EmbedIO.EmbedIOHttpWebRequest.yml +++ b/docfx_project/api/Butterfly.EmbedIO.EmbedIOHttpWebRequest.yml @@ -35,7 +35,9 @@ items: content: 'public class EmbedIOHttpWebRequest : BaseHttpRequest, IHttpRequest, IWebRequest' content.vb: >- Public Class EmbedIOHttpWebRequest + Inherits BaseHttpRequest + Implements IHttpRequest, IWebRequest inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.EmbedIO.EmbedIOSubscriptionApi.yml b/docfx_project/api/Butterfly.EmbedIO.EmbedIOSubscriptionApi.yml index 41768dae..c41028e8 100644 --- a/docfx_project/api/Butterfly.EmbedIO.EmbedIOSubscriptionApi.yml +++ b/docfx_project/api/Butterfly.EmbedIO.EmbedIOSubscriptionApi.yml @@ -27,14 +27,14 @@ items: assemblies: - Butterfly.EmbedIO namespace: Butterfly.EmbedIO - summary: "\nBase class implementing . New implementations will normally extend this class.\n" - remarks: "\nListen for subscription requests to the todos channel...

\n
// Listen for subscribe requests...\n// - The handler must return an IDisposable object (gets disposed when the channel is unsubscribed)\n// - The handler can push data to the client by calling channel.Queue()\nsubscriptionApi.OnSubscribe("todos", (vars, channel) => {\n    return database.CreateAndStartDynamicView("todo", dataEventTransaction => channel.Queue(dataEventTransaction));\n});\nsubscriptionApi.Start();
\n" example: [] syntax: content: 'public class EmbedIOSubscriptionApi : BaseSubscriptionApi, ISubscriptionApi, IDisposable' content.vb: >- Public Class EmbedIOSubscriptionApi + Inherits BaseSubscriptionApi + Implements ISubscriptionApi, IDisposable inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.EmbedIO.EmbedIOSubscriptionApiConnection.yml b/docfx_project/api/Butterfly.EmbedIO.EmbedIOSubscriptionApiConnection.yml index 963c5b60..20043a45 100644 --- a/docfx_project/api/Butterfly.EmbedIO.EmbedIOSubscriptionApiConnection.yml +++ b/docfx_project/api/Butterfly.EmbedIO.EmbedIOSubscriptionApiConnection.yml @@ -32,7 +32,9 @@ items: content: 'public class EmbedIOSubscriptionApiConnection : BaseChannelConnection, IChannelConnection, IDisposable' content.vb: >- Public Class EmbedIOSubscriptionApiConnection + Inherits BaseChannelConnection + Implements IChannelConnection, IDisposable inheritance: - System.Object @@ -53,7 +55,7 @@ items: - Butterfly.Core.Channel.BaseChannelConnection.Id - Butterfly.Core.Channel.BaseChannelConnection.Created - Butterfly.Core.Channel.BaseChannelConnection.LastHeartbeat - - Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object) + - Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) - Butterfly.Core.Channel.BaseChannelConnection.started - Butterfly.Core.Channel.BaseChannelConnection.Start(System.Object,System.String) - Butterfly.Core.Channel.BaseChannelConnection.channelByKey @@ -347,15 +349,15 @@ references: name: LastHeartbeat nameWithType: BaseChannelConnection.LastHeartbeat fullName: Butterfly.Core.Channel.BaseChannelConnection.LastHeartbeat -- uid: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object) - commentId: M:Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object) +- uid: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) + commentId: M:Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) parent: Butterfly.Core.Channel.BaseChannelConnection isExternal: true - name: QueueMessage(String, String, Object) - nameWithType: BaseChannelConnection.QueueMessage(String, String, Object) - fullName: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String, System.String, System.Object) + name: QueueMessage(String, String, Object, Boolean) + nameWithType: BaseChannelConnection.QueueMessage(String, String, Object, Boolean) + fullName: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String, System.String, System.Object, System.Boolean) spec.csharp: - - uid: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object) + - uid: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) name: QueueMessage nameWithType: BaseChannelConnection.QueueMessage fullName: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage @@ -383,11 +385,19 @@ references: nameWithType: Object fullName: System.Object isExternal: true + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.Boolean + name: Boolean + nameWithType: Boolean + fullName: System.Boolean + isExternal: true - name: ) nameWithType: ) fullName: ) spec.vb: - - uid: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object) + - uid: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) name: QueueMessage nameWithType: BaseChannelConnection.QueueMessage fullName: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage @@ -415,6 +425,14 @@ references: nameWithType: Object fullName: System.Object isExternal: true + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.Boolean + name: Boolean + nameWithType: Boolean + fullName: System.Boolean + isExternal: true - name: ) nameWithType: ) fullName: ) diff --git a/docfx_project/api/Butterfly.EmbedIO.EmbedIOWebApi.yml b/docfx_project/api/Butterfly.EmbedIO.EmbedIOWebApi.yml index 33b5fd1b..42a25b9a 100644 --- a/docfx_project/api/Butterfly.EmbedIO.EmbedIOWebApi.yml +++ b/docfx_project/api/Butterfly.EmbedIO.EmbedIOWebApi.yml @@ -27,13 +27,14 @@ items: assemblies: - Butterfly.EmbedIO namespace: Butterfly.EmbedIO - summary: "\nBase class implementing . New implementations will normally extend this class.\n" example: [] syntax: content: 'public class EmbedIOWebApi : BaseWebApi, IWebApi, IDisposable' content.vb: >- Public Class EmbedIOWebApi + Inherits BaseWebApi + Implements IWebApi, IDisposable inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.EmbedIO.EmbedIOWebResponse.yml b/docfx_project/api/Butterfly.EmbedIO.EmbedIOWebResponse.yml index b01756e1..b7168695 100644 --- a/docfx_project/api/Butterfly.EmbedIO.EmbedIOWebResponse.yml +++ b/docfx_project/api/Butterfly.EmbedIO.EmbedIOWebResponse.yml @@ -36,7 +36,9 @@ items: content: 'public class EmbedIOWebResponse : object, IHttpResponse' content.vb: >- Public Class EmbedIOWebResponse + Inherits Object + Implements IHttpResponse inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.EmbedIO.EmbedIOWebSocketWebRequest.yml b/docfx_project/api/Butterfly.EmbedIO.EmbedIOWebSocketWebRequest.yml index f8361233..d522ae41 100644 --- a/docfx_project/api/Butterfly.EmbedIO.EmbedIOWebSocketWebRequest.yml +++ b/docfx_project/api/Butterfly.EmbedIO.EmbedIOWebSocketWebRequest.yml @@ -33,7 +33,9 @@ items: content: 'public class EmbedIOWebSocketWebRequest : object, IWebRequest' content.vb: >- Public Class EmbedIOWebSocketWebRequest + Inherits Object + Implements IWebRequest inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.EmbedIO.MyWebModule.yml b/docfx_project/api/Butterfly.EmbedIO.MyWebModule.yml index e921766c..a17a88fc 100644 --- a/docfx_project/api/Butterfly.EmbedIO.MyWebModule.yml +++ b/docfx_project/api/Butterfly.EmbedIO.MyWebModule.yml @@ -30,6 +30,7 @@ items: content: 'public class MyWebModule : WebModuleBase' content.vb: >- Public Class MyWebModule + Inherits WebModuleBase inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.EmbedIO.MyWebSocketsServer.yml b/docfx_project/api/Butterfly.EmbedIO.MyWebSocketsServer.yml index 7b03802c..3a97e8de 100644 --- a/docfx_project/api/Butterfly.EmbedIO.MyWebSocketsServer.yml +++ b/docfx_project/api/Butterfly.EmbedIO.MyWebSocketsServer.yml @@ -38,6 +38,7 @@ items: content: 'public class MyWebSocketsServer : WebSocketsServer' content.vb: >- Public Class MyWebSocketsServer + Inherits WebSocketsServer inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.EmbedIO.Test.EmbedIOTest.yml b/docfx_project/api/Butterfly.EmbedIO.Test.EmbedIOTest.yml index 60e430d3..cf8ff60b 100644 --- a/docfx_project/api/Butterfly.EmbedIO.Test.EmbedIOTest.yml +++ b/docfx_project/api/Butterfly.EmbedIO.Test.EmbedIOTest.yml @@ -29,6 +29,7 @@ items: content: 'public class EmbedIOTest : object' content.vb: >- Public Class EmbedIOTest + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.MySql.MySqlDatabase.yml b/docfx_project/api/Butterfly.MySql.MySqlDatabase.yml index ecb3010f..61c6af85 100644 --- a/docfx_project/api/Butterfly.MySql.MySqlDatabase.yml +++ b/docfx_project/api/Butterfly.MySql.MySqlDatabase.yml @@ -34,13 +34,14 @@ items: assemblies: - Butterfly.MySql namespace: Butterfly.MySql - summary: "\nBase class implementing . New implementations will normally extend this class.\n" example: [] syntax: content: 'public class MySqlDatabase : BaseDatabase, IDatabase' content.vb: >- Public Class MySqlDatabase + Inherits BaseDatabase + Implements IDatabase inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.MySql.MySqlTransaction.yml b/docfx_project/api/Butterfly.MySql.MySqlTransaction.yml index 6e405a98..07c02a36 100644 --- a/docfx_project/api/Butterfly.MySql.MySqlTransaction.yml +++ b/docfx_project/api/Butterfly.MySql.MySqlTransaction.yml @@ -40,13 +40,14 @@ items: assemblies: - Butterfly.MySql namespace: Butterfly.MySql - summary: "\nBase class implementing .\n" example: [] syntax: content: 'public class MySqlTransaction : BaseTransaction, ITransaction, IDisposable' content.vb: >- Public Class MySqlTransaction + Inherits BaseTransaction + Implements ITransaction, IDisposable inheritance: - System.Object @@ -57,7 +58,7 @@ items: inheritedMembers: - Butterfly.Core.Database.BaseTransaction.database - Butterfly.Core.Database.BaseTransaction.dataEvents - - Butterfly.Core.Database.BaseTransaction.onCommits + - Butterfly.Core.Database.BaseTransaction.onCommitRefs - Butterfly.Core.Database.BaseTransaction.Database - Butterfly.Core.Database.BaseTransaction.Create(Butterfly.Core.Database.CreateStatement) - Butterfly.Core.Database.BaseTransaction.CreateAsync(Butterfly.Core.Database.CreateStatement) @@ -75,7 +76,7 @@ items: - Butterfly.Core.Database.BaseTransaction.TruncateAsync(System.String) - Butterfly.Core.Database.BaseTransaction.Commit - Butterfly.Core.Database.BaseTransaction.CommitAsync - - Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) + - Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) - Butterfly.Core.Database.BaseTransaction.Rollback modifiers.csharp: - public @@ -742,12 +743,12 @@ references: name: dataEvents nameWithType: BaseTransaction.dataEvents fullName: Butterfly.Core.Database.BaseTransaction.dataEvents -- uid: Butterfly.Core.Database.BaseTransaction.onCommits - commentId: F:Butterfly.Core.Database.BaseTransaction.onCommits +- uid: Butterfly.Core.Database.BaseTransaction.onCommitRefs + commentId: F:Butterfly.Core.Database.BaseTransaction.onCommitRefs parent: Butterfly.Core.Database.BaseTransaction - name: onCommits - nameWithType: BaseTransaction.onCommits - fullName: Butterfly.Core.Database.BaseTransaction.onCommits + name: onCommitRefs + nameWithType: BaseTransaction.onCommitRefs + fullName: Butterfly.Core.Database.BaseTransaction.onCommitRefs - uid: Butterfly.Core.Database.BaseTransaction.Database commentId: P:Butterfly.Core.Database.BaseTransaction.Database parent: Butterfly.Core.Database.BaseTransaction @@ -1887,18 +1888,18 @@ references: - name: ) nameWithType: ) fullName: ) -- uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) - commentId: M:Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) +- uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) + commentId: M:Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) parent: Butterfly.Core.Database.BaseTransaction isExternal: true - name: OnCommit(Func<>) - nameWithType: BaseTransaction.OnCommit(Func<>) - fullName: Butterfly.Core.Database.BaseTransaction.OnCommit(Func<>) - nameWithType.vb: BaseTransaction.OnCommit(Func(Of )) - fullName.vb: Butterfly.Core.Database.BaseTransaction.OnCommit(Func(Of )) - name.vb: OnCommit(Func(Of )) + name: OnCommit(Func<>, String) + nameWithType: BaseTransaction.OnCommit(Func<>, String) + fullName: Butterfly.Core.Database.BaseTransaction.OnCommit(Func<>, System.String) + nameWithType.vb: BaseTransaction.OnCommit(Func(Of ), String) + fullName.vb: Butterfly.Core.Database.BaseTransaction.OnCommit(Func(Of ), System.String) + name.vb: OnCommit(Func(Of ), String) spec.csharp: - - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) + - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) name: OnCommit nameWithType: BaseTransaction.OnCommit fullName: Butterfly.Core.Database.BaseTransaction.OnCommit @@ -1919,11 +1920,19 @@ references: - name: '>' nameWithType: '>' fullName: '>' + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true - name: ) nameWithType: ) fullName: ) spec.vb: - - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) + - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) name: OnCommit nameWithType: BaseTransaction.OnCommit fullName: Butterfly.Core.Database.BaseTransaction.OnCommit @@ -1944,6 +1953,14 @@ references: - name: ) nameWithType: ) fullName: ) + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true - name: ) nameWithType: ) fullName: ) diff --git a/docfx_project/api/Butterfly.MySql.Test.MySqlDatabaseUnitTest.yml b/docfx_project/api/Butterfly.MySql.Test.MySqlDatabaseUnitTest.yml index b875867b..2c081a65 100644 --- a/docfx_project/api/Butterfly.MySql.Test.MySqlDatabaseUnitTest.yml +++ b/docfx_project/api/Butterfly.MySql.Test.MySqlDatabaseUnitTest.yml @@ -29,6 +29,7 @@ items: content: 'public class MySqlDatabaseUnitTest : object' content.vb: >- Public Class MySqlDatabaseUnitTest + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.MySql.Test.SQLiteTest.yml b/docfx_project/api/Butterfly.MySql.Test.SQLiteTest.yml index 43678995..4eb632ae 100644 --- a/docfx_project/api/Butterfly.MySql.Test.SQLiteTest.yml +++ b/docfx_project/api/Butterfly.MySql.Test.SQLiteTest.yml @@ -29,6 +29,7 @@ items: content: 'public class SQLiteTest : object' content.vb: >- Public Class SQLiteTest + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Postgres.PostgresDatabase.yml b/docfx_project/api/Butterfly.Postgres.PostgresDatabase.yml index 0caf30be..acc809f3 100644 --- a/docfx_project/api/Butterfly.Postgres.PostgresDatabase.yml +++ b/docfx_project/api/Butterfly.Postgres.PostgresDatabase.yml @@ -33,13 +33,14 @@ items: assemblies: - Butterfly.Postgres namespace: Butterfly.Postgres - summary: "\nBase class implementing . New implementations will normally extend this class.\n" example: [] syntax: content: 'public class PostgresDatabase : BaseDatabase, IDatabase' content.vb: >- Public Class PostgresDatabase + Inherits BaseDatabase + Implements IDatabase inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.Postgres.PostgresTransaction.yml b/docfx_project/api/Butterfly.Postgres.PostgresTransaction.yml index 6ad94aea..d2346265 100644 --- a/docfx_project/api/Butterfly.Postgres.PostgresTransaction.yml +++ b/docfx_project/api/Butterfly.Postgres.PostgresTransaction.yml @@ -38,13 +38,14 @@ items: assemblies: - Butterfly.Postgres namespace: Butterfly.Postgres - summary: "\nBase class implementing .\n" example: [] syntax: content: 'public class PostgresTransaction : BaseTransaction, ITransaction, IDisposable' content.vb: >- Public Class PostgresTransaction + Inherits BaseTransaction + Implements ITransaction, IDisposable inheritance: - System.Object @@ -55,7 +56,7 @@ items: inheritedMembers: - Butterfly.Core.Database.BaseTransaction.database - Butterfly.Core.Database.BaseTransaction.dataEvents - - Butterfly.Core.Database.BaseTransaction.onCommits + - Butterfly.Core.Database.BaseTransaction.onCommitRefs - Butterfly.Core.Database.BaseTransaction.Database - Butterfly.Core.Database.BaseTransaction.Create(Butterfly.Core.Database.CreateStatement) - Butterfly.Core.Database.BaseTransaction.CreateAsync(Butterfly.Core.Database.CreateStatement) @@ -73,7 +74,7 @@ items: - Butterfly.Core.Database.BaseTransaction.TruncateAsync(System.String) - Butterfly.Core.Database.BaseTransaction.Commit - Butterfly.Core.Database.BaseTransaction.CommitAsync - - Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) + - Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) - Butterfly.Core.Database.BaseTransaction.Rollback modifiers.csharp: - public @@ -660,12 +661,12 @@ references: name: dataEvents nameWithType: BaseTransaction.dataEvents fullName: Butterfly.Core.Database.BaseTransaction.dataEvents -- uid: Butterfly.Core.Database.BaseTransaction.onCommits - commentId: F:Butterfly.Core.Database.BaseTransaction.onCommits +- uid: Butterfly.Core.Database.BaseTransaction.onCommitRefs + commentId: F:Butterfly.Core.Database.BaseTransaction.onCommitRefs parent: Butterfly.Core.Database.BaseTransaction - name: onCommits - nameWithType: BaseTransaction.onCommits - fullName: Butterfly.Core.Database.BaseTransaction.onCommits + name: onCommitRefs + nameWithType: BaseTransaction.onCommitRefs + fullName: Butterfly.Core.Database.BaseTransaction.onCommitRefs - uid: Butterfly.Core.Database.BaseTransaction.Database commentId: P:Butterfly.Core.Database.BaseTransaction.Database parent: Butterfly.Core.Database.BaseTransaction @@ -1805,18 +1806,18 @@ references: - name: ) nameWithType: ) fullName: ) -- uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) - commentId: M:Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) +- uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) + commentId: M:Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) parent: Butterfly.Core.Database.BaseTransaction isExternal: true - name: OnCommit(Func<>) - nameWithType: BaseTransaction.OnCommit(Func<>) - fullName: Butterfly.Core.Database.BaseTransaction.OnCommit(Func<>) - nameWithType.vb: BaseTransaction.OnCommit(Func(Of )) - fullName.vb: Butterfly.Core.Database.BaseTransaction.OnCommit(Func(Of )) - name.vb: OnCommit(Func(Of )) + name: OnCommit(Func<>, String) + nameWithType: BaseTransaction.OnCommit(Func<>, String) + fullName: Butterfly.Core.Database.BaseTransaction.OnCommit(Func<>, System.String) + nameWithType.vb: BaseTransaction.OnCommit(Func(Of ), String) + fullName.vb: Butterfly.Core.Database.BaseTransaction.OnCommit(Func(Of ), System.String) + name.vb: OnCommit(Func(Of ), String) spec.csharp: - - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) + - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) name: OnCommit nameWithType: BaseTransaction.OnCommit fullName: Butterfly.Core.Database.BaseTransaction.OnCommit @@ -1837,11 +1838,19 @@ references: - name: '>' nameWithType: '>' fullName: '>' + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true - name: ) nameWithType: ) fullName: ) spec.vb: - - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) + - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) name: OnCommit nameWithType: BaseTransaction.OnCommit fullName: Butterfly.Core.Database.BaseTransaction.OnCommit @@ -1862,6 +1871,14 @@ references: - name: ) nameWithType: ) fullName: ) + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true - name: ) nameWithType: ) fullName: ) diff --git a/docfx_project/api/Butterfly.Postgres.Test.PostgresTest.yml b/docfx_project/api/Butterfly.Postgres.Test.PostgresTest.yml index 00c471bd..b79e120e 100644 --- a/docfx_project/api/Butterfly.Postgres.Test.PostgresTest.yml +++ b/docfx_project/api/Butterfly.Postgres.Test.PostgresTest.yml @@ -29,6 +29,7 @@ items: content: 'public class PostgresTest : object' content.vb: >- Public Class PostgresTest + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.RHttpServer.HttpRequestX.yml b/docfx_project/api/Butterfly.RHttpServer.HttpRequestX.yml index 5b141ee3..0cc23ab4 100644 --- a/docfx_project/api/Butterfly.RHttpServer.HttpRequestX.yml +++ b/docfx_project/api/Butterfly.RHttpServer.HttpRequestX.yml @@ -28,6 +28,7 @@ items: content: 'public static class HttpRequestX : object' content.vb: >- Public Module HttpRequestX + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.RHttpServer.RedHttpServerContext.yml b/docfx_project/api/Butterfly.RHttpServer.RedHttpServerContext.yml index d8b394b4..c270cf0a 100644 --- a/docfx_project/api/Butterfly.RHttpServer.RedHttpServerContext.yml +++ b/docfx_project/api/Butterfly.RHttpServer.RedHttpServerContext.yml @@ -37,6 +37,7 @@ items: content: 'public class RedHttpServerContext : IDisposable' content.vb: >- Public Class RedHttpServerContext + Inherits IDisposable inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.RHttpServer.RedHttpServerSubscriptionApi.yml b/docfx_project/api/Butterfly.RHttpServer.RedHttpServerSubscriptionApi.yml index 35231edc..250998af 100644 --- a/docfx_project/api/Butterfly.RHttpServer.RedHttpServerSubscriptionApi.yml +++ b/docfx_project/api/Butterfly.RHttpServer.RedHttpServerSubscriptionApi.yml @@ -27,14 +27,14 @@ items: assemblies: - Butterfly.RedHttpServer namespace: Butterfly.RHttpServer - summary: "\nBase class implementing . New implementations will normally extend this class.\n" - remarks: "\nListen for subscription requests to the todos channel...

\n
// Listen for subscribe requests...\n// - The handler must return an IDisposable object (gets disposed when the channel is unsubscribed)\n// - The handler can push data to the client by calling channel.Queue()\nsubscriptionApi.OnSubscribe("todos", (vars, channel) => {\n    return database.CreateAndStartDynamicView("todo", dataEventTransaction => channel.Queue(dataEventTransaction));\n});\nsubscriptionApi.Start();
\n" example: [] syntax: content: 'public class RedHttpServerSubscriptionApi : BaseSubscriptionApi, ISubscriptionApi, IDisposable' content.vb: >- Public Class RedHttpServerSubscriptionApi + Inherits BaseSubscriptionApi + Implements ISubscriptionApi, IDisposable inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.RHttpServer.RedHttpServerWebApi.yml b/docfx_project/api/Butterfly.RHttpServer.RedHttpServerWebApi.yml index e4f33042..4c73d695 100644 --- a/docfx_project/api/Butterfly.RHttpServer.RedHttpServerWebApi.yml +++ b/docfx_project/api/Butterfly.RHttpServer.RedHttpServerWebApi.yml @@ -27,13 +27,14 @@ items: assemblies: - Butterfly.RedHttpServer namespace: Butterfly.RHttpServer - summary: "\nBase class implementing . New implementations will normally extend this class.\n" example: [] syntax: content: 'public class RedHttpServerWebApi : BaseWebApi, IWebApi, IDisposable' content.vb: >- Public Class RedHttpServerWebApi + Inherits BaseWebApi + Implements IWebApi, IDisposable inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.RHttpServer.RedHttpServerWebRequest.yml b/docfx_project/api/Butterfly.RHttpServer.RedHttpServerWebRequest.yml index 52d52963..24a4bec1 100644 --- a/docfx_project/api/Butterfly.RHttpServer.RedHttpServerWebRequest.yml +++ b/docfx_project/api/Butterfly.RHttpServer.RedHttpServerWebRequest.yml @@ -34,7 +34,9 @@ items: content: 'public class RedHttpServerWebRequest : BaseHttpRequest, IHttpRequest, IWebRequest' content.vb: >- Public Class RedHttpServerWebRequest + Inherits BaseHttpRequest + Implements IHttpRequest, IWebRequest inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.RHttpServer.RedHttpServerWebResponse.yml b/docfx_project/api/Butterfly.RHttpServer.RedHttpServerWebResponse.yml index 47e9d4f3..19e30313 100644 --- a/docfx_project/api/Butterfly.RHttpServer.RedHttpServerWebResponse.yml +++ b/docfx_project/api/Butterfly.RHttpServer.RedHttpServerWebResponse.yml @@ -37,7 +37,9 @@ items: content: 'public class RedHttpServerWebResponse : object, IHttpResponse' content.vb: >- Public Class RedHttpServerWebResponse + Inherits Object + Implements IHttpResponse inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.RHttpServer.Test.RHttpServerTest.yml b/docfx_project/api/Butterfly.RHttpServer.Test.RHttpServerTest.yml index 2a7ad60d..606e1e88 100644 --- a/docfx_project/api/Butterfly.RHttpServer.Test.RHttpServerTest.yml +++ b/docfx_project/api/Butterfly.RHttpServer.Test.RHttpServerTest.yml @@ -29,6 +29,7 @@ items: content: 'public class RHttpServerTest : object' content.vb: >- Public Class RHttpServerTest + Inherits Object inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.RHttpServer.WebSocketDialogChannelConnection.yml b/docfx_project/api/Butterfly.RHttpServer.WebSocketDialogChannelConnection.yml index d882e699..8ac62592 100644 --- a/docfx_project/api/Butterfly.RHttpServer.WebSocketDialogChannelConnection.yml +++ b/docfx_project/api/Butterfly.RHttpServer.WebSocketDialogChannelConnection.yml @@ -31,7 +31,9 @@ items: content: 'public class WebSocketDialogChannelConnection : BaseChannelConnection, IChannelConnection, IDisposable' content.vb: >- Public Class WebSocketDialogChannelConnection + Inherits BaseChannelConnection + Implements IChannelConnection, IDisposable inheritance: - System.Object @@ -52,7 +54,7 @@ items: - Butterfly.Core.Channel.BaseChannelConnection.Id - Butterfly.Core.Channel.BaseChannelConnection.Created - Butterfly.Core.Channel.BaseChannelConnection.LastHeartbeat - - Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object) + - Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) - Butterfly.Core.Channel.BaseChannelConnection.started - Butterfly.Core.Channel.BaseChannelConnection.Start(System.Object,System.String) - Butterfly.Core.Channel.BaseChannelConnection.channelByKey @@ -308,15 +310,15 @@ references: name: LastHeartbeat nameWithType: BaseChannelConnection.LastHeartbeat fullName: Butterfly.Core.Channel.BaseChannelConnection.LastHeartbeat -- uid: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object) - commentId: M:Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object) +- uid: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) + commentId: M:Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) parent: Butterfly.Core.Channel.BaseChannelConnection isExternal: true - name: QueueMessage(String, String, Object) - nameWithType: BaseChannelConnection.QueueMessage(String, String, Object) - fullName: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String, System.String, System.Object) + name: QueueMessage(String, String, Object, Boolean) + nameWithType: BaseChannelConnection.QueueMessage(String, String, Object, Boolean) + fullName: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String, System.String, System.Object, System.Boolean) spec.csharp: - - uid: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object) + - uid: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) name: QueueMessage nameWithType: BaseChannelConnection.QueueMessage fullName: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage @@ -344,11 +346,19 @@ references: nameWithType: Object fullName: System.Object isExternal: true + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.Boolean + name: Boolean + nameWithType: Boolean + fullName: System.Boolean + isExternal: true - name: ) nameWithType: ) fullName: ) spec.vb: - - uid: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object) + - uid: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) name: QueueMessage nameWithType: BaseChannelConnection.QueueMessage fullName: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage @@ -376,6 +386,14 @@ references: nameWithType: Object fullName: System.Object isExternal: true + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.Boolean + name: Boolean + nameWithType: Boolean + fullName: System.Boolean + isExternal: true - name: ) nameWithType: ) fullName: ) diff --git a/docfx_project/api/Butterfly.RHttpServer.WebSocketDialogWebRequest.yml b/docfx_project/api/Butterfly.RHttpServer.WebSocketDialogWebRequest.yml index dc7160cd..65bb9a6e 100644 --- a/docfx_project/api/Butterfly.RHttpServer.WebSocketDialogWebRequest.yml +++ b/docfx_project/api/Butterfly.RHttpServer.WebSocketDialogWebRequest.yml @@ -33,7 +33,9 @@ items: content: 'public class WebSocketDialogWebRequest : object, IWebRequest' content.vb: >- Public Class WebSocketDialogWebRequest + Inherits Object + Implements IWebRequest inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.SQLite.SQLiteDatabase.yml b/docfx_project/api/Butterfly.SQLite.SQLiteDatabase.yml index 0b9d0824..618a1e8c 100644 --- a/docfx_project/api/Butterfly.SQLite.SQLiteDatabase.yml +++ b/docfx_project/api/Butterfly.SQLite.SQLiteDatabase.yml @@ -35,13 +35,14 @@ items: assemblies: - Butterfly.SQLite namespace: Butterfly.SQLite - summary: "\nBase class implementing . New implementations will normally extend this class.\n" example: [] syntax: content: 'public class SQLiteDatabase : BaseDatabase, IDatabase' content.vb: >- Public Class SQLiteDatabase + Inherits BaseDatabase + Implements IDatabase inheritance: - System.Object diff --git a/docfx_project/api/Butterfly.SQLite.SQLiteTransaction.yml b/docfx_project/api/Butterfly.SQLite.SQLiteTransaction.yml index 6f962f62..6168f01b 100644 --- a/docfx_project/api/Butterfly.SQLite.SQLiteTransaction.yml +++ b/docfx_project/api/Butterfly.SQLite.SQLiteTransaction.yml @@ -41,13 +41,14 @@ items: assemblies: - Butterfly.SQLite namespace: Butterfly.SQLite - summary: "\nBase class implementing .\n" example: [] syntax: content: 'public class SQLiteTransaction : BaseTransaction, ITransaction, IDisposable' content.vb: >- Public Class SQLiteTransaction + Inherits BaseTransaction + Implements ITransaction, IDisposable inheritance: - System.Object @@ -58,7 +59,7 @@ items: inheritedMembers: - Butterfly.Core.Database.BaseTransaction.database - Butterfly.Core.Database.BaseTransaction.dataEvents - - Butterfly.Core.Database.BaseTransaction.onCommits + - Butterfly.Core.Database.BaseTransaction.onCommitRefs - Butterfly.Core.Database.BaseTransaction.Database - Butterfly.Core.Database.BaseTransaction.Create(Butterfly.Core.Database.CreateStatement) - Butterfly.Core.Database.BaseTransaction.CreateAsync(Butterfly.Core.Database.CreateStatement) @@ -76,7 +77,7 @@ items: - Butterfly.Core.Database.BaseTransaction.TruncateAsync(System.String) - Butterfly.Core.Database.BaseTransaction.Commit - Butterfly.Core.Database.BaseTransaction.CommitAsync - - Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) + - Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) - Butterfly.Core.Database.BaseTransaction.Rollback modifiers.csharp: - public @@ -780,12 +781,12 @@ references: name: dataEvents nameWithType: BaseTransaction.dataEvents fullName: Butterfly.Core.Database.BaseTransaction.dataEvents -- uid: Butterfly.Core.Database.BaseTransaction.onCommits - commentId: F:Butterfly.Core.Database.BaseTransaction.onCommits +- uid: Butterfly.Core.Database.BaseTransaction.onCommitRefs + commentId: F:Butterfly.Core.Database.BaseTransaction.onCommitRefs parent: Butterfly.Core.Database.BaseTransaction - name: onCommits - nameWithType: BaseTransaction.onCommits - fullName: Butterfly.Core.Database.BaseTransaction.onCommits + name: onCommitRefs + nameWithType: BaseTransaction.onCommitRefs + fullName: Butterfly.Core.Database.BaseTransaction.onCommitRefs - uid: Butterfly.Core.Database.BaseTransaction.Database commentId: P:Butterfly.Core.Database.BaseTransaction.Database parent: Butterfly.Core.Database.BaseTransaction @@ -1925,18 +1926,18 @@ references: - name: ) nameWithType: ) fullName: ) -- uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) - commentId: M:Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) +- uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) + commentId: M:Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) parent: Butterfly.Core.Database.BaseTransaction isExternal: true - name: OnCommit(Func<>) - nameWithType: BaseTransaction.OnCommit(Func<>) - fullName: Butterfly.Core.Database.BaseTransaction.OnCommit(Func<>) - nameWithType.vb: BaseTransaction.OnCommit(Func(Of )) - fullName.vb: Butterfly.Core.Database.BaseTransaction.OnCommit(Func(Of )) - name.vb: OnCommit(Func(Of )) + name: OnCommit(Func<>, String) + nameWithType: BaseTransaction.OnCommit(Func<>, String) + fullName: Butterfly.Core.Database.BaseTransaction.OnCommit(Func<>, System.String) + nameWithType.vb: BaseTransaction.OnCommit(Func(Of ), String) + fullName.vb: Butterfly.Core.Database.BaseTransaction.OnCommit(Func(Of ), System.String) + name.vb: OnCommit(Func(Of ), String) spec.csharp: - - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) + - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) name: OnCommit nameWithType: BaseTransaction.OnCommit fullName: Butterfly.Core.Database.BaseTransaction.OnCommit @@ -1957,11 +1958,19 @@ references: - name: '>' nameWithType: '>' fullName: '>' + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true - name: ) nameWithType: ) fullName: ) spec.vb: - - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) + - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) name: OnCommit nameWithType: BaseTransaction.OnCommit fullName: Butterfly.Core.Database.BaseTransaction.OnCommit @@ -1982,6 +1991,14 @@ references: - name: ) nameWithType: ) fullName: ) + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true - name: ) nameWithType: ) fullName: ) diff --git a/docfx_project/api/Butterfly.SqlServer.SqlServerTransaction.yml b/docfx_project/api/Butterfly.SqlServer.SqlServerTransaction.yml index f2cb2e2c..000160bf 100644 --- a/docfx_project/api/Butterfly.SqlServer.SqlServerTransaction.yml +++ b/docfx_project/api/Butterfly.SqlServer.SqlServerTransaction.yml @@ -54,7 +54,7 @@ items: inheritedMembers: - Butterfly.Core.Database.BaseTransaction.database - Butterfly.Core.Database.BaseTransaction.dataEvents - - Butterfly.Core.Database.BaseTransaction.onCommits + - Butterfly.Core.Database.BaseTransaction.onCommitRefs - Butterfly.Core.Database.BaseTransaction.Database - Butterfly.Core.Database.BaseTransaction.Create(Butterfly.Core.Database.CreateStatement) - Butterfly.Core.Database.BaseTransaction.CreateAsync(Butterfly.Core.Database.CreateStatement) @@ -72,7 +72,7 @@ items: - Butterfly.Core.Database.BaseTransaction.TruncateAsync(System.String) - Butterfly.Core.Database.BaseTransaction.Commit - Butterfly.Core.Database.BaseTransaction.CommitAsync - - Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) + - Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) - Butterfly.Core.Database.BaseTransaction.Rollback modifiers.csharp: - public @@ -628,12 +628,12 @@ references: name: dataEvents nameWithType: BaseTransaction.dataEvents fullName: Butterfly.Core.Database.BaseTransaction.dataEvents -- uid: Butterfly.Core.Database.BaseTransaction.onCommits - commentId: F:Butterfly.Core.Database.BaseTransaction.onCommits +- uid: Butterfly.Core.Database.BaseTransaction.onCommitRefs + commentId: F:Butterfly.Core.Database.BaseTransaction.onCommitRefs parent: Butterfly.Core.Database.BaseTransaction - name: onCommits - nameWithType: BaseTransaction.onCommits - fullName: Butterfly.Core.Database.BaseTransaction.onCommits + name: onCommitRefs + nameWithType: BaseTransaction.onCommitRefs + fullName: Butterfly.Core.Database.BaseTransaction.onCommitRefs - uid: Butterfly.Core.Database.BaseTransaction.Database commentId: P:Butterfly.Core.Database.BaseTransaction.Database parent: Butterfly.Core.Database.BaseTransaction @@ -1773,18 +1773,18 @@ references: - name: ) nameWithType: ) fullName: ) -- uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) - commentId: M:Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) +- uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) + commentId: M:Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) parent: Butterfly.Core.Database.BaseTransaction isExternal: true - name: OnCommit(Func<>) - nameWithType: BaseTransaction.OnCommit(Func<>) - fullName: Butterfly.Core.Database.BaseTransaction.OnCommit(Func<>) - nameWithType.vb: BaseTransaction.OnCommit(Func(Of )) - fullName.vb: Butterfly.Core.Database.BaseTransaction.OnCommit(Func(Of )) - name.vb: OnCommit(Func(Of )) + name: OnCommit(Func<>, String) + nameWithType: BaseTransaction.OnCommit(Func<>, String) + fullName: Butterfly.Core.Database.BaseTransaction.OnCommit(Func<>, System.String) + nameWithType.vb: BaseTransaction.OnCommit(Func(Of ), String) + fullName.vb: Butterfly.Core.Database.BaseTransaction.OnCommit(Func(Of ), System.String) + name.vb: OnCommit(Func(Of ), String) spec.csharp: - - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) + - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) name: OnCommit nameWithType: BaseTransaction.OnCommit fullName: Butterfly.Core.Database.BaseTransaction.OnCommit @@ -1805,11 +1805,19 @@ references: - name: '>' nameWithType: '>' fullName: '>' + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true - name: ) nameWithType: ) fullName: ) spec.vb: - - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0}) + - uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{`0},System.String) name: OnCommit nameWithType: BaseTransaction.OnCommit fullName: Butterfly.Core.Database.BaseTransaction.OnCommit @@ -1830,6 +1838,14 @@ references: - name: ) nameWithType: ) fullName: ) + - name: ', ' + nameWithType: ', ' + fullName: ', ' + - uid: System.String + name: String + nameWithType: String + fullName: System.String + isExternal: true - name: ) nameWithType: ) fullName: ) diff --git a/docfx_project/api/Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.yml b/docfx_project/api/Butterfly.Twilio.TwilioPhoneNotifyMessageSender.yml similarity index 69% rename from docfx_project/api/Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.yml rename to docfx_project/api/Butterfly.Twilio.TwilioPhoneNotifyMessageSender.yml index 14bcc29b..995a5aa6 100644 --- a/docfx_project/api/Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.yml +++ b/docfx_project/api/Butterfly.Twilio.TwilioPhoneNotifyMessageSender.yml @@ -1,37 +1,37 @@ ### YamlMime:ManagedReference items: -- uid: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender - commentId: T:Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender - id: TwilioPhoneTextNotifyMessageSender +- uid: Butterfly.Twilio.TwilioPhoneNotifyMessageSender + commentId: T:Butterfly.Twilio.TwilioPhoneNotifyMessageSender + id: TwilioPhoneNotifyMessageSender parent: Butterfly.Twilio children: - - Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.#ctor(System.String,System.String) - - Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.DoSendAsync(System.String,System.String,System.String,System.String,System.String) - - Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.logger - - Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.twilioAccountSid - - Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.twilioAuthToken + - Butterfly.Twilio.TwilioPhoneNotifyMessageSender.#ctor(System.String,System.String) + - Butterfly.Twilio.TwilioPhoneNotifyMessageSender.DoSendAsync(System.String,System.String,System.String,System.String,System.String) + - Butterfly.Twilio.TwilioPhoneNotifyMessageSender.logger + - Butterfly.Twilio.TwilioPhoneNotifyMessageSender.twilioAccountSid + - Butterfly.Twilio.TwilioPhoneNotifyMessageSender.twilioAuthToken langs: - csharp - vb - name: TwilioPhoneTextNotifyMessageSender - nameWithType: TwilioPhoneTextNotifyMessageSender - fullName: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender + name: TwilioPhoneNotifyMessageSender + nameWithType: TwilioPhoneNotifyMessageSender + fullName: Butterfly.Twilio.TwilioPhoneNotifyMessageSender type: Class source: remote: - path: Butterfly.Twilio/TwilioPhoneTextNotifyMessageSender.cs + path: Butterfly.Twilio/TwilioPhoneNotifyMessageSender.cs branch: master repo: https://github.com/firesharkstudios/Butterfly.git - id: TwilioPhoneTextNotifyMessageSender - path: ../Butterfly.Twilio/TwilioPhoneTextNotifyMessageSender.cs - startLine: 16 + id: TwilioPhoneNotifyMessageSender + path: ../Butterfly.Twilio/TwilioPhoneNotifyMessageSender.cs + startLine: 18 assemblies: - Butterfly.Twilio namespace: Butterfly.Twilio syntax: - content: 'public class TwilioPhoneTextNotifyMessageSender : BaseNotifyMessageSender, INotifyMessageSender' + content: 'public class TwilioPhoneNotifyMessageSender : BaseNotifyMessageSender, INotifyMessageSender' content.vb: >- - Public Class TwilioPhoneTextNotifyMessageSender + Public Class TwilioPhoneNotifyMessageSender Inherits BaseNotifyMessageSender Implements INotifyMessageSender inheritance: @@ -50,25 +50,25 @@ items: modifiers.vb: - Public - Class -- uid: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.logger - commentId: F:Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.logger +- uid: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.logger + commentId: F:Butterfly.Twilio.TwilioPhoneNotifyMessageSender.logger id: logger - parent: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender + parent: Butterfly.Twilio.TwilioPhoneNotifyMessageSender langs: - csharp - vb name: logger - nameWithType: TwilioPhoneTextNotifyMessageSender.logger - fullName: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.logger + nameWithType: TwilioPhoneNotifyMessageSender.logger + fullName: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.logger type: Field source: remote: - path: Butterfly.Twilio/TwilioPhoneTextNotifyMessageSender.cs + path: Butterfly.Twilio/TwilioPhoneNotifyMessageSender.cs branch: master repo: https://github.com/firesharkstudios/Butterfly.git id: logger - path: ../Butterfly.Twilio/TwilioPhoneTextNotifyMessageSender.cs - startLine: 18 + path: ../Butterfly.Twilio/TwilioPhoneNotifyMessageSender.cs + startLine: 20 assemblies: - Butterfly.Twilio namespace: Butterfly.Twilio @@ -85,25 +85,25 @@ items: - Protected - Shared - ReadOnly -- uid: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.twilioAccountSid - commentId: F:Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.twilioAccountSid +- uid: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.twilioAccountSid + commentId: F:Butterfly.Twilio.TwilioPhoneNotifyMessageSender.twilioAccountSid id: twilioAccountSid - parent: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender + parent: Butterfly.Twilio.TwilioPhoneNotifyMessageSender langs: - csharp - vb name: twilioAccountSid - nameWithType: TwilioPhoneTextNotifyMessageSender.twilioAccountSid - fullName: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.twilioAccountSid + nameWithType: TwilioPhoneNotifyMessageSender.twilioAccountSid + fullName: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.twilioAccountSid type: Field source: remote: - path: Butterfly.Twilio/TwilioPhoneTextNotifyMessageSender.cs + path: Butterfly.Twilio/TwilioPhoneNotifyMessageSender.cs branch: master repo: https://github.com/firesharkstudios/Butterfly.git id: twilioAccountSid - path: ../Butterfly.Twilio/TwilioPhoneTextNotifyMessageSender.cs - startLine: 20 + path: ../Butterfly.Twilio/TwilioPhoneNotifyMessageSender.cs + startLine: 22 assemblies: - Butterfly.Twilio namespace: Butterfly.Twilio @@ -118,25 +118,25 @@ items: modifiers.vb: - Protected - ReadOnly -- uid: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.twilioAuthToken - commentId: F:Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.twilioAuthToken +- uid: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.twilioAuthToken + commentId: F:Butterfly.Twilio.TwilioPhoneNotifyMessageSender.twilioAuthToken id: twilioAuthToken - parent: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender + parent: Butterfly.Twilio.TwilioPhoneNotifyMessageSender langs: - csharp - vb name: twilioAuthToken - nameWithType: TwilioPhoneTextNotifyMessageSender.twilioAuthToken - fullName: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.twilioAuthToken + nameWithType: TwilioPhoneNotifyMessageSender.twilioAuthToken + fullName: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.twilioAuthToken type: Field source: remote: - path: Butterfly.Twilio/TwilioPhoneTextNotifyMessageSender.cs + path: Butterfly.Twilio/TwilioPhoneNotifyMessageSender.cs branch: master repo: https://github.com/firesharkstudios/Butterfly.git id: twilioAuthToken - path: ../Butterfly.Twilio/TwilioPhoneTextNotifyMessageSender.cs - startLine: 21 + path: ../Butterfly.Twilio/TwilioPhoneNotifyMessageSender.cs + startLine: 23 assemblies: - Butterfly.Twilio namespace: Butterfly.Twilio @@ -151,60 +151,60 @@ items: modifiers.vb: - Protected - ReadOnly -- uid: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.#ctor(System.String,System.String) - commentId: M:Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.#ctor(System.String,System.String) +- uid: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.#ctor(System.String,System.String) + commentId: M:Butterfly.Twilio.TwilioPhoneNotifyMessageSender.#ctor(System.String,System.String) id: '#ctor(System.String,System.String)' - parent: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender + parent: Butterfly.Twilio.TwilioPhoneNotifyMessageSender langs: - csharp - vb - name: TwilioPhoneTextNotifyMessageSender(String, String) - nameWithType: TwilioPhoneTextNotifyMessageSender.TwilioPhoneTextNotifyMessageSender(String, String) - fullName: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.TwilioPhoneTextNotifyMessageSender(System.String, System.String) + name: TwilioPhoneNotifyMessageSender(String, String) + nameWithType: TwilioPhoneNotifyMessageSender.TwilioPhoneNotifyMessageSender(String, String) + fullName: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.TwilioPhoneNotifyMessageSender(System.String, System.String) type: Constructor source: remote: - path: Butterfly.Twilio/TwilioPhoneTextNotifyMessageSender.cs + path: Butterfly.Twilio/TwilioPhoneNotifyMessageSender.cs branch: master repo: https://github.com/firesharkstudios/Butterfly.git id: .ctor - path: ../Butterfly.Twilio/TwilioPhoneTextNotifyMessageSender.cs - startLine: 23 + path: ../Butterfly.Twilio/TwilioPhoneNotifyMessageSender.cs + startLine: 25 assemblies: - Butterfly.Twilio namespace: Butterfly.Twilio syntax: - content: public TwilioPhoneTextNotifyMessageSender(string twilioAccountSid, string twilioAuthToken) + content: public TwilioPhoneNotifyMessageSender(string twilioAccountSid, string twilioAuthToken) parameters: - id: twilioAccountSid type: System.String - id: twilioAuthToken type: System.String content.vb: Public Sub New(twilioAccountSid As String, twilioAuthToken As String) - overload: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.#ctor* + overload: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.#ctor* modifiers.csharp: - public modifiers.vb: - Public -- uid: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.DoSendAsync(System.String,System.String,System.String,System.String,System.String) - commentId: M:Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.DoSendAsync(System.String,System.String,System.String,System.String,System.String) +- uid: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.DoSendAsync(System.String,System.String,System.String,System.String,System.String) + commentId: M:Butterfly.Twilio.TwilioPhoneNotifyMessageSender.DoSendAsync(System.String,System.String,System.String,System.String,System.String) id: DoSendAsync(System.String,System.String,System.String,System.String,System.String) - parent: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender + parent: Butterfly.Twilio.TwilioPhoneNotifyMessageSender langs: - csharp - vb name: DoSendAsync(String, String, String, String, String) - nameWithType: TwilioPhoneTextNotifyMessageSender.DoSendAsync(String, String, String, String, String) - fullName: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.DoSendAsync(System.String, System.String, System.String, System.String, System.String) + nameWithType: TwilioPhoneNotifyMessageSender.DoSendAsync(String, String, String, String, String) + fullName: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.DoSendAsync(System.String, System.String, System.String, System.String, System.String) type: Method source: remote: - path: Butterfly.Twilio/TwilioPhoneTextNotifyMessageSender.cs + path: Butterfly.Twilio/TwilioPhoneNotifyMessageSender.cs branch: master repo: https://github.com/firesharkstudios/Butterfly.git id: DoSendAsync - path: ../Butterfly.Twilio/TwilioPhoneTextNotifyMessageSender.cs - startLine: 28 + path: ../Butterfly.Twilio/TwilioPhoneNotifyMessageSender.cs + startLine: 30 assemblies: - Butterfly.Twilio namespace: Butterfly.Twilio @@ -224,7 +224,7 @@ items: return: type: Task{System.String} content.vb: Protected Overrides Function DoSendAsync(from As String, to As String, subject As String, bodyText As String, bodyHtml As String) As Task(Of String) - overload: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.DoSendAsync* + overload: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.DoSendAsync* modifiers.csharp: - protected - override @@ -391,16 +391,16 @@ references: name: String nameWithType: String fullName: System.String -- uid: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.#ctor* - commentId: Overload:Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.#ctor - name: TwilioPhoneTextNotifyMessageSender - nameWithType: TwilioPhoneTextNotifyMessageSender.TwilioPhoneTextNotifyMessageSender - fullName: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.TwilioPhoneTextNotifyMessageSender -- uid: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.DoSendAsync* - commentId: Overload:Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.DoSendAsync +- uid: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.#ctor* + commentId: Overload:Butterfly.Twilio.TwilioPhoneNotifyMessageSender.#ctor + name: TwilioPhoneNotifyMessageSender + nameWithType: TwilioPhoneNotifyMessageSender.TwilioPhoneNotifyMessageSender + fullName: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.TwilioPhoneNotifyMessageSender +- uid: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.DoSendAsync* + commentId: Overload:Butterfly.Twilio.TwilioPhoneNotifyMessageSender.DoSendAsync name: DoSendAsync - nameWithType: TwilioPhoneTextNotifyMessageSender.DoSendAsync - fullName: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.DoSendAsync + nameWithType: TwilioPhoneNotifyMessageSender.DoSendAsync + fullName: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.DoSendAsync - uid: Task{System.String} commentId: '!:Task{System.String}' definition: Task`1 diff --git a/docfx_project/api/Butterfly.Twilio.yml b/docfx_project/api/Butterfly.Twilio.yml index a59f84b9..bf21caf6 100644 --- a/docfx_project/api/Butterfly.Twilio.yml +++ b/docfx_project/api/Butterfly.Twilio.yml @@ -5,7 +5,7 @@ items: id: Butterfly.Twilio children: - Butterfly.Twilio.TwilioModule - - Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender + - Butterfly.Twilio.TwilioPhoneNotifyMessageSender langs: - csharp - vb @@ -21,9 +21,9 @@ references: name: TwilioModule nameWithType: TwilioModule fullName: Butterfly.Twilio.TwilioModule -- uid: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender - commentId: T:Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender - name: TwilioPhoneTextNotifyMessageSender - nameWithType: TwilioPhoneTextNotifyMessageSender - fullName: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender +- uid: Butterfly.Twilio.TwilioPhoneNotifyMessageSender + commentId: T:Butterfly.Twilio.TwilioPhoneNotifyMessageSender + name: TwilioPhoneNotifyMessageSender + nameWithType: TwilioPhoneNotifyMessageSender + fullName: Butterfly.Twilio.TwilioPhoneNotifyMessageSender shouldSkipMarkup: true diff --git a/docfx_project/api/toc.yml b/docfx_project/api/toc.yml index f7f1ad08..e953eb7a 100644 --- a/docfx_project/api/toc.yml +++ b/docfx_project/api/toc.yml @@ -27,6 +27,16 @@ name: AuthManager - uid: Butterfly.Core.Auth.AuthToken name: AuthToken + - uid: Butterfly.Core.Auth.IAuthenticator + name: IAuthenticator + - uid: Butterfly.Core.Auth.ShareCodeAuthenticator + name: ShareCodeAuthenticator + - uid: Butterfly.Core.Auth.ShareCodeToken + name: ShareCodeToken + - uid: Butterfly.Core.Auth.UserRefToken + name: UserRefToken + - uid: Butterfly.Core.Auth.UserRefTokenAuthenticator + name: UserRefTokenAuthenticator - uid: Butterfly.Core.Channel name: Butterfly.Core.Channel items: @@ -71,6 +81,8 @@ name: ITransaction - uid: Butterfly.Core.Database.JoinType name: JoinType + - uid: Butterfly.Core.Database.OnCommitRef + name: OnCommitRef - uid: Butterfly.Core.Database.SelectStatement name: SelectStatement - uid: Butterfly.Core.Database.StatementEqualsRef @@ -222,6 +234,8 @@ name: UnauthorizedException - uid: Butterfly.Core.Util.UriX name: UriX + - uid: Butterfly.Core.Util.WebClientWithTimeout + name: WebClientWithTimeout - uid: Butterfly.Core.Util.Field name: Butterfly.Core.Util.Field items: @@ -364,5 +378,5 @@ items: - uid: Butterfly.Twilio.TwilioModule name: TwilioModule - - uid: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender - name: TwilioPhoneTextNotifyMessageSender + - uid: Butterfly.Twilio.TwilioPhoneNotifyMessageSender + name: TwilioPhoneNotifyMessageSender diff --git a/docs/docfx/api/Butterfly.Core.Auth.AuthManager.html b/docs/docfx/api/Butterfly.Core.Auth.AuthManager.html index c2e9fe86..86283c9c 100644 --- a/docs/docfx/api/Butterfly.Core.Auth.AuthManager.html +++ b/docs/docfx/api/Butterfly.Core.Auth.AuthManager.html @@ -147,14 +147,14 @@
Remarks

Constructors

-

AuthManager(IDatabase, Int32, Int32, Int32, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Func<String, Int32, Task>, Func<String, Int32, Task>, Func<System.Collections.Generic.Dictionary<String, Object>, Task>, Func<System.Collections.Generic.Dictionary<String, Object>, Task>, Action<Version>)

+

AuthManager(IDatabase, Int32, Int32, Int32, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Func<String, Int32, Task>, Func<String, Int32, Task>, Func<System.Collections.Generic.Dictionary<String, Object>, Task>, Func<System.Collections.Generic.Dictionary<String, Object>, Task>, Action<Version>)

Create an instance of AuthManager
Declaration
-
public AuthManager(IDatabase database, int authTokenDurationDays = 90, int resetCodeLength = 6, int resetTokenDurationMinutes = 90, string accountTableName = "account", string userTableName = "user", string userTableIdFieldName = "id", string userTableUsernameFieldName = "username", string userTableEmailFieldName = "email", string userTableEmailVerifiedAtFieldName = "email_verified_at", string userTablePhoneFieldName = "phone", string userTablePhoneVerifiedAtFieldName = "phone_verified_at", string userTableSaltFieldName = "salt", string userTablePasswordHashFieldName = "password_hash", string userTableFirstNameFieldName = "first_name", string userTableLastNameFieldName = "last_name", string userTableResetCodeFieldName = "reset_code", string userTableResetCodeExpiresAtFieldName = "reset_code_expires_at", string userTableAccountIdFieldName = "account_id", string userTableRoleFieldName = "role", string authTokenTableName = "auth_token", string authTokenIdFieldName = "id", string authTokenTableUserIdFieldName = "user_id", string authTokenTableExpiresAtFieldName = "expires_at", string defaultRole = null, Func<string, int, Task> onEmailVerify = null, Func<string, int, Task> onPhoneVerify = null, Func<System.Collections.Generic.Dictionary<string, object>, Task> onRegister = null, Func<System.Collections.Generic.Dictionary<string, object>, Task> onForgotPassword = null, Action<Version> onCheckVersion = null)
+
public AuthManager(IDatabase database, int authTokenDurationDays = 90, int resetCodeLength = 6, int resetTokenDurationMinutes = 90, string accountTableName = "account", string accountTableIdFieldName = "id", string accountTableShareCodeFieldName = "share_code", string userTableName = "user", string userTableIdFieldName = "id", string userTableUsernameFieldName = "username", string userTableEmailFieldName = "email", string userTableEmailVerifiedAtFieldName = "email_verified_at", string userTablePhoneFieldName = "phone", string userTablePhoneVerifiedAtFieldName = "phone_verified_at", string userTableSaltFieldName = "salt", string userTablePasswordHashFieldName = "password_hash", string userTableFirstNameFieldName = "first_name", string userTableLastNameFieldName = "last_name", string userTableResetCodeFieldName = "reset_code", string userTableResetCodeExpiresAtFieldName = "reset_code_expires_at", string userTableAccountIdFieldName = "account_id", string userTableRoleFieldName = "role", string defaultRole = null, Func<string, int, Task> onEmailVerify = null, Func<string, int, Task> onPhoneVerify = null, Func<System.Collections.Generic.Dictionary<string, object>, Task> onRegister = null, Func<System.Collections.Generic.Dictionary<string, object>, Task> onForgotPassword = null, Action<Version> onCheckVersion = null)
Parameters
@@ -191,6 +191,16 @@
Parameters
+ + + + + + + + + + @@ -266,26 +276,6 @@
Parameters
- - - - - - - - - - - - - - - - - - - - @@ -320,12 +310,12 @@
Parameters
accountTableName Table name of the account table (default is "account")
System.StringaccountTableIdFieldNameField name of the id field on the account table (default is "id")
System.StringaccountTableShareCodeFieldNameField name of the share code field on the account table (default is "share_code")
System.String userTableName userTableRoleFieldName Field name of the role field on the user table (default is "role")
System.StringauthTokenTableNameTable name of the auth token table (default is "auth_token")
System.StringauthTokenIdFieldNameField name of the id field on the auth token table (default is "id")
System.StringauthTokenTableUserIdFieldNameField name of the user id field on the auth token table (default is "user_id")
System.StringauthTokenTableExpiresAtFieldNameField name of the expires at field on the auth token table (default is "expires_at")
System.String defaultRole

Fields

-

accountTableName

+

accountTableIdFieldName

Declaration
-
protected readonly string accountTableName
+
protected readonly string accountTableIdFieldName
Field Value
@@ -342,34 +332,12 @@
Field Value
-

authTokenDurationDays

-
-
-
Declaration
-
-
protected readonly int authTokenDurationDays
-
-
Field Value
- - - - - - - - - - - - - -
TypeDescription
System.Int32
-

authTokenIdFieldName

+

accountTableName

Declaration
-
protected readonly string authTokenIdFieldName
+
protected readonly string accountTableName
Field Value
@@ -386,12 +354,12 @@
Field Value
-

authTokenTableExpiresAtFieldName

+

accountTableShareCodeFieldName

Declaration
-
protected readonly string authTokenTableExpiresAtFieldName
+
protected readonly string accountTableShareCodeFieldName
Field Value
@@ -408,12 +376,12 @@
Field Value
-

authTokenTableName

+

authenticatorByType

Declaration
-
protected readonly string authTokenTableName
+
protected readonly Dictionary<string, IAuthenticator> authenticatorByType
Field Value
@@ -425,17 +393,17 @@
Field Value
- +
System.StringDictionary<System.String, IAuthenticator>
-

authTokenTableUserIdFieldName

+

authTokenDurationDays

Declaration
-
protected readonly string authTokenTableUserIdFieldName
+
protected readonly int authTokenDurationDays
Field Value
@@ -447,7 +415,7 @@
Field Value
- + @@ -760,6 +728,28 @@
Field Value
System.StringSystem.Int32
+

shareCodeAuthenticator

+
+
+
Declaration
+
+
protected readonly ShareCodeAuthenticator shareCodeAuthenticator
+
+
Field Value
+ + + + + + + + + + + + + +
TypeDescription
ShareCodeAuthenticator

usernameFieldValidator

@@ -782,6 +772,28 @@
Field Value
+

userRefTokenAuthenticator

+
+
+
Declaration
+
+
protected readonly UserRefTokenAuthenticator userRefTokenAuthenticator
+
+
Field Value
+ + + + + + + + + + + + + +
TypeDescription
UserRefTokenAuthenticator

userTableAccountIdFieldName

@@ -1137,14 +1149,14 @@
Field Value

Methods

-

AuthenticateAsync(String)

+

AuthenticateAsync(String, String)

Validates the auth token id returning an AuthToken instance
Declaration
-
public Task<AuthToken> AuthenticateAsync(string authTokenId)
+
public Task<AuthToken> AuthenticateAsync(string authType, string authValue)
Parameters
@@ -1158,7 +1170,12 @@
Parameters
- + + + + + + @@ -1243,15 +1260,13 @@
Returns
System.StringauthTokenIdauthType
System.StringauthValue
- -

CreateAuthTokenAsync(String)

-
-Create an auth token -
+ +

CreateResetCodeAsync(String)

+
Declaration
-
public Task<AuthToken> CreateAuthTokenAsync(string userId)
+
protected Task<string> CreateResetCodeAsync(string userId)
Parameters
@@ -1280,18 +1295,20 @@
Returns
- - + +
Task<AuthToken>The AuthToken instance createdTask<System.String>
- -

CreateResetCodeAsync(String)

-
+ +

CreateUserRefTokenAsync(String)

+
+Create an auth token +
Declaration
-
protected Task<string> CreateResetCodeAsync(string userId)
+
public Task<UserRefToken> CreateUserRefTokenAsync(string userId)
Parameters
@@ -1320,8 +1337,8 @@
Returns
- - + +
Task<System.String>Task<UserRefToken>The AuthToken instance created
@@ -1375,7 +1392,7 @@

Declaration
-
public Task<AuthToken> LoginAsync(System.Collections.Generic.Dictionary<string, object> login)
+
public Task<UserRefToken> LoginAsync(System.Collections.Generic.Dictionary<string, object> login)
Parameters
@@ -1404,7 +1421,7 @@
Returns
- + @@ -1464,7 +1481,7 @@

Declaration
-
public Task<AuthToken> RegisterAsync(dynamic input, System.Collections.Generic.Dictionary<string, object> notifyData = null)
+
public Task<UserRefToken> RegisterAsync(dynamic input, System.Collections.Generic.Dictionary<string, object> notifyData = null)
Parameters
Task<AuthToken>Task<UserRefToken>
@@ -1498,7 +1515,7 @@
Returns
- + diff --git a/docs/docfx/api/Butterfly.Core.Auth.AuthToken.html b/docs/docfx/api/Butterfly.Core.Auth.AuthToken.html index d20e5138..9f352a82 100644 --- a/docs/docfx/api/Butterfly.Core.Auth.AuthToken.html +++ b/docs/docfx/api/Butterfly.Core.Auth.AuthToken.html @@ -81,22 +81,24 @@

Inheritance

System.Object
AuthToken
+ +
Namespace: Butterfly.Core.Auth
Assembly: Butterfly.Core.dll
Syntax
-
public class AuthToken : object
+
public abstract class AuthToken : object

Constructors

-

AuthToken(String, String, String, String, String, DateTime)

+

AuthToken(String, String, String)

Declaration
-
public AuthToken(string id, string userId, string username, string role, string accountId, DateTime expiresAt)
+
public AuthToken(string type, string accountId, string role)
Parameters
Task<AuthToken>Task<UserRefToken>
@@ -110,17 +112,12 @@
Parameters
- + - - - - - - + @@ -128,16 +125,6 @@
Parameters
- - - - - - - - - -
System.Stringidtype
System.StringuserId
System.StringusernameaccountId
role
System.StringaccountId
DateTimeexpiresAt

Fields @@ -164,50 +151,6 @@

Field Value
-

expiresAt

-
-
-
Declaration
-
-
public readonly DateTime expiresAt
-
-
Field Value
- - - - - - - - - - - - - -
TypeDescription
DateTime
-

id

-
-
-
Declaration
-
-
public readonly string id
-
-
Field Value
- - - - - - - - - - - - - -
TypeDescription
System.String

role

@@ -230,34 +173,12 @@
Field Value
-

userId

-
-
-
Declaration
-
-
public readonly string userId
-
-
Field Value
- - - - - - - - - - - - - -
TypeDescription
System.String
-

username

+

type

Declaration
-
public readonly string username
+
public readonly string type
Field Value
@@ -274,78 +195,6 @@
Field Value
-

Methods -

- -

FromDict(System.Collections.Generic.Dictionary<String, Object>, String, String, String, String, String, String)

-
-
-
Declaration
-
-
public static AuthToken FromDict(System.Collections.Generic.Dictionary<string, object> dict, string idFieldName, string userIdFieldName, string usernameFieldName, string roleFieldName, string accountIdFieldName, string expiresAtFieldName)
-
-
Parameters
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeNameDescription
System.Collections.Generic.Dictionary<System.String, System.Object>dict
System.StringidFieldName
System.StringuserIdFieldName
System.StringusernameFieldName
System.StringroleFieldName
System.StringaccountIdFieldName
System.StringexpiresAtFieldName
-
Returns
- - - - - - - - - - - - - -
TypeDescription
AuthToken
diff --git a/docs/docfx/api/Butterfly.Core.Auth.IAuthenticator.html b/docs/docfx/api/Butterfly.Core.Auth.IAuthenticator.html new file mode 100644 index 00000000..71f0e5f9 --- /dev/null +++ b/docs/docfx/api/Butterfly.Core.Auth.IAuthenticator.html @@ -0,0 +1,162 @@ + + + + + + + + Interface IAuthenticator + | Butterfly Server .NET API Documentation + + + + + + + + + + + + + + + +
+
+ + + + +
+ + + +
+ + + + + + diff --git a/docs/docfx/api/Butterfly.Core.Auth.ShareCodeAuthenticator.html b/docs/docfx/api/Butterfly.Core.Auth.ShareCodeAuthenticator.html new file mode 100644 index 00000000..a5310780 --- /dev/null +++ b/docs/docfx/api/Butterfly.Core.Auth.ShareCodeAuthenticator.html @@ -0,0 +1,355 @@ + + + + + + + + Class ShareCodeAuthenticator + | Butterfly Server .NET API Documentation + + + + + + + + + + + + + + + +
+
+ + + + +
+ + + +
+ + + + + + diff --git a/docs/docfx/api/Butterfly.Core.Auth.ShareCodeToken.html b/docs/docfx/api/Butterfly.Core.Auth.ShareCodeToken.html new file mode 100644 index 00000000..8c088a7a --- /dev/null +++ b/docs/docfx/api/Butterfly.Core.Auth.ShareCodeToken.html @@ -0,0 +1,167 @@ + + + + + + + + Class ShareCodeToken + | Butterfly Server .NET API Documentation + + + + + + + + + + + + + + + +
+
+ + + + +
+ + + +
+ + + + + + diff --git a/docs/docfx/api/Butterfly.Core.Auth.UserRefToken.html b/docs/docfx/api/Butterfly.Core.Auth.UserRefToken.html new file mode 100644 index 00000000..6ed5fcc7 --- /dev/null +++ b/docs/docfx/api/Butterfly.Core.Auth.UserRefToken.html @@ -0,0 +1,349 @@ + + + + + + + + Class UserRefToken + | Butterfly Server .NET API Documentation + + + + + + + + + + + + + + + +
+
+ + + + +
+ + + +
+ + + + + + diff --git a/docs/docfx/api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html b/docs/docfx/api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html new file mode 100644 index 00000000..b562979a --- /dev/null +++ b/docs/docfx/api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html @@ -0,0 +1,540 @@ + + + + + + + + Class UserRefTokenAuthenticator + | Butterfly Server .NET API Documentation + + + + + + + + + + + + + + + +
+
+ + + + +
+ + + +
+ + + + + + diff --git a/docs/docfx/api/Butterfly.Core.Auth.html b/docs/docfx/api/Butterfly.Core.Auth.html index e8808b71..fe9cc978 100644 --- a/docs/docfx/api/Butterfly.Core.Auth.html +++ b/docs/docfx/api/Butterfly.Core.Auth.html @@ -85,6 +85,22 @@

AuthToken

Represents the result of a successful LoginAsync(System.Collections.Generic.Dictionary<String, Object>) or RegisterAsync(Object, System.Collections.Generic.Dictionary<String, Object>)
+

ShareCodeAuthenticator

+
+

ShareCodeToken

+
+Represents the result of a successful LoginAsync(System.Collections.Generic.Dictionary<String, Object>) or RegisterAsync(Object, System.Collections.Generic.Dictionary<String, Object>) +
+

UserRefToken

+
+Represents the result of a successful LoginAsync(System.Collections.Generic.Dictionary<String, Object>) or RegisterAsync(Object, System.Collections.Generic.Dictionary<String, Object>) +
+

UserRefTokenAuthenticator

+
+

Interfaces +

+

IAuthenticator

+
diff --git a/docs/docfx/api/Butterfly.Core.Channel.BaseChannelConnection.html b/docs/docfx/api/Butterfly.Core.Channel.BaseChannelConnection.html index fe7b32fd..46fc45a8 100644 --- a/docs/docfx/api/Butterfly.Core.Channel.BaseChannelConnection.html +++ b/docs/docfx/api/Butterfly.Core.Channel.BaseChannelConnection.html @@ -487,14 +487,14 @@
Declaration
protected virtual void DoDispose()
-

QueueMessage(String, String, Object)

+

QueueMessage(String, String, Object, Boolean)

Queue an object to be sent over the channel to the client. The queue is processed by a background thread when the Channel is started.
Declaration
-
public void QueueMessage(string channelKey = null, string messageType = null, object data = null)
+
public void QueueMessage(string channelKey = null, string messageType = null, object data = null, bool immediate = false)
Parameters
@@ -521,6 +521,11 @@
Parameters
+ + + + +
data The value to be sent to the client (will be converted to JSON)
System.Booleanimmediate
diff --git a/docs/docfx/api/Butterfly.Core.Channel.BaseSubscriptionApi.html b/docs/docfx/api/Butterfly.Core.Channel.BaseSubscriptionApi.html index cba0d74e..530a4ebb 100644 --- a/docs/docfx/api/Butterfly.Core.Channel.BaseSubscriptionApi.html +++ b/docs/docfx/api/Butterfly.Core.Channel.BaseSubscriptionApi.html @@ -95,17 +95,6 @@
Syntax
public abstract class BaseSubscriptionApi : object, ISubscriptionApi, IDisposable
-
Remarks
-
-Listen for subscription requests to the todos channel...

-

// Listen for subscribe requests...
-// - The handler must return an IDisposable object (gets disposed when the channel is unsubscribed)
-// - The handler can push data to the client by calling channel.Queue()
-subscriptionApi.OnSubscribe("todos", (vars, channel) => {
-    return database.CreateAndStartDynamicView("todo", dataEventTransaction => channel.Queue(dataEventTransaction));
-});
-subscriptionApi.Start();
-

Constructors

diff --git a/docs/docfx/api/Butterfly.Core.Channel.IChannelConnection.html b/docs/docfx/api/Butterfly.Core.Channel.IChannelConnection.html index 7edf6b2a..2ca80e4c 100644 --- a/docs/docfx/api/Butterfly.Core.Channel.IChannelConnection.html +++ b/docs/docfx/api/Butterfly.Core.Channel.IChannelConnection.html @@ -180,12 +180,12 @@
Property Value

Methods

-

QueueMessage(String, String, Object)

+

QueueMessage(String, String, Object, Boolean)

Declaration
-
void QueueMessage(string channelKey = null, string messageType = null, object data = null)
+
void QueueMessage(string channelKey = null, string messageType = null, object data = null, bool immediate = false)
Parameters
@@ -212,6 +212,11 @@
Parameters
+ + + + +
data
System.Booleanimmediate
diff --git a/docs/docfx/api/Butterfly.Core.Database.BaseTransaction.html b/docs/docfx/api/Butterfly.Core.Database.BaseTransaction.html index db02fe7f..132a48e4 100644 --- a/docs/docfx/api/Butterfly.Core.Database.BaseTransaction.html +++ b/docs/docfx/api/Butterfly.Core.Database.BaseTransaction.html @@ -171,12 +171,12 @@
Field Value
-

onCommits

+

onCommitRefs

Declaration
-
protected readonly List<Func<Task>> onCommits
+
protected readonly List<OnCommitRef> onCommitRefs
Field Value
@@ -188,7 +188,7 @@
Field Value
- + @@ -940,12 +940,12 @@
Type Parameters
List<Func<Task>>List<OnCommitRef>
-

OnCommit(Func<Task>)

+

OnCommit(Func<Task>, String)

Declaration
-
public void OnCommit(Func<Task> onCommit)
+
public void OnCommit(Func<Task> onCommit, string key = null)
Parameters
@@ -962,6 +962,11 @@
Parameters
+ + + + +
onCommit
System.Stringkey
diff --git a/docs/docfx/api/Butterfly.Core.Database.ITransaction.html b/docs/docfx/api/Butterfly.Core.Database.ITransaction.html index 111afe3c..47a97b0e 100644 --- a/docs/docfx/api/Butterfly.Core.Database.ITransaction.html +++ b/docs/docfx/api/Butterfly.Core.Database.ITransaction.html @@ -306,14 +306,14 @@
-

OnCommit(Func<Task>)

+

OnCommit(Func<Task>, String)

Register a callback that is invoked when the transaction is successfully committed
Declaration
-
void OnCommit(Func<Task> onCommit)
+
void OnCommit(Func<Task> onCommit, string key = null)
Parameters
@@ -330,6 +330,11 @@
Parameters
+ + + + +
onCommit
System.StringkeyProvide a key if you need to ensure only one onCommit instance is executed with that key
diff --git a/docs/docfx/api/Butterfly.Core.Database.Memory.MemoryDatabase.html b/docs/docfx/api/Butterfly.Core.Database.Memory.MemoryDatabase.html index ef58a743..edf42597 100644 --- a/docs/docfx/api/Butterfly.Core.Database.Memory.MemoryDatabase.html +++ b/docs/docfx/api/Butterfly.Core.Database.Memory.MemoryDatabase.html @@ -73,9 +73,7 @@

Class MemoryDatabase

-
-Base class implementing IDatabase. New implementations will normally extend this class. -
+
Inheritance
diff --git a/docs/docfx/api/Butterfly.Core.Database.Memory.MemoryTransaction.html b/docs/docfx/api/Butterfly.Core.Database.Memory.MemoryTransaction.html index 61e956b6..19fb70e3 100644 --- a/docs/docfx/api/Butterfly.Core.Database.Memory.MemoryTransaction.html +++ b/docs/docfx/api/Butterfly.Core.Database.Memory.MemoryTransaction.html @@ -73,9 +73,7 @@

Class MemoryTransaction

-
-Base class implementing ITransaction. -
+
Inheritance
@@ -97,7 +95,7 @@
Inherited Members
BaseTransaction.dataEvents
BaseTransaction.Database @@ -142,7 +140,7 @@
Inherited Members
BaseTransaction.CommitAsync()
BaseTransaction.Rollback() diff --git a/docs/docfx/api/Butterfly.Core.Database.Memory.html b/docs/docfx/api/Butterfly.Core.Database.Memory.html index cf99c14a..11b1e11c 100644 --- a/docs/docfx/api/Butterfly.Core.Database.Memory.html +++ b/docs/docfx/api/Butterfly.Core.Database.Memory.html @@ -78,15 +78,11 @@

Classes

MemoryDatabase

-
-Base class implementing IDatabase. New implementations will normally extend this class. -
+

MemoryTable

MemoryTransaction

-
-Base class implementing ITransaction. -
+
diff --git a/docs/docfx/api/Butterfly.Core.Database.OnCommitRef.html b/docs/docfx/api/Butterfly.Core.Database.OnCommitRef.html new file mode 100644 index 00000000..32999b98 --- /dev/null +++ b/docs/docfx/api/Butterfly.Core.Database.OnCommitRef.html @@ -0,0 +1,198 @@ + + + + + + + + Class OnCommitRef + | Butterfly Server .NET API Documentation + + + + + + + + + + + + + + + +
+
+ + + + +
+ + + +
+ + + + + + diff --git a/docs/docfx/api/Butterfly.Core.Database.html b/docs/docfx/api/Butterfly.Core.Database.html index c47b25d0..35c54094 100644 --- a/docs/docfx/api/Butterfly.Core.Database.html +++ b/docs/docfx/api/Butterfly.Core.Database.html @@ -109,6 +109,8 @@

InsertSt
Internal class used to parse INSERT statements
+

OnCommitRef

+

SelectStatement

Internal class used to parse SELECT statements diff --git a/docs/docfx/api/Butterfly.Core.Notify.BaseNotifyMessageSender.html b/docs/docfx/api/Butterfly.Core.Notify.BaseNotifyMessageSender.html index 555ec364..a41e6cbf 100644 --- a/docs/docfx/api/Butterfly.Core.Notify.BaseNotifyMessageSender.html +++ b/docs/docfx/api/Butterfly.Core.Notify.BaseNotifyMessageSender.html @@ -80,7 +80,7 @@
Inheritance
System.Object
BaseNotifyMessageSender
- +
Implements
diff --git a/docs/docfx/api/Butterfly.Core.Notify.NotifyManager.html b/docs/docfx/api/Butterfly.Core.Notify.NotifyManager.html index f8e3d388..d9a9103d 100644 --- a/docs/docfx/api/Butterfly.Core.Notify.NotifyManager.html +++ b/docs/docfx/api/Butterfly.Core.Notify.NotifyManager.html @@ -94,7 +94,7 @@

Declaration
-
public NotifyManager(IDatabase database, INotifyMessageSender emailNotifyMessageSender = null, INotifyMessageSender phoneTextNotifyMessageSender = null, string notifyMessageTableName = "notify_message", string notifyVerifyTableName = "notify_verify", int verifyCodeExpiresSeconds = 3600, string verifyEmailFile = null, string verifyPhoneTextFile = null, string verifyCodeFormat = "###-###")
+
public NotifyManager(IDatabase database, INotifyMessageSender emailNotifyMessageSender = null, INotifyMessageSender phoneNotifyMessageSender = null, string notifyMessageTableName = "notify_message", string notifyVerifyTableName = "notify_verify", int verifyCodeExpiresSeconds = 3600, string verifyEmailFile = null, string verifyPhoneTextFile = null, string verifyCodeFormat = "###-###")
Parameters
@@ -118,7 +118,7 @@
Parameters
- + @@ -309,12 +309,12 @@
Field Value
INotifyMessageSenderphoneTextNotifyMessageSenderphoneNotifyMessageSender
-

phoneTextNotifyMessageEngine

+

phoneNotifyMessageEngine

Declaration
-
protected readonly NotifyManager.NotifyMessageEngine phoneTextNotifyMessageEngine
+
protected readonly NotifyManager.NotifyMessageEngine phoneNotifyMessageEngine
Field Value
@@ -419,12 +419,12 @@
Field Value
-

verifyPhoneTextNotifyMessage

+

verifyPhoneNotifyMessage

Declaration
-
protected readonly NotifyMessage verifyPhoneTextNotifyMessage
+
protected readonly NotifyMessage verifyPhoneNotifyMessage
Field Value
@@ -570,36 +570,6 @@
Returns
- -

SetupWebApi(IWebApi, String)

-
-
-
Declaration
-
-
public void SetupWebApi(IWebApi webApi, string pathPrefix = "/api/notify")
-
-
Parameters
- - - - - - - - - - - - - - - - - - - - -
TypeNameDescription
IWebApiwebApi
System.StringpathPrefix

Start()

diff --git a/docs/docfx/api/Butterfly.Core.Notify.Test.NotifyTest.html b/docs/docfx/api/Butterfly.Core.Notify.Test.NotifyTest.html index 78fddb10..2a850f4b 100644 --- a/docs/docfx/api/Butterfly.Core.Notify.Test.NotifyTest.html +++ b/docs/docfx/api/Butterfly.Core.Notify.Test.NotifyTest.html @@ -136,13 +136,13 @@
Returns
- -

SendPhoneTextNotifyMessage(INotifyMessageSender)

+ +

SendPhoneNotifyMessage(INotifyMessageSender)

Declaration
-
public static Task SendPhoneTextNotifyMessage(INotifyMessageSender notifyMessageSender)
+
public static Task SendPhoneNotifyMessage(INotifyMessageSender notifyMessageSender)
Parameters
diff --git a/docs/docfx/api/Butterfly.Core.Util.WebClientWithTimeout.html b/docs/docfx/api/Butterfly.Core.Util.WebClientWithTimeout.html new file mode 100644 index 00000000..38a0df89 --- /dev/null +++ b/docs/docfx/api/Butterfly.Core.Util.WebClientWithTimeout.html @@ -0,0 +1,213 @@ + + + + + + + + Class WebClientWithTimeout + | Butterfly Server .NET API Documentation + + + + + + + + + + + + + + + +
+
+ + + + +
+
+ + + + + + + + + + + + + + +
TypeNameDescription
System.Int32timeoutMillis
+

Fields +

+

timeoutMillis

+
+
+
Declaration
+
+
protected readonly int timeoutMillis
+
+
Field Value
+ + + + + + + + + + + + + +
TypeDescription
System.Int32
+

Methods +

+ +

GetWebRequest(Uri)

+
+
+
Declaration
+
+
protected override WebRequest GetWebRequest(Uri uri)
+
+
Parameters
+ + + + + + + + + + + + + + + +
TypeNameDescription
Uriuri
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
WebRequest
+ + + + + + + + + + + + + + + diff --git a/docs/docfx/api/Butterfly.Core.Util.html b/docs/docfx/api/Butterfly.Core.Util.html index 2e2ffa6e..2af4ad74 100644 --- a/docs/docfx/api/Butterfly.Core.Util.html +++ b/docs/docfx/api/Butterfly.Core.Util.html @@ -123,6 +123,8 @@

Unauth

UriX

+

WebClientWithTimeout

+

Interfaces

IWebRequest

diff --git a/docs/docfx/api/Butterfly.EmbedIO.EmbedIOSubscriptionApi.html b/docs/docfx/api/Butterfly.EmbedIO.EmbedIOSubscriptionApi.html index e6b95f03..c1f79aca 100644 --- a/docs/docfx/api/Butterfly.EmbedIO.EmbedIOSubscriptionApi.html +++ b/docs/docfx/api/Butterfly.EmbedIO.EmbedIOSubscriptionApi.html @@ -73,9 +73,7 @@

Class EmbedIOSubscriptionApi

-
-Base class implementing ISubscriptionApi. New implementations will normally extend this class. -
+
Inheritance
@@ -154,17 +152,6 @@
Syntax
public class EmbedIOSubscriptionApi : BaseSubscriptionApi, ISubscriptionApi, IDisposable
-
Remarks
-
-Listen for subscription requests to the todos channel...

-

// Listen for subscribe requests...
-// - The handler must return an IDisposable object (gets disposed when the channel is unsubscribed)
-// - The handler can push data to the client by calling channel.Queue()
-subscriptionApi.OnSubscribe("todos", (vars, channel) => {
-    return database.CreateAndStartDynamicView("todo", dataEventTransaction => channel.Queue(dataEventTransaction));
-});
-subscriptionApi.Start();
-

Constructors

diff --git a/docs/docfx/api/Butterfly.EmbedIO.EmbedIOSubscriptionApiConnection.html b/docs/docfx/api/Butterfly.EmbedIO.EmbedIOSubscriptionApiConnection.html index adb0e35e..4cb3699b 100644 --- a/docs/docfx/api/Butterfly.EmbedIO.EmbedIOSubscriptionApiConnection.html +++ b/docs/docfx/api/Butterfly.EmbedIO.EmbedIOSubscriptionApiConnection.html @@ -125,7 +125,7 @@
Inherited Members
BaseChannelConnection.LastHeartbeat
BaseChannelConnection.started diff --git a/docs/docfx/api/Butterfly.EmbedIO.EmbedIOWebApi.html b/docs/docfx/api/Butterfly.EmbedIO.EmbedIOWebApi.html index d5fe634c..43524b86 100644 --- a/docs/docfx/api/Butterfly.EmbedIO.EmbedIOWebApi.html +++ b/docs/docfx/api/Butterfly.EmbedIO.EmbedIOWebApi.html @@ -73,9 +73,7 @@

Class EmbedIOWebApi

-
-Base class implementing IWebApi. New implementations will normally extend this class. -
+
Inheritance
diff --git a/docs/docfx/api/Butterfly.EmbedIO.html b/docs/docfx/api/Butterfly.EmbedIO.html index e883c3fd..df9d0d24 100644 --- a/docs/docfx/api/Butterfly.EmbedIO.html +++ b/docs/docfx/api/Butterfly.EmbedIO.html @@ -84,15 +84,11 @@

EmbedIOContext<

EmbedIOHttpWebRequest

EmbedIOSubscriptionApi

-
-Base class implementing ISubscriptionApi. New implementations will normally extend this class. -
+

EmbedIOSubscriptionApiConnection

EmbedIOWebApi

-
-Base class implementing IWebApi. New implementations will normally extend this class. -
+

EmbedIOWebResponse

EmbedIOWebSocketWebRequest

diff --git a/docs/docfx/api/Butterfly.MySql.MySqlDatabase.html b/docs/docfx/api/Butterfly.MySql.MySqlDatabase.html index 0c24439d..cccd4aca 100644 --- a/docs/docfx/api/Butterfly.MySql.MySqlDatabase.html +++ b/docs/docfx/api/Butterfly.MySql.MySqlDatabase.html @@ -73,9 +73,7 @@

Class MySqlDatabase

-
-Base class implementing IDatabase. New implementations will normally extend this class. -
+
Inheritance
diff --git a/docs/docfx/api/Butterfly.MySql.MySqlTransaction.html b/docs/docfx/api/Butterfly.MySql.MySqlTransaction.html index 75a7e591..d604bb3b 100644 --- a/docs/docfx/api/Butterfly.MySql.MySqlTransaction.html +++ b/docs/docfx/api/Butterfly.MySql.MySqlTransaction.html @@ -73,9 +73,7 @@

Class MySqlTransaction

-
-Base class implementing ITransaction. -
+
Inheritance
@@ -97,7 +95,7 @@
Inherited Members
BaseTransaction.dataEvents
BaseTransaction.Database @@ -151,7 +149,7 @@
Inherited Members
BaseTransaction.CommitAsync()
- Butterfly.Core.Database.BaseTransaction.OnCommit(Func<>) + Butterfly.Core.Database.BaseTransaction.OnCommit(Func<>, System.String)
BaseTransaction.Rollback() diff --git a/docs/docfx/api/Butterfly.MySql.html b/docs/docfx/api/Butterfly.MySql.html index bc7e814c..1f6bc86d 100644 --- a/docs/docfx/api/Butterfly.MySql.html +++ b/docs/docfx/api/Butterfly.MySql.html @@ -78,13 +78,9 @@

Namespace

Classes

MySqlDatabase

-
-Base class implementing IDatabase. New implementations will normally extend this class. -
+

MySqlTransaction

-
-Base class implementing ITransaction. -
+
diff --git a/docs/docfx/api/Butterfly.Postgres.PostgresDatabase.html b/docs/docfx/api/Butterfly.Postgres.PostgresDatabase.html index 87f5c8c2..b3f806d8 100644 --- a/docs/docfx/api/Butterfly.Postgres.PostgresDatabase.html +++ b/docs/docfx/api/Butterfly.Postgres.PostgresDatabase.html @@ -73,9 +73,7 @@

Class PostgresDatabase

-
-Base class implementing IDatabase. New implementations will normally extend this class. -
+
Inheritance
diff --git a/docs/docfx/api/Butterfly.Postgres.PostgresTransaction.html b/docs/docfx/api/Butterfly.Postgres.PostgresTransaction.html index 6c74fd2b..b29bcb82 100644 --- a/docs/docfx/api/Butterfly.Postgres.PostgresTransaction.html +++ b/docs/docfx/api/Butterfly.Postgres.PostgresTransaction.html @@ -73,9 +73,7 @@

Class PostgresTransaction

-
-Base class implementing ITransaction. -
+
Inheritance
@@ -97,7 +95,7 @@
Inherited Members
BaseTransaction.dataEvents
BaseTransaction.Database @@ -151,7 +149,7 @@
Inherited Members
BaseTransaction.CommitAsync()
- Butterfly.Core.Database.BaseTransaction.OnCommit(Func<>) + Butterfly.Core.Database.BaseTransaction.OnCommit(Func<>, System.String)
BaseTransaction.Rollback() diff --git a/docs/docfx/api/Butterfly.Postgres.html b/docs/docfx/api/Butterfly.Postgres.html index 144e0d28..0f45192b 100644 --- a/docs/docfx/api/Butterfly.Postgres.html +++ b/docs/docfx/api/Butterfly.Postgres.html @@ -78,13 +78,9 @@

Nam

Classes

PostgresDatabase

-
-Base class implementing IDatabase. New implementations will normally extend this class. -
+

PostgresTransaction

-
-Base class implementing ITransaction. -
+
diff --git a/docs/docfx/api/Butterfly.RHttpServer.RedHttpServerSubscriptionApi.html b/docs/docfx/api/Butterfly.RHttpServer.RedHttpServerSubscriptionApi.html index 43fc8e9d..e977fce7 100644 --- a/docs/docfx/api/Butterfly.RHttpServer.RedHttpServerSubscriptionApi.html +++ b/docs/docfx/api/Butterfly.RHttpServer.RedHttpServerSubscriptionApi.html @@ -73,9 +73,7 @@

Class RedHttpServerSubscriptionApi

-
-Base class implementing ISubscriptionApi. New implementations will normally extend this class. -
+
Inheritance
@@ -154,17 +152,6 @@
Syntax
public class RedHttpServerSubscriptionApi : BaseSubscriptionApi, ISubscriptionApi, IDisposable
-
Remarks
-
-Listen for subscription requests to the todos channel...

-

// Listen for subscribe requests...
-// - The handler must return an IDisposable object (gets disposed when the channel is unsubscribed)
-// - The handler can push data to the client by calling channel.Queue()
-subscriptionApi.OnSubscribe("todos", (vars, channel) => {
-    return database.CreateAndStartDynamicView("todo", dataEventTransaction => channel.Queue(dataEventTransaction));
-});
-subscriptionApi.Start();
-

Constructors

diff --git a/docs/docfx/api/Butterfly.RHttpServer.RedHttpServerWebApi.html b/docs/docfx/api/Butterfly.RHttpServer.RedHttpServerWebApi.html index ba59747c..0c4bcd68 100644 --- a/docs/docfx/api/Butterfly.RHttpServer.RedHttpServerWebApi.html +++ b/docs/docfx/api/Butterfly.RHttpServer.RedHttpServerWebApi.html @@ -73,9 +73,7 @@

Class RedHttpServerWebApi

-
-Base class implementing IWebApi. New implementations will normally extend this class. -
+
Inheritance
diff --git a/docs/docfx/api/Butterfly.RHttpServer.WebSocketDialogChannelConnection.html b/docs/docfx/api/Butterfly.RHttpServer.WebSocketDialogChannelConnection.html index a02ad75d..3d446c93 100644 --- a/docs/docfx/api/Butterfly.RHttpServer.WebSocketDialogChannelConnection.html +++ b/docs/docfx/api/Butterfly.RHttpServer.WebSocketDialogChannelConnection.html @@ -125,7 +125,7 @@
Inherited Members
BaseChannelConnection.LastHeartbeat
BaseChannelConnection.started diff --git a/docs/docfx/api/Butterfly.RHttpServer.html b/docs/docfx/api/Butterfly.RHttpServer.html index ba8a3e02..f0f60eb5 100644 --- a/docs/docfx/api/Butterfly.RHttpServer.html +++ b/docs/docfx/api/Butterfly.RHttpServer.html @@ -84,13 +84,9 @@

RedHt Convenient class to initialize IWebApi and ISubscriptionApi instances using RedHttpServer (see https://github.com/rosenbjerg/Red)

RedHttpServerSubscriptionApi

-
-Base class implementing ISubscriptionApi. New implementations will normally extend this class. -
+

RedHttpServerWebApi

-
-Base class implementing IWebApi. New implementations will normally extend this class. -
+

RedHttpServerWebRequest

RedHttpServerWebResponse

diff --git a/docs/docfx/api/Butterfly.SQLite.SQLiteDatabase.html b/docs/docfx/api/Butterfly.SQLite.SQLiteDatabase.html index 8af42d68..0415fd72 100644 --- a/docs/docfx/api/Butterfly.SQLite.SQLiteDatabase.html +++ b/docs/docfx/api/Butterfly.SQLite.SQLiteDatabase.html @@ -73,9 +73,7 @@

Class SQLiteDatabase

-
-Base class implementing IDatabase. New implementations will normally extend this class. -
+
Inheritance
diff --git a/docs/docfx/api/Butterfly.SQLite.SQLiteTransaction.html b/docs/docfx/api/Butterfly.SQLite.SQLiteTransaction.html index bec12948..c451e9aa 100644 --- a/docs/docfx/api/Butterfly.SQLite.SQLiteTransaction.html +++ b/docs/docfx/api/Butterfly.SQLite.SQLiteTransaction.html @@ -73,9 +73,7 @@

Class SQLiteTransaction

-
-Base class implementing ITransaction. -
+
Inheritance
@@ -97,7 +95,7 @@
Inherited Members
BaseTransaction.dataEvents
BaseTransaction.Database @@ -151,7 +149,7 @@
Inherited Members
BaseTransaction.CommitAsync()
- Butterfly.Core.Database.BaseTransaction.OnCommit(Func<>) + Butterfly.Core.Database.BaseTransaction.OnCommit(Func<>, System.String)
BaseTransaction.Rollback() diff --git a/docs/docfx/api/Butterfly.SQLite.html b/docs/docfx/api/Butterfly.SQLite.html index bbc3e42b..a98a2b9b 100644 --- a/docs/docfx/api/Butterfly.SQLite.html +++ b/docs/docfx/api/Butterfly.SQLite.html @@ -78,13 +78,9 @@

Namespa

Classes

SQLiteDatabase

-
-Base class implementing IDatabase. New implementations will normally extend this class. -
+

SQLiteTransaction

-
-Base class implementing ITransaction. -
+
diff --git a/docs/docfx/api/Butterfly.SqlServer.SqlServerTransaction.html b/docs/docfx/api/Butterfly.SqlServer.SqlServerTransaction.html index ed6b7ba8..6f3fa379 100644 --- a/docs/docfx/api/Butterfly.SqlServer.SqlServerTransaction.html +++ b/docs/docfx/api/Butterfly.SqlServer.SqlServerTransaction.html @@ -97,7 +97,7 @@
Inherited Members
BaseTransaction.dataEvents
BaseTransaction.Database @@ -151,7 +151,7 @@
Inherited Members
BaseTransaction.CommitAsync()
- Butterfly.Core.Database.BaseTransaction.OnCommit(Func<>) + Butterfly.Core.Database.BaseTransaction.OnCommit(Func<>, System.String)
BaseTransaction.Rollback() diff --git a/docs/docfx/api/Butterfly.Twilio.TwilioPhoneNotifyMessageSender.html b/docs/docfx/api/Butterfly.Twilio.TwilioPhoneNotifyMessageSender.html new file mode 100644 index 00000000..ba1641ca --- /dev/null +++ b/docs/docfx/api/Butterfly.Twilio.TwilioPhoneNotifyMessageSender.html @@ -0,0 +1,306 @@ + + + + + + + + Class TwilioPhoneNotifyMessageSender + | Butterfly Server .NET API Documentation + + + + + + + + + + + + + + + +
+
+ + + + +
+ + + +
+ + + + + + diff --git a/docs/docfx/api/Butterfly.Twilio.html b/docs/docfx/api/Butterfly.Twilio.html index d6c62a2a..307aadeb 100644 --- a/docs/docfx/api/Butterfly.Twilio.html +++ b/docs/docfx/api/Butterfly.Twilio.html @@ -79,7 +79,7 @@

Classes

TwilioModule

-

TwilioPhoneTextNotifyMessageSender

+

TwilioPhoneNotifyMessageSender

diff --git a/docs/docfx/api/toc.html b/docs/docfx/api/toc.html index 516495ec..eb08ce6c 100644 --- a/docs/docfx/api/toc.html +++ b/docs/docfx/api/toc.html @@ -61,6 +61,21 @@
  • AuthToken
  • +
  • + IAuthenticator +
  • +
  • + ShareCodeAuthenticator +
  • +
  • + ShareCodeToken +
  • +
  • + UserRefToken +
  • +
  • + UserRefTokenAuthenticator +
  • @@ -132,6 +147,9 @@
  • JoinType
  • +
  • + OnCommitRef +
  • SelectStatement
  • @@ -373,6 +391,9 @@
  • UriX
  • +
  • + WebClientWithTimeout +
  • @@ -627,7 +648,7 @@ TwilioModule
  • - TwilioPhoneTextNotifyMessageSender + TwilioPhoneNotifyMessageSender
  • diff --git a/docs/docfx/manifest.json b/docs/docfx/manifest.json index 9198e04d..29516bb2 100644 --- a/docs/docfx/manifest.json +++ b/docs/docfx/manifest.json @@ -12,7 +12,7 @@ "hash": "nDMllVNKwwkZ3AEAJn4SQQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -24,7 +24,7 @@ "hash": "A+KFk5OKb7JmqL56h/U2lA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -36,7 +36,7 @@ "hash": "QVBKhvODosODBY6aDAJsgg==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -48,7 +48,7 @@ "hash": "LCMuwt+MAtLgVF/zr0UWSg==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -60,7 +60,7 @@ "hash": "AFJAuzfCCJxjHS0VolKf6w==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -72,7 +72,7 @@ "hash": "B5/ynpwChwK3zsy4jF0jaQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -84,7 +84,7 @@ "hash": "fKOPlV2Xf6B75dZ/18bhBg==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -108,7 +108,7 @@ "hash": "6cyvqkNM0dxqQITepu2i1w==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -117,7 +117,7 @@ "output": { ".html": { "relative_path": "api/Butterfly.Core.Auth.AuthManager.html", - "hash": "Cq/Nhpq0bEJ02MI52dcKjA==" + "hash": "7q9shAFnPms08KxnVTniag==" } }, "is_incremental": false, @@ -129,19 +129,79 @@ "output": { ".html": { "relative_path": "api/Butterfly.Core.Auth.AuthToken.html", - "hash": "rBW+EcVkdAvy++gE383ilg==" + "hash": "xL+k9RySfgJRWgURx2MbeQ==" + } + }, + "is_incremental": false, + "version": "" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/Butterfly.Core.Auth.IAuthenticator.yml", + "output": { + ".html": { + "relative_path": "api/Butterfly.Core.Auth.IAuthenticator.html", + "hash": "2ggTIPU+rDt7PfzgXktYuA==" } }, "is_incremental": true, "version": "" }, + { + "type": "ManagedReference", + "source_relative_path": "api/Butterfly.Core.Auth.ShareCodeAuthenticator.yml", + "output": { + ".html": { + "relative_path": "api/Butterfly.Core.Auth.ShareCodeAuthenticator.html", + "hash": "fHDO+TtvTyx/6hBIsGmXiQ==" + } + }, + "is_incremental": false, + "version": "" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/Butterfly.Core.Auth.ShareCodeToken.yml", + "output": { + ".html": { + "relative_path": "api/Butterfly.Core.Auth.ShareCodeToken.html", + "hash": "Tjsa8zuAkOxdqHxPIoPBZA==" + } + }, + "is_incremental": false, + "version": "" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/Butterfly.Core.Auth.UserRefToken.yml", + "output": { + ".html": { + "relative_path": "api/Butterfly.Core.Auth.UserRefToken.html", + "hash": "BqtX8C+jpaRMBFT3y8NeOw==" + } + }, + "is_incremental": false, + "version": "" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/Butterfly.Core.Auth.UserRefTokenAuthenticator.yml", + "output": { + ".html": { + "relative_path": "api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html", + "hash": "Pft0xDpUmmWQpoQtwcCpvA==" + } + }, + "is_incremental": false, + "version": "" + }, { "type": "ManagedReference", "source_relative_path": "api/Butterfly.Core.Auth.yml", "output": { ".html": { "relative_path": "api/Butterfly.Core.Auth.html", - "hash": "3sUggxSzUpTU3X8UN+hE6g==" + "hash": "twkiwWEn202l4W93Hxr7kg==" } }, "is_incremental": false, @@ -153,10 +213,10 @@ "output": { ".html": { "relative_path": "api/Butterfly.Core.Channel.BaseChannelConnection.html", - "hash": "i3OzslYoHhJmhukJhC1qNg==" + "hash": "H4nawhrxF+IHlWptovzmpg==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -165,10 +225,10 @@ "output": { ".html": { "relative_path": "api/Butterfly.Core.Channel.BaseSubscriptionApi.html", - "hash": "IBQn0H/i8lGk0cL0gOXUtA==" + "hash": "2IoSUO20cZhUEtPAwz6zUQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -180,7 +240,7 @@ "hash": "KEesXBfENuyDBw0funnVxA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -192,7 +252,7 @@ "hash": "qgL5WKrLbHAbMGAAcdHLyg==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -201,10 +261,10 @@ "output": { ".html": { "relative_path": "api/Butterfly.Core.Channel.IChannelConnection.html", - "hash": "Tulm+AO5uPNgzmZL+mo0pA==" + "hash": "Cw4rLMYlNyeGjZU+QDDOXA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -216,7 +276,7 @@ "hash": "w2W6xpwKJH7qKFT7WpwjXg==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -228,7 +288,7 @@ "hash": "5aud5O3XNMQjcV0WA990DA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -252,7 +312,7 @@ "hash": "6AH/jUuHGn+XIjS0JgUpQw==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -261,7 +321,7 @@ "output": { ".html": { "relative_path": "api/Butterfly.Core.Database.BaseTransaction.html", - "hash": "Sq4d0W90SI/Er/uxh6Qa9Q==" + "hash": "xeff9X41ptN4Hh9wmPvNLw==" } }, "is_incremental": false, @@ -276,7 +336,7 @@ "hash": "QXhSKk+WniKuJOUAOrhwog==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -288,7 +348,7 @@ "hash": "WO2VL760WqRHW3rIxyXlHQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -336,7 +396,7 @@ "hash": "bxxYpOaqNlEj0auEje+wYQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -348,7 +408,7 @@ "hash": "1/9cCaWh3Y2q5xj9JaMBZg==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -360,7 +420,7 @@ "hash": "eRj1i46dboxoSr/6XZl8tw==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -384,7 +444,7 @@ "hash": "HXxfiGThQtuQDlZjKcnhSA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -396,7 +456,7 @@ "hash": "izBFGpnzoVADktm7juxRjQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -420,7 +480,7 @@ "hash": "GCROcvwT95hKh68gzDXtQQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -432,7 +492,7 @@ "hash": "x5M/X+GQTwoUDr0/caPFlA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -456,7 +516,7 @@ "hash": "+G+23wWhIoLTIcsDdNk4hA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -468,7 +528,7 @@ "hash": "0UjtrK5yX4pTJaBAcMjWTw==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -480,7 +540,7 @@ "hash": "ban5qbHBkV9ubSNrbL5MAA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -492,7 +552,7 @@ "hash": "CTO2jcV0uCPeS6DUBBcx7w==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -516,7 +576,7 @@ "hash": "wB0BiGKkDL+ddSHkaCh0NA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -549,7 +609,7 @@ "output": { ".html": { "relative_path": "api/Butterfly.Core.Database.ITransaction.html", - "hash": "XhFNyeeVST21e6p5wdJouA==" + "hash": "UhzsVuorDHduPvaEy0viwg==" } }, "is_incremental": false, @@ -585,7 +645,7 @@ "output": { ".html": { "relative_path": "api/Butterfly.Core.Database.Memory.MemoryDatabase.html", - "hash": "U+WL9YN+xaKEFzf41UQulA==" + "hash": "dbarzvg9R12SrMRmYMGFRQ==" } }, "is_incremental": false, @@ -600,7 +660,7 @@ "hash": "niKe8IA3qRFBk7Cl0mzTyQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -609,7 +669,7 @@ "output": { ".html": { "relative_path": "api/Butterfly.Core.Database.Memory.MemoryTransaction.html", - "hash": "Fm/uigUmkNzJ6f+7qp/9tQ==" + "hash": "IGlOXJUjf6Tz1FtpdM6YfQ==" } }, "is_incremental": false, @@ -621,7 +681,19 @@ "output": { ".html": { "relative_path": "api/Butterfly.Core.Database.Memory.html", - "hash": "MecrU+bjcR4JKtZRGfCtIQ==" + "hash": "OZiVNZdzN/zi707w/PNLzQ==" + } + }, + "is_incremental": false, + "version": "" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/Butterfly.Core.Database.OnCommitRef.yml", + "output": { + ".html": { + "relative_path": "api/Butterfly.Core.Database.OnCommitRef.html", + "hash": "8KZwJJtZZqpUZzdWnrwVow==" } }, "is_incremental": false, @@ -648,7 +720,7 @@ "hash": "BvfGU2p4XKZwQdfzdqT4Iw==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -660,7 +732,7 @@ "hash": "dK0rtlu3O/b6RzuiNSaJ2A==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -684,7 +756,7 @@ "hash": "9CdrGJbfKHNLJEK6A+zlmw==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -696,7 +768,7 @@ "hash": "MyJyt4Q3YbXQn7Hz/IwiQw==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -708,7 +780,7 @@ "hash": "V4EBFknBpgX1jowqbW6YYA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -753,7 +825,7 @@ "output": { ".html": { "relative_path": "api/Butterfly.Core.Database.html", - "hash": "TaQhCjQA4qBW2eAdFuFjqA==" + "hash": "49DhkisXQZkXvVqVNnwpOw==" } }, "is_incremental": false, @@ -765,10 +837,10 @@ "output": { ".html": { "relative_path": "api/Butterfly.Core.Notify.BaseNotifyMessageSender.html", - "hash": "1acfI4YPOlEaun/JUgKD6g==" + "hash": "+/2EKTndTrRlQ92c7G/9TA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -801,7 +873,7 @@ "output": { ".html": { "relative_path": "api/Butterfly.Core.Notify.NotifyManager.html", - "hash": "27D/rHS6J/fvwWKtSw34TQ==" + "hash": "oOaqyCuntg1XbeEj8Kc1fQ==" } }, "is_incremental": false, @@ -816,7 +888,7 @@ "hash": "HOh+93CR/jYE1CjEpIFaGQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -837,10 +909,10 @@ "output": { ".html": { "relative_path": "api/Butterfly.Core.Notify.Test.NotifyTest.html", - "hash": "+d9ZsDs74SZ/G8K3mtRwxw==" + "hash": "DFPQjE3a4XIjiResxZWniQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -852,7 +924,7 @@ "hash": "XTQUkwmJJCr1eyNGUGu0TQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -888,7 +960,7 @@ "hash": "4Nt1BKaVdIxeM/LkZV8f1w==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -924,7 +996,7 @@ "hash": "zSG5i5TlWdB4jOAhv2TiPQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -936,7 +1008,7 @@ "hash": "I4oy6QsUM8fEug15nAFGAA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -960,7 +1032,7 @@ "hash": "t7tbC1Cc6tS9WExvUGZ1aQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -972,7 +1044,7 @@ "hash": "OiXzfSUWYV2x1y7hLiBx1A==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -984,7 +1056,7 @@ "hash": "9mKYRNZHctdQnwmU27tkXQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -996,7 +1068,7 @@ "hash": "8+x1yFTDKplJGZiw3j4cNg==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1008,7 +1080,7 @@ "hash": "9V5KazHFHNVFYVtfJmutfw==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1020,7 +1092,7 @@ "hash": "KgyWX55vM9WCvRKp94cuQA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1032,7 +1104,7 @@ "hash": "nWy/l0V+FCH050/IbGa4lQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1044,7 +1116,7 @@ "hash": "TXgpg3/ez/FsAajMJDallA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1056,7 +1128,7 @@ "hash": "y/vu8ozPiyiRIcQCRmrn0w==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1068,7 +1140,7 @@ "hash": "Jb3IVXSC/CzvTxPlF3DyGQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1092,7 +1164,7 @@ "hash": "wqy0S5UFw1Yh8A+0bl2C7A==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1104,7 +1176,7 @@ "hash": "LiBrX6G+/elgDP8HGCN8eA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1116,7 +1188,7 @@ "hash": "M/TNT2DsOIZ5C+mSWN+qmw==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1128,7 +1200,7 @@ "hash": "ZwxTwvAfXbF6UoGJZXUdLQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1140,7 +1212,7 @@ "hash": "t4kcQmmoNKpQc2Dwxmjxkw==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1164,7 +1236,7 @@ "hash": "fw6tUaEsA7f2z3wmCsfXOQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1188,7 +1260,7 @@ "hash": "/KkS4FehF/LUpf3BSJtv+Q==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1200,7 +1272,7 @@ "hash": "Co+guj9il+6Z+am/GI0NXA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1212,7 +1284,7 @@ "hash": "pLVibZ5vppEwvKQsmSyaNw==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1224,7 +1296,7 @@ "hash": "WSUf7gwoH6PUlVdzrcJoMg==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1236,7 +1308,7 @@ "hash": "pfrBkfH47dS0YPdJHIEmxw==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1248,7 +1320,7 @@ "hash": "e9H+dhO22wPPvmqzqb+o+Q==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1260,7 +1332,7 @@ "hash": "wxuwGOqP7zuL6jAYnHUQrg==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1272,7 +1344,7 @@ "hash": "fwmTGv/SSYLJfYBPcOWbhQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1284,7 +1356,7 @@ "hash": "BVxEv01eNNmLhn7LD9SqtA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1296,7 +1368,7 @@ "hash": "rtN85Igw+og1eNiPdVnFXQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1308,7 +1380,7 @@ "hash": "T/N3W5HEJ+yFellyQwwEfg==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1320,7 +1392,7 @@ "hash": "UObpBIdCA4D1Hp3xzGS8pA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1332,7 +1404,7 @@ "hash": "ofm6xRd+qntTiGO3mbYG3w==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1344,7 +1416,7 @@ "hash": "Mz7J45jbYlYeGK9wbPH+4g==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1356,7 +1428,19 @@ "hash": "5s9E2Gp+Hm7agKXce1zteg==" } }, - "is_incremental": true, + "is_incremental": false, + "version": "" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/Butterfly.Core.Util.WebClientWithTimeout.yml", + "output": { + ".html": { + "relative_path": "api/Butterfly.Core.Util.WebClientWithTimeout.html", + "hash": "lx1Py1rXMBLs56rJXoYuNg==" + } + }, + "is_incremental": false, "version": "" }, { @@ -1365,10 +1449,10 @@ "output": { ".html": { "relative_path": "api/Butterfly.Core.Util.html", - "hash": "OYr+i8JBWrZhqF5RtjWwOA==" + "hash": "w//diZb/Mkj9Fihdm49aRA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1380,7 +1464,7 @@ "hash": "i5SLJ1be7nRHVkd9KXrX0w==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1392,7 +1476,7 @@ "hash": "E6XIw3McdvI5oP45+MePpw==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1404,7 +1488,7 @@ "hash": "BM7yz9xuHcl/QQ9rRR717w==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1428,7 +1512,7 @@ "hash": "G0EFdXHalDjX4tWhQjlUNA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1440,7 +1524,7 @@ "hash": "RbfSQTzlMQrG/OXO1v4+aQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1452,7 +1536,7 @@ "hash": "gJOyBIryMhqbze2H3mtjmA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1464,7 +1548,7 @@ "hash": "OUffijUrfQtwShR8/wZa1g==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1476,7 +1560,7 @@ "hash": "D03/W/4JBHjd1BA47siODQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1485,10 +1569,10 @@ "output": { ".html": { "relative_path": "api/Butterfly.EmbedIO.EmbedIOSubscriptionApi.html", - "hash": "/5L1NnbfL+wnQOF1VhW4Kg==" + "hash": "j/GsDyMPb3kfBkDBRKP0/A==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1497,10 +1581,10 @@ "output": { ".html": { "relative_path": "api/Butterfly.EmbedIO.EmbedIOSubscriptionApiConnection.html", - "hash": "TfHvkOpeYSxZbWkBMqw/Aw==" + "hash": "oAPrqs6WdJDnQWiGgDHFGA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1509,10 +1593,10 @@ "output": { ".html": { "relative_path": "api/Butterfly.EmbedIO.EmbedIOWebApi.html", - "hash": "xZrVAtQpsp/981gFrRyk7g==" + "hash": "RXWlRo1MMYZKwxfgx56wBA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1524,7 +1608,7 @@ "hash": "YdFrdk7JM7rNRTyM7M6DUg==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1536,7 +1620,7 @@ "hash": "AeB6l5n+C/tgM/i5+eXQbg==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1548,7 +1632,7 @@ "hash": "c0vpyqxnEAS9I+gfPITkWQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1560,7 +1644,7 @@ "hash": "DMHdlMNxq3zfqdWv4ZYA4A==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1572,7 +1656,7 @@ "hash": "O5wjNP/CAHNoU5X9vItT0Q==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1584,7 +1668,7 @@ "hash": "nr6SolMZOMmprR8It/9VOA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1593,10 +1677,10 @@ "output": { ".html": { "relative_path": "api/Butterfly.EmbedIO.html", - "hash": "K2WQRkXemuAMTL/THzDLqA==" + "hash": "uzXJFRU0u5/P4rcTptb2Nw==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1605,7 +1689,7 @@ "output": { ".html": { "relative_path": "api/Butterfly.MySql.MySqlDatabase.html", - "hash": "63yVPnvQgMCP7ts5o/TRMA==" + "hash": "ehS3JqOM1eh5rKezTAkqEw==" } }, "is_incremental": false, @@ -1617,7 +1701,7 @@ "output": { ".html": { "relative_path": "api/Butterfly.MySql.MySqlTransaction.html", - "hash": "rmnJq04OVsBQC/c+YGSJ6w==" + "hash": "zw7n7Uw9TKYoBVIMsyi23A==" } }, "is_incremental": false, @@ -1632,7 +1716,7 @@ "hash": "NlMoS4Sj+0t7oGQOkCYaaw==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1644,7 +1728,7 @@ "hash": "NBcpIVyre6YzHIERekhj9Q==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1656,7 +1740,7 @@ "hash": "gMnndpTOZsIZyZFO8xdvoA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1665,7 +1749,7 @@ "output": { ".html": { "relative_path": "api/Butterfly.MySql.html", - "hash": "5sssOTHv+XP5qITkoQMjzA==" + "hash": "cE8tC4f/HotFEkpzrSPc1Q==" } }, "is_incremental": false, @@ -1701,7 +1785,7 @@ "output": { ".html": { "relative_path": "api/Butterfly.Postgres.PostgresDatabase.html", - "hash": "2rkysl7X29+uMBYX7HKrEg==" + "hash": "6zIkIj8bzkGCMPb3N8cHRw==" } }, "is_incremental": false, @@ -1713,7 +1797,7 @@ "output": { ".html": { "relative_path": "api/Butterfly.Postgres.PostgresTransaction.html", - "hash": "K52BfO9NPKdCpjocPWOvtg==" + "hash": "Z3+oLbAPQnEjDr4amZopaw==" } }, "is_incremental": false, @@ -1728,7 +1812,7 @@ "hash": "D4WoCpziYF/zvZJI4FaCmQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1740,7 +1824,7 @@ "hash": "xc+CAaq9jOjbfAdMIJdbLg==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1749,7 +1833,7 @@ "output": { ".html": { "relative_path": "api/Butterfly.Postgres.html", - "hash": "XXRlKYPChWWhawwT+8x3nw==" + "hash": "A38YB8EPMR9BO7RvkjDNPA==" } }, "is_incremental": false, @@ -1764,7 +1848,7 @@ "hash": "KwfN6NNliJXVBLwE8/cTjA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1776,7 +1860,7 @@ "hash": "jThgUS1HChVEvQmUCCeCVA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1785,10 +1869,10 @@ "output": { ".html": { "relative_path": "api/Butterfly.RHttpServer.RedHttpServerSubscriptionApi.html", - "hash": "xOmDoZsyKkgHUpCL6Yf8wg==" + "hash": "qhmi9rSgK2YSoLwgx2oiHQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1797,10 +1881,10 @@ "output": { ".html": { "relative_path": "api/Butterfly.RHttpServer.RedHttpServerWebApi.html", - "hash": "EzbKsuwNjoInBmDJgUeHPw==" + "hash": "hg5kb3tKBUZUm/x/+mKySQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1812,7 +1896,7 @@ "hash": "E397Uya3HaUT0/0FBaUrTw==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1824,7 +1908,7 @@ "hash": "LdYajkVlipze4Emi2zb8LQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1836,7 +1920,7 @@ "hash": "n0GCqScVXqzB6FZ8zvWQwg==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1848,7 +1932,7 @@ "hash": "4TVHkKs5bq6xbj0yAbup3w==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1857,10 +1941,10 @@ "output": { ".html": { "relative_path": "api/Butterfly.RHttpServer.WebSocketDialogChannelConnection.html", - "hash": "VZYzRJO67OG6ptBGcJpVXw==" + "hash": "H4wyPl83WQ/5EHgSHvumoQ==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1872,7 +1956,7 @@ "hash": "f51jxECZ7E6jHYSOWFZGBA==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1881,10 +1965,10 @@ "output": { ".html": { "relative_path": "api/Butterfly.RHttpServer.html", - "hash": "agRz+GnjwB+9FUy4uD6wEg==" + "hash": "VHwVuffAdGqT1Guj+qPIyw==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -1893,7 +1977,7 @@ "output": { ".html": { "relative_path": "api/Butterfly.SQLite.SQLiteDatabase.html", - "hash": "OZQlMkZ0UmYBiwb667zQ1A==" + "hash": "HlnMgU/vrNXxDgHa2GroXg==" } }, "is_incremental": false, @@ -1905,7 +1989,7 @@ "output": { ".html": { "relative_path": "api/Butterfly.SQLite.SQLiteTransaction.html", - "hash": "xOxImKhtCeJh7vomL0yUSw==" + "hash": "/qIw1eRdMzM1IN7YrQ80Xg==" } }, "is_incremental": false, @@ -1917,7 +2001,7 @@ "output": { ".html": { "relative_path": "api/Butterfly.SQLite.html", - "hash": "KovuQW0Er+0NZzwBrnNk0g==" + "hash": "D0Q/v96dWkazfXz8GkLW+w==" } }, "is_incremental": false, @@ -1941,7 +2025,7 @@ "output": { ".html": { "relative_path": "api/Butterfly.SqlServer.SqlServerTransaction.html", - "hash": "DddgrHCw7u0ebrwe9xwNmQ==" + "hash": "FzFQd+bIhJfVWOV3NWF9IA==" } }, "is_incremental": false, @@ -1992,19 +2076,19 @@ "hash": "g3A29bd+0ZfHsT6aon06lw==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { "type": "ManagedReference", - "source_relative_path": "api/Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.yml", + "source_relative_path": "api/Butterfly.Twilio.TwilioPhoneNotifyMessageSender.yml", "output": { ".html": { - "relative_path": "api/Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.html", - "hash": "lilhq6zlhXWe+SFMjyXH+Q==" + "relative_path": "api/Butterfly.Twilio.TwilioPhoneNotifyMessageSender.html", + "hash": "AVyc9gMWircrEyLIXmjlnw==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -2013,10 +2097,10 @@ "output": { ".html": { "relative_path": "api/Butterfly.Twilio.html", - "hash": "WXZE5/vPSA/iLs9rb6x7Sg==" + "hash": "8sQOwPkrYAf+M0EmEnDwZg==" } }, - "is_incremental": true, + "is_incremental": false, "version": "" }, { @@ -2037,7 +2121,7 @@ "output": { ".html": { "relative_path": "api/toc.html", - "hash": "5wexB67CGLTvaKx0J0vxyQ==" + "hash": "DsM5f7lTxe2C3V3i0CaV/g==" } }, "is_incremental": false, @@ -2086,21 +2170,21 @@ "incrementalPhase": "build" }, "processors": { - "TocDocumentProcessor": { + "ResourceDocumentProcessor": { "can_incremental": false, - "details": "Processor TocDocumentProcessor cannot support incremental build because the processor doesn't implement ISupportIncrementalDocumentProcessor interface.", + "details": "Processor ResourceDocumentProcessor cannot support incremental build because the processor doesn't implement ISupportIncrementalDocumentProcessor interface.", "incrementalPhase": "build" }, - "ResourceDocumentProcessor": { + "TocDocumentProcessor": { "can_incremental": false, - "details": "Processor ResourceDocumentProcessor cannot support incremental build because the processor doesn't implement ISupportIncrementalDocumentProcessor interface.", + "details": "Processor TocDocumentProcessor cannot support incremental build because the processor doesn't implement ISupportIncrementalDocumentProcessor interface.", "incrementalPhase": "build" }, - "ManagedReferenceDocumentProcessor": { + "ConceptualDocumentProcessor": { "can_incremental": true, "incrementalPhase": "build" }, - "ConceptualDocumentProcessor": { + "ManagedReferenceDocumentProcessor": { "can_incremental": true, "incrementalPhase": "build" } diff --git a/docs/docfx/xrefmap.yml b/docs/docfx/xrefmap.yml index 92239b1d..56073b03 100644 --- a/docs/docfx/xrefmap.yml +++ b/docs/docfx/xrefmap.yml @@ -324,15 +324,15 @@ references: commentId: T:Butterfly.Core.Auth.AuthManager fullName: Butterfly.Core.Auth.AuthManager nameWithType: AuthManager -- uid: Butterfly.Core.Auth.AuthManager.#ctor(Butterfly.Core.Database.IDatabase,System.Int32,System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,Func{System.String,System.Int32,Task},Func{System.String,System.Int32,Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Action{Version}) - name: AuthManager(IDatabase, Int32, Int32, Int32, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Func, Func, Func, Task>, Func, Task>, Action) - href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager__ctor_Butterfly_Core_Database_IDatabase_System_Int32_System_Int32_System_Int32_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_Func_System_String_System_Int32_Task__Func_System_String_System_Int32_Task__Func_System_Collections_Generic_Dictionary_System_String_System_Object__Task__Func_System_Collections_Generic_Dictionary_System_String_System_Object__Task__Action_Version__ - commentId: M:Butterfly.Core.Auth.AuthManager.#ctor(Butterfly.Core.Database.IDatabase,System.Int32,System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,Func{System.String,System.Int32,Task},Func{System.String,System.Int32,Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Action{Version}) - name.vb: AuthManager(IDatabase, Int32, Int32, Int32, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Func(Of String, Int32, Task), Func(Of String, Int32, Task), Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task), Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task), Action(Of Version)) - fullName: Butterfly.Core.Auth.AuthManager.AuthManager(Butterfly.Core.Database.IDatabase, System.Int32, System.Int32, System.Int32, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, Func, Func, Func, Task>, Func, Task>, Action) - fullName.vb: Butterfly.Core.Auth.AuthManager.AuthManager(Butterfly.Core.Database.IDatabase, System.Int32, System.Int32, System.Int32, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, Func(Of System.String, System.Int32, Task), Func(Of System.String, System.Int32, Task), Func(Of System.Collections.Generic.Dictionary(Of System.String, System.Object), Task), Func(Of System.Collections.Generic.Dictionary(Of System.String, System.Object), Task), Action(Of Version)) - nameWithType: AuthManager.AuthManager(IDatabase, Int32, Int32, Int32, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Func, Func, Func, Task>, Func, Task>, Action) - nameWithType.vb: AuthManager.AuthManager(IDatabase, Int32, Int32, Int32, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Func(Of String, Int32, Task), Func(Of String, Int32, Task), Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task), Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task), Action(Of Version)) +- uid: Butterfly.Core.Auth.AuthManager.#ctor(Butterfly.Core.Database.IDatabase,System.Int32,System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,Func{System.String,System.Int32,Task},Func{System.String,System.Int32,Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Action{Version}) + name: AuthManager(IDatabase, Int32, Int32, Int32, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Func, Func, Func, Task>, Func, Task>, Action) + href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager__ctor_Butterfly_Core_Database_IDatabase_System_Int32_System_Int32_System_Int32_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_Func_System_String_System_Int32_Task__Func_System_String_System_Int32_Task__Func_System_Collections_Generic_Dictionary_System_String_System_Object__Task__Func_System_Collections_Generic_Dictionary_System_String_System_Object__Task__Action_Version__ + commentId: M:Butterfly.Core.Auth.AuthManager.#ctor(Butterfly.Core.Database.IDatabase,System.Int32,System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,Func{System.String,System.Int32,Task},Func{System.String,System.Int32,Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Func{System.Collections.Generic.Dictionary{System.String,System.Object},Task},Action{Version}) + name.vb: AuthManager(IDatabase, Int32, Int32, Int32, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Func(Of String, Int32, Task), Func(Of String, Int32, Task), Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task), Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task), Action(Of Version)) + fullName: Butterfly.Core.Auth.AuthManager.AuthManager(Butterfly.Core.Database.IDatabase, System.Int32, System.Int32, System.Int32, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, Func, Func, Func, Task>, Func, Task>, Action) + fullName.vb: Butterfly.Core.Auth.AuthManager.AuthManager(Butterfly.Core.Database.IDatabase, System.Int32, System.Int32, System.Int32, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, Func(Of System.String, System.Int32, Task), Func(Of System.String, System.Int32, Task), Func(Of System.Collections.Generic.Dictionary(Of System.String, System.Object), Task), Func(Of System.Collections.Generic.Dictionary(Of System.String, System.Object), Task), Action(Of Version)) + nameWithType: AuthManager.AuthManager(IDatabase, Int32, Int32, Int32, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Func, Func, Func, Task>, Func, Task>, Action) + nameWithType.vb: AuthManager.AuthManager(IDatabase, Int32, Int32, Int32, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Func(Of String, Int32, Task), Func(Of String, Int32, Task), Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task), Func(Of System.Collections.Generic.Dictionary(Of String, Object), Task), Action(Of Version)) - uid: Butterfly.Core.Auth.AuthManager.#ctor* name: AuthManager href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager__ctor_ @@ -340,18 +340,30 @@ references: isSpec: "True" fullName: Butterfly.Core.Auth.AuthManager.AuthManager nameWithType: AuthManager.AuthManager +- uid: Butterfly.Core.Auth.AuthManager.accountTableIdFieldName + name: accountTableIdFieldName + href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_accountTableIdFieldName + commentId: F:Butterfly.Core.Auth.AuthManager.accountTableIdFieldName + fullName: Butterfly.Core.Auth.AuthManager.accountTableIdFieldName + nameWithType: AuthManager.accountTableIdFieldName - uid: Butterfly.Core.Auth.AuthManager.accountTableName name: accountTableName href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_accountTableName commentId: F:Butterfly.Core.Auth.AuthManager.accountTableName fullName: Butterfly.Core.Auth.AuthManager.accountTableName nameWithType: AuthManager.accountTableName -- uid: Butterfly.Core.Auth.AuthManager.AuthenticateAsync(System.String) - name: AuthenticateAsync(String) - href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_AuthenticateAsync_System_String_ - commentId: M:Butterfly.Core.Auth.AuthManager.AuthenticateAsync(System.String) - fullName: Butterfly.Core.Auth.AuthManager.AuthenticateAsync(System.String) - nameWithType: AuthManager.AuthenticateAsync(String) +- uid: Butterfly.Core.Auth.AuthManager.accountTableShareCodeFieldName + name: accountTableShareCodeFieldName + href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_accountTableShareCodeFieldName + commentId: F:Butterfly.Core.Auth.AuthManager.accountTableShareCodeFieldName + fullName: Butterfly.Core.Auth.AuthManager.accountTableShareCodeFieldName + nameWithType: AuthManager.accountTableShareCodeFieldName +- uid: Butterfly.Core.Auth.AuthManager.AuthenticateAsync(System.String,System.String) + name: AuthenticateAsync(String, String) + href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_AuthenticateAsync_System_String_System_String_ + commentId: M:Butterfly.Core.Auth.AuthManager.AuthenticateAsync(System.String,System.String) + fullName: Butterfly.Core.Auth.AuthManager.AuthenticateAsync(System.String, System.String) + nameWithType: AuthManager.AuthenticateAsync(String, String) - uid: Butterfly.Core.Auth.AuthManager.AuthenticateAsync* name: AuthenticateAsync href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_AuthenticateAsync_ @@ -359,36 +371,18 @@ references: isSpec: "True" fullName: Butterfly.Core.Auth.AuthManager.AuthenticateAsync nameWithType: AuthManager.AuthenticateAsync +- uid: Butterfly.Core.Auth.AuthManager.authenticatorByType + name: authenticatorByType + href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_authenticatorByType + commentId: F:Butterfly.Core.Auth.AuthManager.authenticatorByType + fullName: Butterfly.Core.Auth.AuthManager.authenticatorByType + nameWithType: AuthManager.authenticatorByType - uid: Butterfly.Core.Auth.AuthManager.authTokenDurationDays name: authTokenDurationDays href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_authTokenDurationDays commentId: F:Butterfly.Core.Auth.AuthManager.authTokenDurationDays fullName: Butterfly.Core.Auth.AuthManager.authTokenDurationDays nameWithType: AuthManager.authTokenDurationDays -- uid: Butterfly.Core.Auth.AuthManager.authTokenIdFieldName - name: authTokenIdFieldName - href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_authTokenIdFieldName - commentId: F:Butterfly.Core.Auth.AuthManager.authTokenIdFieldName - fullName: Butterfly.Core.Auth.AuthManager.authTokenIdFieldName - nameWithType: AuthManager.authTokenIdFieldName -- uid: Butterfly.Core.Auth.AuthManager.authTokenTableExpiresAtFieldName - name: authTokenTableExpiresAtFieldName - href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_authTokenTableExpiresAtFieldName - commentId: F:Butterfly.Core.Auth.AuthManager.authTokenTableExpiresAtFieldName - fullName: Butterfly.Core.Auth.AuthManager.authTokenTableExpiresAtFieldName - nameWithType: AuthManager.authTokenTableExpiresAtFieldName -- uid: Butterfly.Core.Auth.AuthManager.authTokenTableName - name: authTokenTableName - href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_authTokenTableName - commentId: F:Butterfly.Core.Auth.AuthManager.authTokenTableName - fullName: Butterfly.Core.Auth.AuthManager.authTokenTableName - nameWithType: AuthManager.authTokenTableName -- uid: Butterfly.Core.Auth.AuthManager.authTokenTableUserIdFieldName - name: authTokenTableUserIdFieldName - href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_authTokenTableUserIdFieldName - commentId: F:Butterfly.Core.Auth.AuthManager.authTokenTableUserIdFieldName - fullName: Butterfly.Core.Auth.AuthManager.authTokenTableUserIdFieldName - nameWithType: AuthManager.authTokenTableUserIdFieldName - uid: Butterfly.Core.Auth.AuthManager.ConvertInputToDict(System.Object) name: ConvertInputToDict(Object) href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_ConvertInputToDict_System_Object_ @@ -415,19 +409,6 @@ references: isSpec: "True" fullName: Butterfly.Core.Auth.AuthManager.CreateAnonymousUserAsync nameWithType: AuthManager.CreateAnonymousUserAsync -- uid: Butterfly.Core.Auth.AuthManager.CreateAuthTokenAsync(System.String) - name: CreateAuthTokenAsync(String) - href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_CreateAuthTokenAsync_System_String_ - commentId: M:Butterfly.Core.Auth.AuthManager.CreateAuthTokenAsync(System.String) - fullName: Butterfly.Core.Auth.AuthManager.CreateAuthTokenAsync(System.String) - nameWithType: AuthManager.CreateAuthTokenAsync(String) -- uid: Butterfly.Core.Auth.AuthManager.CreateAuthTokenAsync* - name: CreateAuthTokenAsync - href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_CreateAuthTokenAsync_ - commentId: Overload:Butterfly.Core.Auth.AuthManager.CreateAuthTokenAsync - isSpec: "True" - fullName: Butterfly.Core.Auth.AuthManager.CreateAuthTokenAsync - nameWithType: AuthManager.CreateAuthTokenAsync - uid: Butterfly.Core.Auth.AuthManager.CreateResetCodeAsync(System.String) name: CreateResetCodeAsync(String) href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_CreateResetCodeAsync_System_String_ @@ -441,6 +422,19 @@ references: isSpec: "True" fullName: Butterfly.Core.Auth.AuthManager.CreateResetCodeAsync nameWithType: AuthManager.CreateResetCodeAsync +- uid: Butterfly.Core.Auth.AuthManager.CreateUserRefTokenAsync(System.String) + name: CreateUserRefTokenAsync(String) + href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_CreateUserRefTokenAsync_System_String_ + commentId: M:Butterfly.Core.Auth.AuthManager.CreateUserRefTokenAsync(System.String) + fullName: Butterfly.Core.Auth.AuthManager.CreateUserRefTokenAsync(System.String) + nameWithType: AuthManager.CreateUserRefTokenAsync(String) +- uid: Butterfly.Core.Auth.AuthManager.CreateUserRefTokenAsync* + name: CreateUserRefTokenAsync + href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_CreateUserRefTokenAsync_ + commentId: Overload:Butterfly.Core.Auth.AuthManager.CreateUserRefTokenAsync + isSpec: "True" + fullName: Butterfly.Core.Auth.AuthManager.CreateUserRefTokenAsync + nameWithType: AuthManager.CreateUserRefTokenAsync - uid: Butterfly.Core.Auth.AuthManager.database name: database href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_database @@ -612,12 +606,24 @@ references: isSpec: "True" fullName: Butterfly.Core.Auth.AuthManager.SetupWebApi nameWithType: AuthManager.SetupWebApi +- uid: Butterfly.Core.Auth.AuthManager.shareCodeAuthenticator + name: shareCodeAuthenticator + href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_shareCodeAuthenticator + commentId: F:Butterfly.Core.Auth.AuthManager.shareCodeAuthenticator + fullName: Butterfly.Core.Auth.AuthManager.shareCodeAuthenticator + nameWithType: AuthManager.shareCodeAuthenticator - uid: Butterfly.Core.Auth.AuthManager.usernameFieldValidator name: usernameFieldValidator href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_usernameFieldValidator commentId: F:Butterfly.Core.Auth.AuthManager.usernameFieldValidator fullName: Butterfly.Core.Auth.AuthManager.usernameFieldValidator nameWithType: AuthManager.usernameFieldValidator +- uid: Butterfly.Core.Auth.AuthManager.userRefTokenAuthenticator + name: userRefTokenAuthenticator + href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_userRefTokenAuthenticator + commentId: F:Butterfly.Core.Auth.AuthManager.userRefTokenAuthenticator + fullName: Butterfly.Core.Auth.AuthManager.userRefTokenAuthenticator + nameWithType: AuthManager.userRefTokenAuthenticator - uid: Butterfly.Core.Auth.AuthManager.userTableAccountIdFieldName name: userTableAccountIdFieldName href: api/Butterfly.Core.Auth.AuthManager.html#Butterfly_Core_Auth_AuthManager_userTableAccountIdFieldName @@ -736,12 +742,12 @@ references: commentId: T:Butterfly.Core.Auth.AuthToken fullName: Butterfly.Core.Auth.AuthToken nameWithType: AuthToken -- uid: Butterfly.Core.Auth.AuthToken.#ctor(System.String,System.String,System.String,System.String,System.String,DateTime) - name: AuthToken(String, String, String, String, String, DateTime) - href: api/Butterfly.Core.Auth.AuthToken.html#Butterfly_Core_Auth_AuthToken__ctor_System_String_System_String_System_String_System_String_System_String_DateTime_ - commentId: M:Butterfly.Core.Auth.AuthToken.#ctor(System.String,System.String,System.String,System.String,System.String,DateTime) - fullName: Butterfly.Core.Auth.AuthToken.AuthToken(System.String, System.String, System.String, System.String, System.String, DateTime) - nameWithType: AuthToken.AuthToken(String, String, String, String, String, DateTime) +- uid: Butterfly.Core.Auth.AuthToken.#ctor(System.String,System.String,System.String) + name: AuthToken(String, String, String) + href: api/Butterfly.Core.Auth.AuthToken.html#Butterfly_Core_Auth_AuthToken__ctor_System_String_System_String_System_String_ + commentId: M:Butterfly.Core.Auth.AuthToken.#ctor(System.String,System.String,System.String) + fullName: Butterfly.Core.Auth.AuthToken.AuthToken(System.String, System.String, System.String) + nameWithType: AuthToken.AuthToken(String, String, String) - uid: Butterfly.Core.Auth.AuthToken.#ctor* name: AuthToken href: api/Butterfly.Core.Auth.AuthToken.html#Butterfly_Core_Auth_AuthToken__ctor_ @@ -755,52 +761,294 @@ references: commentId: F:Butterfly.Core.Auth.AuthToken.accountId fullName: Butterfly.Core.Auth.AuthToken.accountId nameWithType: AuthToken.accountId -- uid: Butterfly.Core.Auth.AuthToken.expiresAt - name: expiresAt - href: api/Butterfly.Core.Auth.AuthToken.html#Butterfly_Core_Auth_AuthToken_expiresAt - commentId: F:Butterfly.Core.Auth.AuthToken.expiresAt - fullName: Butterfly.Core.Auth.AuthToken.expiresAt - nameWithType: AuthToken.expiresAt -- uid: Butterfly.Core.Auth.AuthToken.FromDict(System.Collections.Generic.Dictionary{System.String,System.Object},System.String,System.String,System.String,System.String,System.String,System.String) - name: FromDict(System.Collections.Generic.Dictionary, String, String, String, String, String, String) - href: api/Butterfly.Core.Auth.AuthToken.html#Butterfly_Core_Auth_AuthToken_FromDict_System_Collections_Generic_Dictionary_System_String_System_Object__System_String_System_String_System_String_System_String_System_String_System_String_ - commentId: M:Butterfly.Core.Auth.AuthToken.FromDict(System.Collections.Generic.Dictionary{System.String,System.Object},System.String,System.String,System.String,System.String,System.String,System.String) - name.vb: FromDict(System.Collections.Generic.Dictionary(Of String, Object), String, String, String, String, String, String) - fullName: Butterfly.Core.Auth.AuthToken.FromDict(System.Collections.Generic.Dictionary, System.String, System.String, System.String, System.String, System.String, System.String) - fullName.vb: Butterfly.Core.Auth.AuthToken.FromDict(System.Collections.Generic.Dictionary(Of System.String, System.Object), System.String, System.String, System.String, System.String, System.String, System.String) - nameWithType: AuthToken.FromDict(System.Collections.Generic.Dictionary, String, String, String, String, String, String) - nameWithType.vb: AuthToken.FromDict(System.Collections.Generic.Dictionary(Of String, Object), String, String, String, String, String, String) -- uid: Butterfly.Core.Auth.AuthToken.FromDict* - name: FromDict - href: api/Butterfly.Core.Auth.AuthToken.html#Butterfly_Core_Auth_AuthToken_FromDict_ - commentId: Overload:Butterfly.Core.Auth.AuthToken.FromDict - isSpec: "True" - fullName: Butterfly.Core.Auth.AuthToken.FromDict - nameWithType: AuthToken.FromDict -- uid: Butterfly.Core.Auth.AuthToken.id - name: id - href: api/Butterfly.Core.Auth.AuthToken.html#Butterfly_Core_Auth_AuthToken_id - commentId: F:Butterfly.Core.Auth.AuthToken.id - fullName: Butterfly.Core.Auth.AuthToken.id - nameWithType: AuthToken.id - uid: Butterfly.Core.Auth.AuthToken.role name: role href: api/Butterfly.Core.Auth.AuthToken.html#Butterfly_Core_Auth_AuthToken_role commentId: F:Butterfly.Core.Auth.AuthToken.role fullName: Butterfly.Core.Auth.AuthToken.role nameWithType: AuthToken.role -- uid: Butterfly.Core.Auth.AuthToken.userId +- uid: Butterfly.Core.Auth.AuthToken.type + name: type + href: api/Butterfly.Core.Auth.AuthToken.html#Butterfly_Core_Auth_AuthToken_type + commentId: F:Butterfly.Core.Auth.AuthToken.type + fullName: Butterfly.Core.Auth.AuthToken.type + nameWithType: AuthToken.type +- uid: Butterfly.Core.Auth.IAuthenticator + name: IAuthenticator + href: api/Butterfly.Core.Auth.IAuthenticator.html + commentId: T:Butterfly.Core.Auth.IAuthenticator + fullName: Butterfly.Core.Auth.IAuthenticator + nameWithType: IAuthenticator +- uid: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String,System.String) + name: AuthenticateAsync(String, String) + href: api/Butterfly.Core.Auth.IAuthenticator.html#Butterfly_Core_Auth_IAuthenticator_AuthenticateAsync_System_String_System_String_ + commentId: M:Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String,System.String) + fullName: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync(System.String, System.String) + nameWithType: IAuthenticator.AuthenticateAsync(String, String) +- uid: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync* + name: AuthenticateAsync + href: api/Butterfly.Core.Auth.IAuthenticator.html#Butterfly_Core_Auth_IAuthenticator_AuthenticateAsync_ + commentId: Overload:Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync + isSpec: "True" + fullName: Butterfly.Core.Auth.IAuthenticator.AuthenticateAsync + nameWithType: IAuthenticator.AuthenticateAsync +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator + name: ShareCodeAuthenticator + href: api/Butterfly.Core.Auth.ShareCodeAuthenticator.html + commentId: T:Butterfly.Core.Auth.ShareCodeAuthenticator + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator + nameWithType: ShareCodeAuthenticator +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.#ctor(Butterfly.Core.Database.IDatabase,System.String,System.String,System.String) + name: ShareCodeAuthenticator(IDatabase, String, String, String) + href: api/Butterfly.Core.Auth.ShareCodeAuthenticator.html#Butterfly_Core_Auth_ShareCodeAuthenticator__ctor_Butterfly_Core_Database_IDatabase_System_String_System_String_System_String_ + commentId: M:Butterfly.Core.Auth.ShareCodeAuthenticator.#ctor(Butterfly.Core.Database.IDatabase,System.String,System.String,System.String) + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.ShareCodeAuthenticator(Butterfly.Core.Database.IDatabase, System.String, System.String, System.String) + nameWithType: ShareCodeAuthenticator.ShareCodeAuthenticator(IDatabase, String, String, String) +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.#ctor* + name: ShareCodeAuthenticator + href: api/Butterfly.Core.Auth.ShareCodeAuthenticator.html#Butterfly_Core_Auth_ShareCodeAuthenticator__ctor_ + commentId: Overload:Butterfly.Core.Auth.ShareCodeAuthenticator.#ctor + isSpec: "True" + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.ShareCodeAuthenticator + nameWithType: ShareCodeAuthenticator.ShareCodeAuthenticator +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableIdFieldName + name: accountTableIdFieldName + href: api/Butterfly.Core.Auth.ShareCodeAuthenticator.html#Butterfly_Core_Auth_ShareCodeAuthenticator_accountTableIdFieldName + commentId: F:Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableIdFieldName + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableIdFieldName + nameWithType: ShareCodeAuthenticator.accountTableIdFieldName +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableName + name: accountTableName + href: api/Butterfly.Core.Auth.ShareCodeAuthenticator.html#Butterfly_Core_Auth_ShareCodeAuthenticator_accountTableName + commentId: F:Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableName + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableName + nameWithType: ShareCodeAuthenticator.accountTableName +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableShareCodeFieldName + name: accountTableShareCodeFieldName + href: api/Butterfly.Core.Auth.ShareCodeAuthenticator.html#Butterfly_Core_Auth_ShareCodeAuthenticator_accountTableShareCodeFieldName + commentId: F:Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableShareCodeFieldName + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.accountTableShareCodeFieldName + nameWithType: ShareCodeAuthenticator.accountTableShareCodeFieldName +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.AUTH_TYPE + name: AUTH_TYPE + href: api/Butterfly.Core.Auth.ShareCodeAuthenticator.html#Butterfly_Core_Auth_ShareCodeAuthenticator_AUTH_TYPE + commentId: F:Butterfly.Core.Auth.ShareCodeAuthenticator.AUTH_TYPE + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.AUTH_TYPE + nameWithType: ShareCodeAuthenticator.AUTH_TYPE +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.AuthenticateAsync(System.String,System.String) + name: AuthenticateAsync(String, String) + href: api/Butterfly.Core.Auth.ShareCodeAuthenticator.html#Butterfly_Core_Auth_ShareCodeAuthenticator_AuthenticateAsync_System_String_System_String_ + commentId: M:Butterfly.Core.Auth.ShareCodeAuthenticator.AuthenticateAsync(System.String,System.String) + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.AuthenticateAsync(System.String, System.String) + nameWithType: ShareCodeAuthenticator.AuthenticateAsync(String, String) +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.AuthenticateAsync* + name: AuthenticateAsync + href: api/Butterfly.Core.Auth.ShareCodeAuthenticator.html#Butterfly_Core_Auth_ShareCodeAuthenticator_AuthenticateAsync_ + commentId: Overload:Butterfly.Core.Auth.ShareCodeAuthenticator.AuthenticateAsync + isSpec: "True" + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.AuthenticateAsync + nameWithType: ShareCodeAuthenticator.AuthenticateAsync +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.database + name: database + href: api/Butterfly.Core.Auth.ShareCodeAuthenticator.html#Butterfly_Core_Auth_ShareCodeAuthenticator_database + commentId: F:Butterfly.Core.Auth.ShareCodeAuthenticator.database + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.database + nameWithType: ShareCodeAuthenticator.database +- uid: Butterfly.Core.Auth.ShareCodeAuthenticator.logger + name: logger + href: api/Butterfly.Core.Auth.ShareCodeAuthenticator.html#Butterfly_Core_Auth_ShareCodeAuthenticator_logger + commentId: F:Butterfly.Core.Auth.ShareCodeAuthenticator.logger + fullName: Butterfly.Core.Auth.ShareCodeAuthenticator.logger + nameWithType: ShareCodeAuthenticator.logger +- uid: Butterfly.Core.Auth.ShareCodeToken + name: ShareCodeToken + href: api/Butterfly.Core.Auth.ShareCodeToken.html + commentId: T:Butterfly.Core.Auth.ShareCodeToken + fullName: Butterfly.Core.Auth.ShareCodeToken + nameWithType: ShareCodeToken +- uid: Butterfly.Core.Auth.ShareCodeToken.#ctor(System.String,System.String) + name: ShareCodeToken(String, String) + href: api/Butterfly.Core.Auth.ShareCodeToken.html#Butterfly_Core_Auth_ShareCodeToken__ctor_System_String_System_String_ + commentId: M:Butterfly.Core.Auth.ShareCodeToken.#ctor(System.String,System.String) + fullName: Butterfly.Core.Auth.ShareCodeToken.ShareCodeToken(System.String, System.String) + nameWithType: ShareCodeToken.ShareCodeToken(String, String) +- uid: Butterfly.Core.Auth.ShareCodeToken.#ctor* + name: ShareCodeToken + href: api/Butterfly.Core.Auth.ShareCodeToken.html#Butterfly_Core_Auth_ShareCodeToken__ctor_ + commentId: Overload:Butterfly.Core.Auth.ShareCodeToken.#ctor + isSpec: "True" + fullName: Butterfly.Core.Auth.ShareCodeToken.ShareCodeToken + nameWithType: ShareCodeToken.ShareCodeToken +- uid: Butterfly.Core.Auth.UserRefToken + name: UserRefToken + href: api/Butterfly.Core.Auth.UserRefToken.html + commentId: T:Butterfly.Core.Auth.UserRefToken + fullName: Butterfly.Core.Auth.UserRefToken + nameWithType: UserRefToken +- uid: Butterfly.Core.Auth.UserRefToken.#ctor(System.String,System.String,System.String,System.String,System.String,DateTime) + name: UserRefToken(String, String, String, String, String, DateTime) + href: api/Butterfly.Core.Auth.UserRefToken.html#Butterfly_Core_Auth_UserRefToken__ctor_System_String_System_String_System_String_System_String_System_String_DateTime_ + commentId: M:Butterfly.Core.Auth.UserRefToken.#ctor(System.String,System.String,System.String,System.String,System.String,DateTime) + fullName: Butterfly.Core.Auth.UserRefToken.UserRefToken(System.String, System.String, System.String, System.String, System.String, DateTime) + nameWithType: UserRefToken.UserRefToken(String, String, String, String, String, DateTime) +- uid: Butterfly.Core.Auth.UserRefToken.#ctor* + name: UserRefToken + href: api/Butterfly.Core.Auth.UserRefToken.html#Butterfly_Core_Auth_UserRefToken__ctor_ + commentId: Overload:Butterfly.Core.Auth.UserRefToken.#ctor + isSpec: "True" + fullName: Butterfly.Core.Auth.UserRefToken.UserRefToken + nameWithType: UserRefToken.UserRefToken +- uid: Butterfly.Core.Auth.UserRefToken.expiresAt + name: expiresAt + href: api/Butterfly.Core.Auth.UserRefToken.html#Butterfly_Core_Auth_UserRefToken_expiresAt + commentId: F:Butterfly.Core.Auth.UserRefToken.expiresAt + fullName: Butterfly.Core.Auth.UserRefToken.expiresAt + nameWithType: UserRefToken.expiresAt +- uid: Butterfly.Core.Auth.UserRefToken.FromDict(System.Collections.Generic.Dictionary{System.String,System.Object},System.String,System.String,System.String,System.String,System.String,System.String) + name: FromDict(System.Collections.Generic.Dictionary, String, String, String, String, String, String) + href: api/Butterfly.Core.Auth.UserRefToken.html#Butterfly_Core_Auth_UserRefToken_FromDict_System_Collections_Generic_Dictionary_System_String_System_Object__System_String_System_String_System_String_System_String_System_String_System_String_ + commentId: M:Butterfly.Core.Auth.UserRefToken.FromDict(System.Collections.Generic.Dictionary{System.String,System.Object},System.String,System.String,System.String,System.String,System.String,System.String) + name.vb: FromDict(System.Collections.Generic.Dictionary(Of String, Object), String, String, String, String, String, String) + fullName: Butterfly.Core.Auth.UserRefToken.FromDict(System.Collections.Generic.Dictionary, System.String, System.String, System.String, System.String, System.String, System.String) + fullName.vb: Butterfly.Core.Auth.UserRefToken.FromDict(System.Collections.Generic.Dictionary(Of System.String, System.Object), System.String, System.String, System.String, System.String, System.String, System.String) + nameWithType: UserRefToken.FromDict(System.Collections.Generic.Dictionary, String, String, String, String, String, String) + nameWithType.vb: UserRefToken.FromDict(System.Collections.Generic.Dictionary(Of String, Object), String, String, String, String, String, String) +- uid: Butterfly.Core.Auth.UserRefToken.FromDict* + name: FromDict + href: api/Butterfly.Core.Auth.UserRefToken.html#Butterfly_Core_Auth_UserRefToken_FromDict_ + commentId: Overload:Butterfly.Core.Auth.UserRefToken.FromDict + isSpec: "True" + fullName: Butterfly.Core.Auth.UserRefToken.FromDict + nameWithType: UserRefToken.FromDict +- uid: Butterfly.Core.Auth.UserRefToken.id + name: id + href: api/Butterfly.Core.Auth.UserRefToken.html#Butterfly_Core_Auth_UserRefToken_id + commentId: F:Butterfly.Core.Auth.UserRefToken.id + fullName: Butterfly.Core.Auth.UserRefToken.id + nameWithType: UserRefToken.id +- uid: Butterfly.Core.Auth.UserRefToken.userId name: userId - href: api/Butterfly.Core.Auth.AuthToken.html#Butterfly_Core_Auth_AuthToken_userId - commentId: F:Butterfly.Core.Auth.AuthToken.userId - fullName: Butterfly.Core.Auth.AuthToken.userId - nameWithType: AuthToken.userId -- uid: Butterfly.Core.Auth.AuthToken.username + href: api/Butterfly.Core.Auth.UserRefToken.html#Butterfly_Core_Auth_UserRefToken_userId + commentId: F:Butterfly.Core.Auth.UserRefToken.userId + fullName: Butterfly.Core.Auth.UserRefToken.userId + nameWithType: UserRefToken.userId +- uid: Butterfly.Core.Auth.UserRefToken.username name: username - href: api/Butterfly.Core.Auth.AuthToken.html#Butterfly_Core_Auth_AuthToken_username - commentId: F:Butterfly.Core.Auth.AuthToken.username - fullName: Butterfly.Core.Auth.AuthToken.username - nameWithType: AuthToken.username + href: api/Butterfly.Core.Auth.UserRefToken.html#Butterfly_Core_Auth_UserRefToken_username + commentId: F:Butterfly.Core.Auth.UserRefToken.username + fullName: Butterfly.Core.Auth.UserRefToken.username + nameWithType: UserRefToken.username +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator + name: UserRefTokenAuthenticator + href: api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html + commentId: T:Butterfly.Core.Auth.UserRefTokenAuthenticator + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator + nameWithType: UserRefTokenAuthenticator +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.#ctor(Butterfly.Core.Database.IDatabase,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String) + name: UserRefTokenAuthenticator(IDatabase, String, String, String, String, String, String, String, String) + href: api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html#Butterfly_Core_Auth_UserRefTokenAuthenticator__ctor_Butterfly_Core_Database_IDatabase_System_String_System_String_System_String_System_String_System_String_System_String_System_String_System_String_ + commentId: M:Butterfly.Core.Auth.UserRefTokenAuthenticator.#ctor(Butterfly.Core.Database.IDatabase,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String) + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.UserRefTokenAuthenticator(Butterfly.Core.Database.IDatabase, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String) + nameWithType: UserRefTokenAuthenticator.UserRefTokenAuthenticator(IDatabase, String, String, String, String, String, String, String, String) +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.#ctor* + name: UserRefTokenAuthenticator + href: api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html#Butterfly_Core_Auth_UserRefTokenAuthenticator__ctor_ + commentId: Overload:Butterfly.Core.Auth.UserRefTokenAuthenticator.#ctor + isSpec: "True" + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.UserRefTokenAuthenticator + nameWithType: UserRefTokenAuthenticator.UserRefTokenAuthenticator +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.AUTH_TYPE + name: AUTH_TYPE + href: api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html#Butterfly_Core_Auth_UserRefTokenAuthenticator_AUTH_TYPE + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.AUTH_TYPE + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.AUTH_TYPE + nameWithType: UserRefTokenAuthenticator.AUTH_TYPE +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.AuthenticateAsync(System.String,System.String) + name: AuthenticateAsync(String, String) + href: api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html#Butterfly_Core_Auth_UserRefTokenAuthenticator_AuthenticateAsync_System_String_System_String_ + commentId: M:Butterfly.Core.Auth.UserRefTokenAuthenticator.AuthenticateAsync(System.String,System.String) + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.AuthenticateAsync(System.String, System.String) + nameWithType: UserRefTokenAuthenticator.AuthenticateAsync(String, String) +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.AuthenticateAsync* + name: AuthenticateAsync + href: api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html#Butterfly_Core_Auth_UserRefTokenAuthenticator_AuthenticateAsync_ + commentId: Overload:Butterfly.Core.Auth.UserRefTokenAuthenticator.AuthenticateAsync + isSpec: "True" + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.AuthenticateAsync + nameWithType: UserRefTokenAuthenticator.AuthenticateAsync +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenIdFieldName + name: authTokenIdFieldName + href: api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html#Butterfly_Core_Auth_UserRefTokenAuthenticator_authTokenIdFieldName + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenIdFieldName + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenIdFieldName + nameWithType: UserRefTokenAuthenticator.authTokenIdFieldName +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableExpiresAtFieldName + name: authTokenTableExpiresAtFieldName + href: api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html#Butterfly_Core_Auth_UserRefTokenAuthenticator_authTokenTableExpiresAtFieldName + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableExpiresAtFieldName + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableExpiresAtFieldName + nameWithType: UserRefTokenAuthenticator.authTokenTableExpiresAtFieldName +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableName + name: authTokenTableName + href: api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html#Butterfly_Core_Auth_UserRefTokenAuthenticator_authTokenTableName + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableName + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableName + nameWithType: UserRefTokenAuthenticator.authTokenTableName +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableUserIdFieldName + name: authTokenTableUserIdFieldName + href: api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html#Butterfly_Core_Auth_UserRefTokenAuthenticator_authTokenTableUserIdFieldName + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableUserIdFieldName + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.authTokenTableUserIdFieldName + nameWithType: UserRefTokenAuthenticator.authTokenTableUserIdFieldName +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.database + name: database + href: api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html#Butterfly_Core_Auth_UserRefTokenAuthenticator_database + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.database + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.database + nameWithType: UserRefTokenAuthenticator.database +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.InsertAsync(Butterfly.Core.Database.ITransaction,System.String,DateTime) + name: InsertAsync(ITransaction, String, DateTime) + href: api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html#Butterfly_Core_Auth_UserRefTokenAuthenticator_InsertAsync_Butterfly_Core_Database_ITransaction_System_String_DateTime_ + commentId: M:Butterfly.Core.Auth.UserRefTokenAuthenticator.InsertAsync(Butterfly.Core.Database.ITransaction,System.String,DateTime) + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.InsertAsync(Butterfly.Core.Database.ITransaction, System.String, DateTime) + nameWithType: UserRefTokenAuthenticator.InsertAsync(ITransaction, String, DateTime) +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.InsertAsync* + name: InsertAsync + href: api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html#Butterfly_Core_Auth_UserRefTokenAuthenticator_InsertAsync_ + commentId: Overload:Butterfly.Core.Auth.UserRefTokenAuthenticator.InsertAsync + isSpec: "True" + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.InsertAsync + nameWithType: UserRefTokenAuthenticator.InsertAsync +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.logger + name: logger + href: api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html#Butterfly_Core_Auth_UserRefTokenAuthenticator_logger + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.logger + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.logger + nameWithType: UserRefTokenAuthenticator.logger +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableAccountIdFieldName + name: userTableAccountIdFieldName + href: api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html#Butterfly_Core_Auth_UserRefTokenAuthenticator_userTableAccountIdFieldName + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableAccountIdFieldName + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableAccountIdFieldName + nameWithType: UserRefTokenAuthenticator.userTableAccountIdFieldName +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableName + name: userTableName + href: api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html#Butterfly_Core_Auth_UserRefTokenAuthenticator_userTableName + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableName + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableName + nameWithType: UserRefTokenAuthenticator.userTableName +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableRoleFieldName + name: userTableRoleFieldName + href: api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html#Butterfly_Core_Auth_UserRefTokenAuthenticator_userTableRoleFieldName + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableRoleFieldName + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableRoleFieldName + nameWithType: UserRefTokenAuthenticator.userTableRoleFieldName +- uid: Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableUsernameFieldName + name: userTableUsernameFieldName + href: api/Butterfly.Core.Auth.UserRefTokenAuthenticator.html#Butterfly_Core_Auth_UserRefTokenAuthenticator_userTableUsernameFieldName + commentId: F:Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableUsernameFieldName + fullName: Butterfly.Core.Auth.UserRefTokenAuthenticator.userTableUsernameFieldName + nameWithType: UserRefTokenAuthenticator.userTableUsernameFieldName - uid: Butterfly.Core.Channel name: Butterfly.Core.Channel href: api/Butterfly.Core.Channel.html @@ -958,12 +1206,12 @@ references: commentId: F:Butterfly.Core.Channel.BaseChannelConnection.monitor fullName: Butterfly.Core.Channel.BaseChannelConnection.monitor nameWithType: BaseChannelConnection.monitor -- uid: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object) - name: QueueMessage(String, String, Object) - href: api/Butterfly.Core.Channel.BaseChannelConnection.html#Butterfly_Core_Channel_BaseChannelConnection_QueueMessage_System_String_System_String_System_Object_ - commentId: M:Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object) - fullName: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String, System.String, System.Object) - nameWithType: BaseChannelConnection.QueueMessage(String, String, Object) +- uid: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) + name: QueueMessage(String, String, Object, Boolean) + href: api/Butterfly.Core.Channel.BaseChannelConnection.html#Butterfly_Core_Channel_BaseChannelConnection_QueueMessage_System_String_System_String_System_Object_System_Boolean_ + commentId: M:Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) + fullName: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage(System.String, System.String, System.Object, System.Boolean) + nameWithType: BaseChannelConnection.QueueMessage(String, String, Object, Boolean) - uid: Butterfly.Core.Channel.BaseChannelConnection.QueueMessage* name: QueueMessage href: api/Butterfly.Core.Channel.BaseChannelConnection.html#Butterfly_Core_Channel_BaseChannelConnection_QueueMessage_ @@ -1538,12 +1786,12 @@ references: isSpec: "True" fullName: Butterfly.Core.Channel.IChannelConnection.LastHeartbeat nameWithType: IChannelConnection.LastHeartbeat -- uid: Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object) - name: QueueMessage(String, String, Object) - href: api/Butterfly.Core.Channel.IChannelConnection.html#Butterfly_Core_Channel_IChannelConnection_QueueMessage_System_String_System_String_System_Object_ - commentId: M:Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object) - fullName: Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String, System.String, System.Object) - nameWithType: IChannelConnection.QueueMessage(String, String, Object) +- uid: Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) + name: QueueMessage(String, String, Object, Boolean) + href: api/Butterfly.Core.Channel.IChannelConnection.html#Butterfly_Core_Channel_IChannelConnection_QueueMessage_System_String_System_String_System_Object_System_Boolean_ + commentId: M:Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String,System.String,System.Object,System.Boolean) + fullName: Butterfly.Core.Channel.IChannelConnection.QueueMessage(System.String, System.String, System.Object, System.Boolean) + nameWithType: IChannelConnection.QueueMessage(String, String, Object, Boolean) - uid: Butterfly.Core.Channel.IChannelConnection.QueueMessage* name: QueueMessage href: api/Butterfly.Core.Channel.IChannelConnection.html#Butterfly_Core_Channel_IChannelConnection_QueueMessage_ @@ -2764,15 +3012,15 @@ references: fullName.vb: Butterfly.Core.Database.BaseTransaction.InsertAsync(Of T)(System.String, System.Object, System.Boolean) nameWithType: BaseTransaction.InsertAsync(String, Object, Boolean) nameWithType.vb: BaseTransaction.InsertAsync(Of T)(String, Object, Boolean) -- uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task}) - name: OnCommit(Func) - href: api/Butterfly.Core.Database.BaseTransaction.html#Butterfly_Core_Database_BaseTransaction_OnCommit_Func_Task__ - commentId: M:Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task}) - name.vb: OnCommit(Func(Of Task)) - fullName: Butterfly.Core.Database.BaseTransaction.OnCommit(Func) - fullName.vb: Butterfly.Core.Database.BaseTransaction.OnCommit(Func(Of Task)) - nameWithType: BaseTransaction.OnCommit(Func) - nameWithType.vb: BaseTransaction.OnCommit(Func(Of Task)) +- uid: Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task},System.String) + name: OnCommit(Func, String) + href: api/Butterfly.Core.Database.BaseTransaction.html#Butterfly_Core_Database_BaseTransaction_OnCommit_Func_Task__System_String_ + commentId: M:Butterfly.Core.Database.BaseTransaction.OnCommit(Func{Task},System.String) + name.vb: OnCommit(Func(Of Task), String) + fullName: Butterfly.Core.Database.BaseTransaction.OnCommit(Func, System.String) + fullName.vb: Butterfly.Core.Database.BaseTransaction.OnCommit(Func(Of Task), System.String) + nameWithType: BaseTransaction.OnCommit(Func, String) + nameWithType.vb: BaseTransaction.OnCommit(Func(Of Task), String) - uid: Butterfly.Core.Database.BaseTransaction.OnCommit* name: OnCommit href: api/Butterfly.Core.Database.BaseTransaction.html#Butterfly_Core_Database_BaseTransaction_OnCommit_ @@ -2780,12 +3028,12 @@ references: isSpec: "True" fullName: Butterfly.Core.Database.BaseTransaction.OnCommit nameWithType: BaseTransaction.OnCommit -- uid: Butterfly.Core.Database.BaseTransaction.onCommits - name: onCommits - href: api/Butterfly.Core.Database.BaseTransaction.html#Butterfly_Core_Database_BaseTransaction_onCommits - commentId: F:Butterfly.Core.Database.BaseTransaction.onCommits - fullName: Butterfly.Core.Database.BaseTransaction.onCommits - nameWithType: BaseTransaction.onCommits +- uid: Butterfly.Core.Database.BaseTransaction.onCommitRefs + name: onCommitRefs + href: api/Butterfly.Core.Database.BaseTransaction.html#Butterfly_Core_Database_BaseTransaction_onCommitRefs + commentId: F:Butterfly.Core.Database.BaseTransaction.onCommitRefs + fullName: Butterfly.Core.Database.BaseTransaction.onCommitRefs + nameWithType: BaseTransaction.onCommitRefs - uid: Butterfly.Core.Database.BaseTransaction.Rollback name: Rollback() href: api/Butterfly.Core.Database.BaseTransaction.html#Butterfly_Core_Database_BaseTransaction_Rollback @@ -4723,15 +4971,15 @@ references: fullName.vb: Butterfly.Core.Database.ITransaction.InsertAsync(Of T)(System.String, System.Object, System.Boolean) nameWithType: ITransaction.InsertAsync(String, Object, Boolean) nameWithType.vb: ITransaction.InsertAsync(Of T)(String, Object, Boolean) -- uid: Butterfly.Core.Database.ITransaction.OnCommit(Func{Task}) - name: OnCommit(Func) - href: api/Butterfly.Core.Database.ITransaction.html#Butterfly_Core_Database_ITransaction_OnCommit_Func_Task__ - commentId: M:Butterfly.Core.Database.ITransaction.OnCommit(Func{Task}) - name.vb: OnCommit(Func(Of Task)) - fullName: Butterfly.Core.Database.ITransaction.OnCommit(Func) - fullName.vb: Butterfly.Core.Database.ITransaction.OnCommit(Func(Of Task)) - nameWithType: ITransaction.OnCommit(Func) - nameWithType.vb: ITransaction.OnCommit(Func(Of Task)) +- uid: Butterfly.Core.Database.ITransaction.OnCommit(Func{Task},System.String) + name: OnCommit(Func, String) + href: api/Butterfly.Core.Database.ITransaction.html#Butterfly_Core_Database_ITransaction_OnCommit_Func_Task__System_String_ + commentId: M:Butterfly.Core.Database.ITransaction.OnCommit(Func{Task},System.String) + name.vb: OnCommit(Func(Of Task), String) + fullName: Butterfly.Core.Database.ITransaction.OnCommit(Func, System.String) + fullName.vb: Butterfly.Core.Database.ITransaction.OnCommit(Func(Of Task), System.String) + nameWithType: ITransaction.OnCommit(Func, String) + nameWithType.vb: ITransaction.OnCommit(Func(Of Task), String) - uid: Butterfly.Core.Database.ITransaction.OnCommit* name: OnCommit href: api/Butterfly.Core.Database.ITransaction.html#Butterfly_Core_Database_ITransaction_OnCommit_ @@ -5215,6 +5463,40 @@ references: isSpec: "True" fullName: Butterfly.Core.Database.Memory.MemoryTransaction.DoUpdateAsync nameWithType: MemoryTransaction.DoUpdateAsync +- uid: Butterfly.Core.Database.OnCommitRef + name: OnCommitRef + href: api/Butterfly.Core.Database.OnCommitRef.html + commentId: T:Butterfly.Core.Database.OnCommitRef + fullName: Butterfly.Core.Database.OnCommitRef + nameWithType: OnCommitRef +- uid: Butterfly.Core.Database.OnCommitRef.#ctor(Func{Task},System.String) + name: OnCommitRef(Func, String) + href: api/Butterfly.Core.Database.OnCommitRef.html#Butterfly_Core_Database_OnCommitRef__ctor_Func_Task__System_String_ + commentId: M:Butterfly.Core.Database.OnCommitRef.#ctor(Func{Task},System.String) + name.vb: OnCommitRef(Func(Of Task), String) + fullName: Butterfly.Core.Database.OnCommitRef.OnCommitRef(Func, System.String) + fullName.vb: Butterfly.Core.Database.OnCommitRef.OnCommitRef(Func(Of Task), System.String) + nameWithType: OnCommitRef.OnCommitRef(Func, String) + nameWithType.vb: OnCommitRef.OnCommitRef(Func(Of Task), String) +- uid: Butterfly.Core.Database.OnCommitRef.#ctor* + name: OnCommitRef + href: api/Butterfly.Core.Database.OnCommitRef.html#Butterfly_Core_Database_OnCommitRef__ctor_ + commentId: Overload:Butterfly.Core.Database.OnCommitRef.#ctor + isSpec: "True" + fullName: Butterfly.Core.Database.OnCommitRef.OnCommitRef + nameWithType: OnCommitRef.OnCommitRef +- uid: Butterfly.Core.Database.OnCommitRef.key + name: key + href: api/Butterfly.Core.Database.OnCommitRef.html#Butterfly_Core_Database_OnCommitRef_key + commentId: F:Butterfly.Core.Database.OnCommitRef.key + fullName: Butterfly.Core.Database.OnCommitRef.key + nameWithType: OnCommitRef.key +- uid: Butterfly.Core.Database.OnCommitRef.onCommit + name: onCommit + href: api/Butterfly.Core.Database.OnCommitRef.html#Butterfly_Core_Database_OnCommitRef_onCommit + commentId: F:Butterfly.Core.Database.OnCommitRef.onCommit + fullName: Butterfly.Core.Database.OnCommitRef.onCommit + nameWithType: OnCommitRef.onCommit - uid: Butterfly.Core.Database.SelectStatement name: SelectStatement href: api/Butterfly.Core.Database.SelectStatement.html @@ -6174,12 +6456,12 @@ references: commentId: F:Butterfly.Core.Notify.NotifyManager.PHONE_FIELD_VALIDATOR fullName: Butterfly.Core.Notify.NotifyManager.PHONE_FIELD_VALIDATOR nameWithType: NotifyManager.PHONE_FIELD_VALIDATOR -- uid: Butterfly.Core.Notify.NotifyManager.phoneTextNotifyMessageEngine - name: phoneTextNotifyMessageEngine - href: api/Butterfly.Core.Notify.NotifyManager.html#Butterfly_Core_Notify_NotifyManager_phoneTextNotifyMessageEngine - commentId: F:Butterfly.Core.Notify.NotifyManager.phoneTextNotifyMessageEngine - fullName: Butterfly.Core.Notify.NotifyManager.phoneTextNotifyMessageEngine - nameWithType: NotifyManager.phoneTextNotifyMessageEngine +- uid: Butterfly.Core.Notify.NotifyManager.phoneNotifyMessageEngine + name: phoneNotifyMessageEngine + href: api/Butterfly.Core.Notify.NotifyManager.html#Butterfly_Core_Notify_NotifyManager_phoneNotifyMessageEngine + commentId: F:Butterfly.Core.Notify.NotifyManager.phoneNotifyMessageEngine + fullName: Butterfly.Core.Notify.NotifyManager.phoneNotifyMessageEngine + nameWithType: NotifyManager.phoneNotifyMessageEngine - uid: Butterfly.Core.Notify.NotifyManager.Queue(Butterfly.Core.Database.ITransaction,Butterfly.Core.Notify.NotifyMessage[]) name: Queue(ITransaction, NotifyMessage[]) href: api/Butterfly.Core.Notify.NotifyManager.html#Butterfly_Core_Notify_NotifyManager_Queue_Butterfly_Core_Database_ITransaction_Butterfly_Core_Notify_NotifyMessage___ @@ -6215,19 +6497,6 @@ references: isSpec: "True" fullName: Butterfly.Core.Notify.NotifyManager.SendVerifyCodeAsync nameWithType: NotifyManager.SendVerifyCodeAsync -- uid: Butterfly.Core.Notify.NotifyManager.SetupWebApi(Butterfly.Core.WebApi.IWebApi,System.String) - name: SetupWebApi(IWebApi, String) - href: api/Butterfly.Core.Notify.NotifyManager.html#Butterfly_Core_Notify_NotifyManager_SetupWebApi_Butterfly_Core_WebApi_IWebApi_System_String_ - commentId: M:Butterfly.Core.Notify.NotifyManager.SetupWebApi(Butterfly.Core.WebApi.IWebApi,System.String) - fullName: Butterfly.Core.Notify.NotifyManager.SetupWebApi(Butterfly.Core.WebApi.IWebApi, System.String) - nameWithType: NotifyManager.SetupWebApi(IWebApi, String) -- uid: Butterfly.Core.Notify.NotifyManager.SetupWebApi* - name: SetupWebApi - href: api/Butterfly.Core.Notify.NotifyManager.html#Butterfly_Core_Notify_NotifyManager_SetupWebApi_ - commentId: Overload:Butterfly.Core.Notify.NotifyManager.SetupWebApi - isSpec: "True" - fullName: Butterfly.Core.Notify.NotifyManager.SetupWebApi - nameWithType: NotifyManager.SetupWebApi - uid: Butterfly.Core.Notify.NotifyManager.Start name: Start() href: api/Butterfly.Core.Notify.NotifyManager.html#Butterfly_Core_Notify_NotifyManager_Start @@ -6298,12 +6567,12 @@ references: commentId: F:Butterfly.Core.Notify.NotifyManager.verifyEmailNotifyMessage fullName: Butterfly.Core.Notify.NotifyManager.verifyEmailNotifyMessage nameWithType: NotifyManager.verifyEmailNotifyMessage -- uid: Butterfly.Core.Notify.NotifyManager.verifyPhoneTextNotifyMessage - name: verifyPhoneTextNotifyMessage - href: api/Butterfly.Core.Notify.NotifyManager.html#Butterfly_Core_Notify_NotifyManager_verifyPhoneTextNotifyMessage - commentId: F:Butterfly.Core.Notify.NotifyManager.verifyPhoneTextNotifyMessage - fullName: Butterfly.Core.Notify.NotifyManager.verifyPhoneTextNotifyMessage - nameWithType: NotifyManager.verifyPhoneTextNotifyMessage +- uid: Butterfly.Core.Notify.NotifyManager.verifyPhoneNotifyMessage + name: verifyPhoneNotifyMessage + href: api/Butterfly.Core.Notify.NotifyManager.html#Butterfly_Core_Notify_NotifyManager_verifyPhoneNotifyMessage + commentId: F:Butterfly.Core.Notify.NotifyManager.verifyPhoneNotifyMessage + fullName: Butterfly.Core.Notify.NotifyManager.verifyPhoneNotifyMessage + nameWithType: NotifyManager.verifyPhoneNotifyMessage - uid: Butterfly.Core.Notify.NotifyMessage name: NotifyMessage href: api/Butterfly.Core.Notify.NotifyMessage.html @@ -6487,19 +6756,19 @@ references: isSpec: "True" fullName: Butterfly.Core.Notify.Test.NotifyTest.SendEmailNotifyMessage nameWithType: NotifyTest.SendEmailNotifyMessage -- uid: Butterfly.Core.Notify.Test.NotifyTest.SendPhoneTextNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender) - name: SendPhoneTextNotifyMessage(INotifyMessageSender) - href: api/Butterfly.Core.Notify.Test.NotifyTest.html#Butterfly_Core_Notify_Test_NotifyTest_SendPhoneTextNotifyMessage_Butterfly_Core_Notify_INotifyMessageSender_ - commentId: M:Butterfly.Core.Notify.Test.NotifyTest.SendPhoneTextNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender) - fullName: Butterfly.Core.Notify.Test.NotifyTest.SendPhoneTextNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender) - nameWithType: NotifyTest.SendPhoneTextNotifyMessage(INotifyMessageSender) -- uid: Butterfly.Core.Notify.Test.NotifyTest.SendPhoneTextNotifyMessage* - name: SendPhoneTextNotifyMessage - href: api/Butterfly.Core.Notify.Test.NotifyTest.html#Butterfly_Core_Notify_Test_NotifyTest_SendPhoneTextNotifyMessage_ - commentId: Overload:Butterfly.Core.Notify.Test.NotifyTest.SendPhoneTextNotifyMessage - isSpec: "True" - fullName: Butterfly.Core.Notify.Test.NotifyTest.SendPhoneTextNotifyMessage - nameWithType: NotifyTest.SendPhoneTextNotifyMessage +- uid: Butterfly.Core.Notify.Test.NotifyTest.SendPhoneNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender) + name: SendPhoneNotifyMessage(INotifyMessageSender) + href: api/Butterfly.Core.Notify.Test.NotifyTest.html#Butterfly_Core_Notify_Test_NotifyTest_SendPhoneNotifyMessage_Butterfly_Core_Notify_INotifyMessageSender_ + commentId: M:Butterfly.Core.Notify.Test.NotifyTest.SendPhoneNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender) + fullName: Butterfly.Core.Notify.Test.NotifyTest.SendPhoneNotifyMessage(Butterfly.Core.Notify.INotifyMessageSender) + nameWithType: NotifyTest.SendPhoneNotifyMessage(INotifyMessageSender) +- uid: Butterfly.Core.Notify.Test.NotifyTest.SendPhoneNotifyMessage* + name: SendPhoneNotifyMessage + href: api/Butterfly.Core.Notify.Test.NotifyTest.html#Butterfly_Core_Notify_Test_NotifyTest_SendPhoneNotifyMessage_ + commentId: Overload:Butterfly.Core.Notify.Test.NotifyTest.SendPhoneNotifyMessage + isSpec: "True" + fullName: Butterfly.Core.Notify.Test.NotifyTest.SendPhoneNotifyMessage + nameWithType: NotifyTest.SendPhoneNotifyMessage - uid: Butterfly.Core.Test name: Butterfly.Core.Test href: api/Butterfly.Core.Test.html @@ -8262,6 +8531,44 @@ references: isSpec: "True" fullName: Butterfly.Core.Util.UriX.ParseQuery nameWithType: UriX.ParseQuery +- uid: Butterfly.Core.Util.WebClientWithTimeout + name: WebClientWithTimeout + href: api/Butterfly.Core.Util.WebClientWithTimeout.html + commentId: T:Butterfly.Core.Util.WebClientWithTimeout + fullName: Butterfly.Core.Util.WebClientWithTimeout + nameWithType: WebClientWithTimeout +- uid: Butterfly.Core.Util.WebClientWithTimeout.#ctor(System.Int32) + name: WebClientWithTimeout(Int32) + href: api/Butterfly.Core.Util.WebClientWithTimeout.html#Butterfly_Core_Util_WebClientWithTimeout__ctor_System_Int32_ + commentId: M:Butterfly.Core.Util.WebClientWithTimeout.#ctor(System.Int32) + fullName: Butterfly.Core.Util.WebClientWithTimeout.WebClientWithTimeout(System.Int32) + nameWithType: WebClientWithTimeout.WebClientWithTimeout(Int32) +- uid: Butterfly.Core.Util.WebClientWithTimeout.#ctor* + name: WebClientWithTimeout + href: api/Butterfly.Core.Util.WebClientWithTimeout.html#Butterfly_Core_Util_WebClientWithTimeout__ctor_ + commentId: Overload:Butterfly.Core.Util.WebClientWithTimeout.#ctor + isSpec: "True" + fullName: Butterfly.Core.Util.WebClientWithTimeout.WebClientWithTimeout + nameWithType: WebClientWithTimeout.WebClientWithTimeout +- uid: Butterfly.Core.Util.WebClientWithTimeout.GetWebRequest(Uri) + name: GetWebRequest(Uri) + href: api/Butterfly.Core.Util.WebClientWithTimeout.html#Butterfly_Core_Util_WebClientWithTimeout_GetWebRequest_Uri_ + commentId: M:Butterfly.Core.Util.WebClientWithTimeout.GetWebRequest(Uri) + fullName: Butterfly.Core.Util.WebClientWithTimeout.GetWebRequest(Uri) + nameWithType: WebClientWithTimeout.GetWebRequest(Uri) +- uid: Butterfly.Core.Util.WebClientWithTimeout.GetWebRequest* + name: GetWebRequest + href: api/Butterfly.Core.Util.WebClientWithTimeout.html#Butterfly_Core_Util_WebClientWithTimeout_GetWebRequest_ + commentId: Overload:Butterfly.Core.Util.WebClientWithTimeout.GetWebRequest + isSpec: "True" + fullName: Butterfly.Core.Util.WebClientWithTimeout.GetWebRequest + nameWithType: WebClientWithTimeout.GetWebRequest +- uid: Butterfly.Core.Util.WebClientWithTimeout.timeoutMillis + name: timeoutMillis + href: api/Butterfly.Core.Util.WebClientWithTimeout.html#Butterfly_Core_Util_WebClientWithTimeout_timeoutMillis + commentId: F:Butterfly.Core.Util.WebClientWithTimeout.timeoutMillis + fullName: Butterfly.Core.Util.WebClientWithTimeout.timeoutMillis + nameWithType: WebClientWithTimeout.timeoutMillis - uid: Butterfly.Core.WebApi name: Butterfly.Core.WebApi href: api/Butterfly.Core.WebApi.html @@ -11798,53 +12105,53 @@ references: isSpec: "True" fullName: Butterfly.Twilio.TwilioModule.Setup nameWithType: TwilioModule.Setup -- uid: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender - name: TwilioPhoneTextNotifyMessageSender - href: api/Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.html - commentId: T:Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender - fullName: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender - nameWithType: TwilioPhoneTextNotifyMessageSender -- uid: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.#ctor(System.String,System.String) - name: TwilioPhoneTextNotifyMessageSender(String, String) - href: api/Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.html#Butterfly_Twilio_TwilioPhoneTextNotifyMessageSender__ctor_System_String_System_String_ - commentId: M:Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.#ctor(System.String,System.String) - fullName: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.TwilioPhoneTextNotifyMessageSender(System.String, System.String) - nameWithType: TwilioPhoneTextNotifyMessageSender.TwilioPhoneTextNotifyMessageSender(String, String) -- uid: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.#ctor* - name: TwilioPhoneTextNotifyMessageSender - href: api/Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.html#Butterfly_Twilio_TwilioPhoneTextNotifyMessageSender__ctor_ - commentId: Overload:Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.#ctor - isSpec: "True" - fullName: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.TwilioPhoneTextNotifyMessageSender - nameWithType: TwilioPhoneTextNotifyMessageSender.TwilioPhoneTextNotifyMessageSender -- uid: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.DoSendAsync(System.String,System.String,System.String,System.String,System.String) +- uid: Butterfly.Twilio.TwilioPhoneNotifyMessageSender + name: TwilioPhoneNotifyMessageSender + href: api/Butterfly.Twilio.TwilioPhoneNotifyMessageSender.html + commentId: T:Butterfly.Twilio.TwilioPhoneNotifyMessageSender + fullName: Butterfly.Twilio.TwilioPhoneNotifyMessageSender + nameWithType: TwilioPhoneNotifyMessageSender +- uid: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.#ctor(System.String,System.String) + name: TwilioPhoneNotifyMessageSender(String, String) + href: api/Butterfly.Twilio.TwilioPhoneNotifyMessageSender.html#Butterfly_Twilio_TwilioPhoneNotifyMessageSender__ctor_System_String_System_String_ + commentId: M:Butterfly.Twilio.TwilioPhoneNotifyMessageSender.#ctor(System.String,System.String) + fullName: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.TwilioPhoneNotifyMessageSender(System.String, System.String) + nameWithType: TwilioPhoneNotifyMessageSender.TwilioPhoneNotifyMessageSender(String, String) +- uid: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.#ctor* + name: TwilioPhoneNotifyMessageSender + href: api/Butterfly.Twilio.TwilioPhoneNotifyMessageSender.html#Butterfly_Twilio_TwilioPhoneNotifyMessageSender__ctor_ + commentId: Overload:Butterfly.Twilio.TwilioPhoneNotifyMessageSender.#ctor + isSpec: "True" + fullName: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.TwilioPhoneNotifyMessageSender + nameWithType: TwilioPhoneNotifyMessageSender.TwilioPhoneNotifyMessageSender +- uid: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.DoSendAsync(System.String,System.String,System.String,System.String,System.String) name: DoSendAsync(String, String, String, String, String) - href: api/Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.html#Butterfly_Twilio_TwilioPhoneTextNotifyMessageSender_DoSendAsync_System_String_System_String_System_String_System_String_System_String_ - commentId: M:Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.DoSendAsync(System.String,System.String,System.String,System.String,System.String) - fullName: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.DoSendAsync(System.String, System.String, System.String, System.String, System.String) - nameWithType: TwilioPhoneTextNotifyMessageSender.DoSendAsync(String, String, String, String, String) -- uid: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.DoSendAsync* + href: api/Butterfly.Twilio.TwilioPhoneNotifyMessageSender.html#Butterfly_Twilio_TwilioPhoneNotifyMessageSender_DoSendAsync_System_String_System_String_System_String_System_String_System_String_ + commentId: M:Butterfly.Twilio.TwilioPhoneNotifyMessageSender.DoSendAsync(System.String,System.String,System.String,System.String,System.String) + fullName: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.DoSendAsync(System.String, System.String, System.String, System.String, System.String) + nameWithType: TwilioPhoneNotifyMessageSender.DoSendAsync(String, String, String, String, String) +- uid: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.DoSendAsync* name: DoSendAsync - href: api/Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.html#Butterfly_Twilio_TwilioPhoneTextNotifyMessageSender_DoSendAsync_ - commentId: Overload:Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.DoSendAsync + href: api/Butterfly.Twilio.TwilioPhoneNotifyMessageSender.html#Butterfly_Twilio_TwilioPhoneNotifyMessageSender_DoSendAsync_ + commentId: Overload:Butterfly.Twilio.TwilioPhoneNotifyMessageSender.DoSendAsync isSpec: "True" - fullName: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.DoSendAsync - nameWithType: TwilioPhoneTextNotifyMessageSender.DoSendAsync -- uid: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.logger + fullName: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.DoSendAsync + nameWithType: TwilioPhoneNotifyMessageSender.DoSendAsync +- uid: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.logger name: logger - href: api/Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.html#Butterfly_Twilio_TwilioPhoneTextNotifyMessageSender_logger - commentId: F:Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.logger - fullName: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.logger - nameWithType: TwilioPhoneTextNotifyMessageSender.logger -- uid: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.twilioAccountSid + href: api/Butterfly.Twilio.TwilioPhoneNotifyMessageSender.html#Butterfly_Twilio_TwilioPhoneNotifyMessageSender_logger + commentId: F:Butterfly.Twilio.TwilioPhoneNotifyMessageSender.logger + fullName: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.logger + nameWithType: TwilioPhoneNotifyMessageSender.logger +- uid: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.twilioAccountSid name: twilioAccountSid - href: api/Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.html#Butterfly_Twilio_TwilioPhoneTextNotifyMessageSender_twilioAccountSid - commentId: F:Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.twilioAccountSid - fullName: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.twilioAccountSid - nameWithType: TwilioPhoneTextNotifyMessageSender.twilioAccountSid -- uid: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.twilioAuthToken + href: api/Butterfly.Twilio.TwilioPhoneNotifyMessageSender.html#Butterfly_Twilio_TwilioPhoneNotifyMessageSender_twilioAccountSid + commentId: F:Butterfly.Twilio.TwilioPhoneNotifyMessageSender.twilioAccountSid + fullName: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.twilioAccountSid + nameWithType: TwilioPhoneNotifyMessageSender.twilioAccountSid +- uid: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.twilioAuthToken name: twilioAuthToken - href: api/Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.html#Butterfly_Twilio_TwilioPhoneTextNotifyMessageSender_twilioAuthToken - commentId: F:Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.twilioAuthToken - fullName: Butterfly.Twilio.TwilioPhoneTextNotifyMessageSender.twilioAuthToken - nameWithType: TwilioPhoneTextNotifyMessageSender.twilioAuthToken + href: api/Butterfly.Twilio.TwilioPhoneNotifyMessageSender.html#Butterfly_Twilio_TwilioPhoneNotifyMessageSender_twilioAuthToken + commentId: F:Butterfly.Twilio.TwilioPhoneNotifyMessageSender.twilioAuthToken + fullName: Butterfly.Twilio.TwilioPhoneNotifyMessageSender.twilioAuthToken + nameWithType: TwilioPhoneNotifyMessageSender.twilioAuthToken