diff --git a/.gitignore b/.gitignore index 50a0b5b..db931e8 100644 --- a/.gitignore +++ b/.gitignore @@ -52,6 +52,12 @@ build/ [Bb]in/ [Oo]bj/ +# Visual Studio 2015 cache/options directory +.vs/ + +# DNX +project.lock.json + # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* @@ -131,8 +137,7 @@ publish/ *.pubxml # NuGet Packages Directory -## TODO: If you have NuGet Package Restore enabled, uncomment the next line -#packages/ +packages/ # Windows Azure Build Output csx diff --git a/IntegrationTest/IntegrationTest.csproj b/IntegrationTest/IntegrationTest.csproj index e57d894..80d2b2f 100644 --- a/IntegrationTest/IntegrationTest.csproj +++ b/IntegrationTest/IntegrationTest.csproj @@ -35,14 +35,18 @@ 4 - - False - ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + + ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll + True - - ..\packages\Polly.2.2.3\lib\net45\Polly.dll + + ..\packages\Polly.4.3.0\lib\net45\Polly.dll True + + False + ..\SlackAPI\bin\Debug\net45\SlackAPI.dll + @@ -69,12 +73,6 @@ - - - {0c0a58a8-174e-4a4c-907b-c3569144d15d} - SlackAPI - - diff --git a/IntegrationTest/packages.config b/IntegrationTest/packages.config index 132febb..30621e9 100644 --- a/IntegrationTest/packages.config +++ b/IntegrationTest/packages.config @@ -1,5 +1,5 @@  - - + + \ No newline at end of file diff --git a/Nuget.config b/Nuget.config new file mode 100644 index 0000000..b8ab84b --- /dev/null +++ b/Nuget.config @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs deleted file mode 100644 index 8b2c719..0000000 --- a/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("SlackAPI")] -[assembly: AssemblyDescription("A Slack wrapper for direct interaction with their APIs.")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Inumedia")] -[assembly: AssemblyProduct("SlackAPI")] -[assembly: AssemblyCopyright("Copyright © 2014")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("80fe3ab4-f0d5-4fee-a6ae-524b523cebcc")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.4.1")] -[assembly: AssemblyFileVersion("1.0.4.1")] diff --git a/SlackAPI.csproj b/SlackAPI.csproj deleted file mode 100644 index 621e3e8..0000000 --- a/SlackAPI.csproj +++ /dev/null @@ -1,164 +0,0 @@ - - - - - Debug - AnyCPU - {0C0A58A8-174E-4A4C-907B-C3569144D15D} - Library - Properties - SlackAPI - SlackAPI - v4.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Designer - - - - - - \ No newline at end of file diff --git a/SlackAPI.nuspec b/SlackAPI.nuspec index 43fde8c..35c35ad 100644 --- a/SlackAPI.nuspec +++ b/SlackAPI.nuspec @@ -2,7 +2,7 @@ SlackAPI - 1.0.4.1 + 1.0.5.0 SlackAPI Inumedia Inumedia @@ -14,12 +14,12 @@ en-US - + - - + + - \ No newline at end of file + diff --git a/SlackAPI.sln b/SlackAPI.sln index 762a996..6a39765 100644 --- a/SlackAPI.sln +++ b/SlackAPI.sln @@ -1,13 +1,17 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 -VisualStudioVersion = 14.0.23107.0 +VisualStudioVersion = 14.0.25420.1 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SlackAPI", "SlackAPI.csproj", "{0C0A58A8-174E-4A4C-907B-C3569144D15D}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IntegrationTest", "IntegrationTest\IntegrationTest.csproj", "{C254F6FF-81D4-46DF-AA21-3D1A6456253B}" + ProjectSection(ProjectDependencies) = postProject + {80450DB7-6A58-491E-8568-D5B7E0051169} = {80450DB7-6A58-491E-8568-D5B7E0051169} + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SlackApi.Console", "SlackApi.Console\SlackApi.Console.csproj", "{19140E48-E1A9-421D-86DB-5AF18EECFEF2}" + ProjectSection(ProjectDependencies) = postProject + {80450DB7-6A58-491E-8568-D5B7E0051169} = {80450DB7-6A58-491E-8568-D5B7E0051169} + EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{9FC74E78-2D91-407E-B4C8-7C89D6CECB5B}" ProjectSection(SolutionItems) = preProject @@ -15,16 +19,14 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{9FC74E78-2 README.md = README.md EndProjectSection EndProject +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "SlackAPI", "SlackAPI\SlackAPI.xproj", "{80450DB7-6A58-491E-8568-D5B7E0051169}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0C0A58A8-174E-4A4C-907B-C3569144D15D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0C0A58A8-174E-4A4C-907B-C3569144D15D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0C0A58A8-174E-4A4C-907B-C3569144D15D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0C0A58A8-174E-4A4C-907B-C3569144D15D}.Release|Any CPU.Build.0 = Release|Any CPU {C254F6FF-81D4-46DF-AA21-3D1A6456253B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C254F6FF-81D4-46DF-AA21-3D1A6456253B}.Debug|Any CPU.Build.0 = Debug|Any CPU {C254F6FF-81D4-46DF-AA21-3D1A6456253B}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -33,6 +35,10 @@ Global {19140E48-E1A9-421D-86DB-5AF18EECFEF2}.Debug|Any CPU.Build.0 = Debug|Any CPU {19140E48-E1A9-421D-86DB-5AF18EECFEF2}.Release|Any CPU.ActiveCfg = Release|Any CPU {19140E48-E1A9-421D-86DB-5AF18EECFEF2}.Release|Any CPU.Build.0 = Release|Any CPU + {80450DB7-6A58-491E-8568-D5B7E0051169}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {80450DB7-6A58-491E-8568-D5B7E0051169}.Debug|Any CPU.Build.0 = Debug|Any CPU + {80450DB7-6A58-491E-8568-D5B7E0051169}.Release|Any CPU.ActiveCfg = Release|Any CPU + {80450DB7-6A58-491E-8568-D5B7E0051169}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Attachment.cs b/SlackAPI/Attachment.cs similarity index 100% rename from Attachment.cs rename to SlackAPI/Attachment.cs diff --git a/Bot.cs b/SlackAPI/Bot.cs similarity index 100% rename from Bot.cs rename to SlackAPI/Bot.cs diff --git a/Channel.cs b/SlackAPI/Channel.cs similarity index 100% rename from Channel.cs rename to SlackAPI/Channel.cs diff --git a/ContextMessage.cs b/SlackAPI/ContextMessage.cs similarity index 100% rename from ContextMessage.cs rename to SlackAPI/ContextMessage.cs diff --git a/DirectMessageConversation.cs b/SlackAPI/DirectMessageConversation.cs similarity index 100% rename from DirectMessageConversation.cs rename to SlackAPI/DirectMessageConversation.cs diff --git a/Extensions.cs b/SlackAPI/Extensions.cs similarity index 85% rename from Extensions.cs rename to SlackAPI/Extensions.cs index 1e67071..341ee5b 100644 --- a/Extensions.cs +++ b/SlackAPI/Extensions.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Runtime.Serialization; using Newtonsoft.Json; namespace SlackAPI @@ -30,18 +29,17 @@ public static string ToProperTimeStamp(this DateTime that, bool toUTC = true) public static K Deserialize(this string data) where K : class { - return JsonConvert.DeserializeObject(data, CreateSettings(data)); + return JsonConvert.DeserializeObject(data, CreateSettings()); } public static object Deserialize(this string data, Type type) { - return JsonConvert.DeserializeObject(data, type, CreateSettings(data)); + return JsonConvert.DeserializeObject(data, type, CreateSettings()); } - private static JsonSerializerSettings CreateSettings(object contextData) + private static JsonSerializerSettings CreateSettings() { JsonSerializerSettings settings = new JsonSerializerSettings(); - settings.Context = new StreamingContext(StreamingContextStates.Other, contextData); settings.Converters = Converters; return settings; diff --git a/File.cs b/SlackAPI/File.cs similarity index 100% rename from File.cs rename to SlackAPI/File.cs diff --git a/JavascriptBotsToArray.cs b/SlackAPI/JavascriptBotsToArray.cs similarity index 100% rename from JavascriptBotsToArray.cs rename to SlackAPI/JavascriptBotsToArray.cs diff --git a/JavascriptDateTimeConverter.cs b/SlackAPI/JavascriptDateTimeConverter.cs similarity index 100% rename from JavascriptDateTimeConverter.cs rename to SlackAPI/JavascriptDateTimeConverter.cs diff --git a/Message.cs b/SlackAPI/Message.cs similarity index 100% rename from Message.cs rename to SlackAPI/Message.cs diff --git a/MimeTypes.cs b/SlackAPI/MimeTypes.cs similarity index 100% rename from MimeTypes.cs rename to SlackAPI/MimeTypes.cs diff --git a/OwnedStampedMessage.cs b/SlackAPI/OwnedStampedMessage.cs similarity index 100% rename from OwnedStampedMessage.cs rename to SlackAPI/OwnedStampedMessage.cs diff --git a/Preferences.cs b/SlackAPI/Preferences.cs similarity index 100% rename from Preferences.cs rename to SlackAPI/Preferences.cs diff --git a/RPCMessages/AccessTokenResponse.cs b/SlackAPI/RPCMessages/AccessTokenResponse.cs similarity index 100% rename from RPCMessages/AccessTokenResponse.cs rename to SlackAPI/RPCMessages/AccessTokenResponse.cs diff --git a/RPCMessages/AuthSigninResponse.cs b/SlackAPI/RPCMessages/AuthSigninResponse.cs similarity index 100% rename from RPCMessages/AuthSigninResponse.cs rename to SlackAPI/RPCMessages/AuthSigninResponse.cs diff --git a/RPCMessages/AuthStartResponse.cs b/SlackAPI/RPCMessages/AuthStartResponse.cs similarity index 100% rename from RPCMessages/AuthStartResponse.cs rename to SlackAPI/RPCMessages/AuthStartResponse.cs diff --git a/RPCMessages/AuthTestResponse.cs b/SlackAPI/RPCMessages/AuthTestResponse.cs similarity index 100% rename from RPCMessages/AuthTestResponse.cs rename to SlackAPI/RPCMessages/AuthTestResponse.cs diff --git a/RPCMessages/ChannelCreateResponse.cs b/SlackAPI/RPCMessages/ChannelCreateResponse.cs similarity index 100% rename from RPCMessages/ChannelCreateResponse.cs rename to SlackAPI/RPCMessages/ChannelCreateResponse.cs diff --git a/RPCMessages/ChannelListResponse.cs b/SlackAPI/RPCMessages/ChannelListResponse.cs similarity index 100% rename from RPCMessages/ChannelListResponse.cs rename to SlackAPI/RPCMessages/ChannelListResponse.cs diff --git a/RPCMessages/ChannelMessageHistory.cs b/SlackAPI/RPCMessages/ChannelMessageHistory.cs similarity index 100% rename from RPCMessages/ChannelMessageHistory.cs rename to SlackAPI/RPCMessages/ChannelMessageHistory.cs diff --git a/RPCMessages/ChannelSetTopicResponse.cs b/SlackAPI/RPCMessages/ChannelSetTopicResponse.cs similarity index 100% rename from RPCMessages/ChannelSetTopicResponse.cs rename to SlackAPI/RPCMessages/ChannelSetTopicResponse.cs diff --git a/RPCMessages/DeletedResponse.cs b/SlackAPI/RPCMessages/DeletedResponse.cs similarity index 100% rename from RPCMessages/DeletedResponse.cs rename to SlackAPI/RPCMessages/DeletedResponse.cs diff --git a/RPCMessages/DirectMessageConversationListResponse.cs b/SlackAPI/RPCMessages/DirectMessageConversationListResponse.cs similarity index 100% rename from RPCMessages/DirectMessageConversationListResponse.cs rename to SlackAPI/RPCMessages/DirectMessageConversationListResponse.cs diff --git a/RPCMessages/FileInfoResponse.cs b/SlackAPI/RPCMessages/FileInfoResponse.cs similarity index 100% rename from RPCMessages/FileInfoResponse.cs rename to SlackAPI/RPCMessages/FileInfoResponse.cs diff --git a/RPCMessages/FileListResponse.cs b/SlackAPI/RPCMessages/FileListResponse.cs similarity index 100% rename from RPCMessages/FileListResponse.cs rename to SlackAPI/RPCMessages/FileListResponse.cs diff --git a/RPCMessages/FileUploadResponse.cs b/SlackAPI/RPCMessages/FileUploadResponse.cs similarity index 100% rename from RPCMessages/FileUploadResponse.cs rename to SlackAPI/RPCMessages/FileUploadResponse.cs diff --git a/RPCMessages/FindTeamResponse.cs b/SlackAPI/RPCMessages/FindTeamResponse.cs similarity index 100% rename from RPCMessages/FindTeamResponse.cs rename to SlackAPI/RPCMessages/FindTeamResponse.cs diff --git a/RPCMessages/GroupArchiveResponse.cs b/SlackAPI/RPCMessages/GroupArchiveResponse.cs similarity index 100% rename from RPCMessages/GroupArchiveResponse.cs rename to SlackAPI/RPCMessages/GroupArchiveResponse.cs diff --git a/RPCMessages/GroupCloseResponse.cs b/SlackAPI/RPCMessages/GroupCloseResponse.cs similarity index 100% rename from RPCMessages/GroupCloseResponse.cs rename to SlackAPI/RPCMessages/GroupCloseResponse.cs diff --git a/RPCMessages/GroupCreateChildResponse.cs b/SlackAPI/RPCMessages/GroupCreateChildResponse.cs similarity index 100% rename from RPCMessages/GroupCreateChildResponse.cs rename to SlackAPI/RPCMessages/GroupCreateChildResponse.cs diff --git a/RPCMessages/GroupCreateResponse.cs b/SlackAPI/RPCMessages/GroupCreateResponse.cs similarity index 100% rename from RPCMessages/GroupCreateResponse.cs rename to SlackAPI/RPCMessages/GroupCreateResponse.cs diff --git a/RPCMessages/GroupInviteResponse.cs b/SlackAPI/RPCMessages/GroupInviteResponse.cs similarity index 100% rename from RPCMessages/GroupInviteResponse.cs rename to SlackAPI/RPCMessages/GroupInviteResponse.cs diff --git a/RPCMessages/GroupKickResponse.cs b/SlackAPI/RPCMessages/GroupKickResponse.cs similarity index 100% rename from RPCMessages/GroupKickResponse.cs rename to SlackAPI/RPCMessages/GroupKickResponse.cs diff --git a/RPCMessages/GroupLeaveResponse.cs b/SlackAPI/RPCMessages/GroupLeaveResponse.cs similarity index 100% rename from RPCMessages/GroupLeaveResponse.cs rename to SlackAPI/RPCMessages/GroupLeaveResponse.cs diff --git a/RPCMessages/GroupListResponse.cs b/SlackAPI/RPCMessages/GroupListResponse.cs similarity index 100% rename from RPCMessages/GroupListResponse.cs rename to SlackAPI/RPCMessages/GroupListResponse.cs diff --git a/RPCMessages/GroupMarkResponse.cs b/SlackAPI/RPCMessages/GroupMarkResponse.cs similarity index 100% rename from RPCMessages/GroupMarkResponse.cs rename to SlackAPI/RPCMessages/GroupMarkResponse.cs diff --git a/RPCMessages/GroupMessageHistory.cs b/SlackAPI/RPCMessages/GroupMessageHistory.cs similarity index 100% rename from RPCMessages/GroupMessageHistory.cs rename to SlackAPI/RPCMessages/GroupMessageHistory.cs diff --git a/RPCMessages/GroupOpenResponse.cs b/SlackAPI/RPCMessages/GroupOpenResponse.cs similarity index 100% rename from RPCMessages/GroupOpenResponse.cs rename to SlackAPI/RPCMessages/GroupOpenResponse.cs diff --git a/RPCMessages/GroupRenameResponse.cs b/SlackAPI/RPCMessages/GroupRenameResponse.cs similarity index 100% rename from RPCMessages/GroupRenameResponse.cs rename to SlackAPI/RPCMessages/GroupRenameResponse.cs diff --git a/RPCMessages/GroupResponse.cs b/SlackAPI/RPCMessages/GroupResponse.cs similarity index 100% rename from RPCMessages/GroupResponse.cs rename to SlackAPI/RPCMessages/GroupResponse.cs diff --git a/RPCMessages/GroupSetPurposeResponse.cs b/SlackAPI/RPCMessages/GroupSetPurposeResponse.cs similarity index 100% rename from RPCMessages/GroupSetPurposeResponse.cs rename to SlackAPI/RPCMessages/GroupSetPurposeResponse.cs diff --git a/RPCMessages/GroupSetTopicResponse.cs b/SlackAPI/RPCMessages/GroupSetTopicResponse.cs similarity index 100% rename from RPCMessages/GroupSetTopicResponse.cs rename to SlackAPI/RPCMessages/GroupSetTopicResponse.cs diff --git a/RPCMessages/GroupUnarchiveResponse.cs b/SlackAPI/RPCMessages/GroupUnarchiveResponse.cs similarity index 100% rename from RPCMessages/GroupUnarchiveResponse.cs rename to SlackAPI/RPCMessages/GroupUnarchiveResponse.cs diff --git a/RPCMessages/JoinDirectMessageChannelResponse.cs b/SlackAPI/RPCMessages/JoinDirectMessageChannelResponse.cs similarity index 100% rename from RPCMessages/JoinDirectMessageChannelResponse.cs rename to SlackAPI/RPCMessages/JoinDirectMessageChannelResponse.cs diff --git a/RPCMessages/LoginResponse.cs b/SlackAPI/RPCMessages/LoginResponse.cs similarity index 100% rename from RPCMessages/LoginResponse.cs rename to SlackAPI/RPCMessages/LoginResponse.cs diff --git a/RPCMessages/MarkResponse.cs b/SlackAPI/RPCMessages/MarkResponse.cs similarity index 100% rename from RPCMessages/MarkResponse.cs rename to SlackAPI/RPCMessages/MarkResponse.cs diff --git a/RPCMessages/MessageHistory.cs b/SlackAPI/RPCMessages/MessageHistory.cs similarity index 100% rename from RPCMessages/MessageHistory.cs rename to SlackAPI/RPCMessages/MessageHistory.cs diff --git a/RPCMessages/PostMessageResponse.cs b/SlackAPI/RPCMessages/PostMessageResponse.cs similarity index 100% rename from RPCMessages/PostMessageResponse.cs rename to SlackAPI/RPCMessages/PostMessageResponse.cs diff --git a/RPCMessages/PresenseResponse.cs b/SlackAPI/RPCMessages/PresenseResponse.cs similarity index 100% rename from RPCMessages/PresenseResponse.cs rename to SlackAPI/RPCMessages/PresenseResponse.cs diff --git a/RPCMessages/SearchResponseAll.cs b/SlackAPI/RPCMessages/SearchResponseAll.cs similarity index 100% rename from RPCMessages/SearchResponseAll.cs rename to SlackAPI/RPCMessages/SearchResponseAll.cs diff --git a/RPCMessages/SearchResponseFiles.cs b/SlackAPI/RPCMessages/SearchResponseFiles.cs similarity index 100% rename from RPCMessages/SearchResponseFiles.cs rename to SlackAPI/RPCMessages/SearchResponseFiles.cs diff --git a/RPCMessages/SearchResponseMessages.cs b/SlackAPI/RPCMessages/SearchResponseMessages.cs similarity index 100% rename from RPCMessages/SearchResponseMessages.cs rename to SlackAPI/RPCMessages/SearchResponseMessages.cs diff --git a/RPCMessages/StarListResponse.cs b/SlackAPI/RPCMessages/StarListResponse.cs similarity index 100% rename from RPCMessages/StarListResponse.cs rename to SlackAPI/RPCMessages/StarListResponse.cs diff --git a/RPCMessages/UpdateResponse.cs b/SlackAPI/RPCMessages/UpdateResponse.cs similarity index 100% rename from RPCMessages/UpdateResponse.cs rename to SlackAPI/RPCMessages/UpdateResponse.cs diff --git a/RPCMessages/UserCountsResponse.cs b/SlackAPI/RPCMessages/UserCountsResponse.cs similarity index 100% rename from RPCMessages/UserCountsResponse.cs rename to SlackAPI/RPCMessages/UserCountsResponse.cs diff --git a/RPCMessages/UserGetPresenceResponse.cs b/SlackAPI/RPCMessages/UserGetPresenceResponse.cs similarity index 100% rename from RPCMessages/UserGetPresenceResponse.cs rename to SlackAPI/RPCMessages/UserGetPresenceResponse.cs diff --git a/RPCMessages/UserInfoResponse.cs b/SlackAPI/RPCMessages/UserInfoResponse.cs similarity index 100% rename from RPCMessages/UserInfoResponse.cs rename to SlackAPI/RPCMessages/UserInfoResponse.cs diff --git a/RPCMessages/UserListResponse.cs b/SlackAPI/RPCMessages/UserListResponse.cs similarity index 100% rename from RPCMessages/UserListResponse.cs rename to SlackAPI/RPCMessages/UserListResponse.cs diff --git a/RPCMessages/UserPreferencesResponse.cs b/SlackAPI/RPCMessages/UserPreferencesResponse.cs similarity index 100% rename from RPCMessages/UserPreferencesResponse.cs rename to SlackAPI/RPCMessages/UserPreferencesResponse.cs diff --git a/Reaction.cs b/SlackAPI/Reaction.cs similarity index 100% rename from Reaction.cs rename to SlackAPI/Reaction.cs diff --git a/ReactionAddedResponse.cs b/SlackAPI/ReactionAddedResponse.cs similarity index 100% rename from ReactionAddedResponse.cs rename to SlackAPI/ReactionAddedResponse.cs diff --git a/Request.cs b/SlackAPI/Request.cs similarity index 100% rename from Request.cs rename to SlackAPI/Request.cs diff --git a/RequestStateForTask.cs b/SlackAPI/RequestStateForTask.cs similarity index 100% rename from RequestStateForTask.cs rename to SlackAPI/RequestStateForTask.cs diff --git a/Response.cs b/SlackAPI/Response.cs similarity index 100% rename from Response.cs rename to SlackAPI/Response.cs diff --git a/SlackAPI/SlackAPI.xproj b/SlackAPI/SlackAPI.xproj new file mode 100644 index 0000000..5e32ab3 --- /dev/null +++ b/SlackAPI/SlackAPI.xproj @@ -0,0 +1,21 @@ + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + + 80450db7-6a58-491e-8568-d5b7e0051169 + SlackAPI + .\obj + .\bin\ + v4.5.2 + + + + 2.0 + + + diff --git a/SlackClient.cs b/SlackAPI/SlackClient.cs similarity index 100% rename from SlackClient.cs rename to SlackAPI/SlackClient.cs diff --git a/SlackScope.cs b/SlackAPI/SlackScope.cs similarity index 100% rename from SlackScope.cs rename to SlackAPI/SlackScope.cs diff --git a/SlackSocket.cs b/SlackAPI/SlackSocket.cs similarity index 83% rename from SlackSocket.cs rename to SlackAPI/SlackSocket.cs index 66db8af..d975c78 100644 --- a/SlackSocket.cs +++ b/SlackAPI/SlackSocket.cs @@ -10,6 +10,10 @@ using System.Threading.Tasks; using System.Linq; +#if NETSTANDARD1_6 +using Microsoft.Extensions.DependencyModel; +#endif + namespace SlackAPI { public class SlackSocket @@ -37,27 +41,35 @@ public class SlackSocket static SlackSocket() { routing = new Dictionary>(); - foreach (Assembly assy in AppDomain.CurrentDomain.GetAssemblies()) +#if NET45 + var assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(x => x.GlobalAssemblyCache == false); +#elif NETSTANDARD1_6 + var assemblies = DependencyContext.Default.GetDefaultAssemblyNames().Select(Assembly.Load); +#else + #error Platform not supported +#endif + foreach (Assembly assy in assemblies) { - if (!assy.GlobalAssemblyCache) - foreach (Type t in assy.GetTypes()) - foreach (SlackSocketRouting route in t.GetCustomAttributes()) + foreach (Type t in assy.GetTypes()) + { + foreach (SlackSocketRouting route in t.GetTypeInfo().GetCustomAttributes()) + { + if (!routing.ContainsKey(route.Type)) + routing.Add(route.Type, new Dictionary() { - if (!routing.ContainsKey(route.Type)) - routing.Add(route.Type, new Dictionary() - { - {route.SubType ?? "null", t} - }); - else - if (!routing[route.Type].ContainsKey(route.SubType ?? "null")) - routing[route.Type].Add(route.SubType ?? "null", t); - else - throw new InvalidProgramException("Cannot have two socket message types with the same type and subtype!"); - } + {route.SubType ?? "null", t} + }); + else + if (!routing[route.Type].ContainsKey(route.SubType ?? "null")) + routing[route.Type].Add(route.SubType ?? "null", t); + else + throw new InvalidProgramException("Cannot have two socket message types with the same type and subtype!"); + } + } } } - public SlackSocket(LoginResponse loginDetails, object routingTo, Action onConnected = null) + public SlackSocket(LoginResponse loginDetails, object routingTo, Action onConnected = null) { BuildRoutes(routingTo); socket = new ClientWebSocket(); @@ -78,17 +90,17 @@ void BuildRoutes(object routingTo) Type routingToType = routingTo.GetType(); Type slackMessage = typeof(SlackSocketMessage); - foreach (MethodInfo m in routingTo.GetType().GetMethods(BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.FlattenHierarchy | BindingFlags.NonPublic | BindingFlags.Public)) + foreach (MethodInfo m in routingTo.GetType().GetTypeInfo().GetMethods(BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.FlattenHierarchy | BindingFlags.NonPublic | BindingFlags.Public)) { ParameterInfo[] parameters = m.GetParameters(); if (parameters.Length != 1) continue; - if (parameters[0].ParameterType.IsSubclassOf(slackMessage)) + if (parameters[0].ParameterType.GetTypeInfo().IsSubclassOf(slackMessage)) { Type t = parameters[0].ParameterType; - foreach (SlackSocketRouting route in t.GetCustomAttributes()) + foreach (SlackSocketRouting route in t.GetTypeInfo().GetCustomAttributes()) { Type genericAction = typeof(Action<>).MakeGenericType(parameters[0].ParameterType); - Delegate d = Delegate.CreateDelegate(genericAction, routingTo, m, false); + Delegate d = m.CreateDelegate(genericAction, routingTo); if (d == null) { System.Diagnostics.Debug.WriteLine(string.Format("Couldn't create delegate for {0}.{1}", routingToType.FullName, m.Name)); @@ -125,7 +137,7 @@ public void Send(SlackSocketMessage message) //socket.Send(JsonConvert.SerializeObject(message)); if (string.IsNullOrEmpty(message.type)){ - IEnumerable routes = message.GetType().GetCustomAttributes(); + IEnumerable routes = message.GetType().GetTypeInfo().GetCustomAttributes(); SlackSocketRouting route = null; foreach (SlackSocketRouting r in routes) @@ -142,14 +154,14 @@ public void Send(SlackSocketMessage message) sendingQueue.Push(JsonConvert.SerializeObject(message, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore })); if (Interlocked.CompareExchange(ref currentlySending, 1, 0) == 0) - ThreadPool.QueueUserWorkItem(HandleSending); + Task.Factory.StartNew(HandleSending); } public void BindCallback(Action callback) { Type t = typeof(K); - foreach (SlackSocketRouting route in t.GetCustomAttributes()) + foreach (SlackSocketRouting route in t.GetTypeInfo().GetCustomAttributes()) { if (!routes.ContainsKey(route.Type)) routes.Add(route.Type, new Dictionary()); @@ -163,7 +175,7 @@ public void BindCallback(Action callback) public void UnbindCallback(Action callback) { Type t = typeof(K); - foreach (SlackSocketRouting route in t.GetCustomAttributes()) + foreach (SlackSocketRouting route in t.GetTypeInfo().GetCustomAttributes()) { Delegate d = routes.ContainsKey(route.Type) ? (routes.ContainsKey(route.SubType ?? "null") ? routes[route.Type][route.SubType ?? "null"] : null) : null; if (d != null) @@ -249,7 +261,7 @@ void HandleMessage(SlackSocketMessage message, string data) else { //I believe this method is slower than the former. If I'm wrong we can just use this instead. :D - Type t = routes[message.type][message.subtype ?? "null"].Method.GetParameters()[0].ParameterType; + Type t = routes[message.type][message.subtype ?? "null"].GetMethodInfo().GetParameters()[0].ParameterType; o = data.Deserialize(t); } routes[message.type][message.subtype ?? "null"].DynamicInvoke(o); @@ -269,7 +281,7 @@ void HandleMessage(SlackSocketMessage message, string data) } } - void HandleSending(object stateful) + void HandleSending() { string message; while (sendingQueue.Pop(out message) && socket.State == WebSocketState.Open && !cts.Token.IsCancellationRequested) diff --git a/SlackSocketClient.cs b/SlackAPI/SlackSocketClient.cs similarity index 100% rename from SlackSocketClient.cs rename to SlackAPI/SlackSocketClient.cs diff --git a/SlackTaskClient.cs b/SlackAPI/SlackTaskClient.cs similarity index 100% rename from SlackTaskClient.cs rename to SlackAPI/SlackTaskClient.cs diff --git a/Team.cs b/SlackAPI/Team.cs similarity index 100% rename from Team.cs rename to SlackAPI/Team.cs diff --git a/TeamPreferences.cs b/SlackAPI/TeamPreferences.cs similarity index 100% rename from TeamPreferences.cs rename to SlackAPI/TeamPreferences.cs diff --git a/User.cs b/SlackAPI/User.cs similarity index 100% rename from User.cs rename to SlackAPI/User.cs diff --git a/UserProfile.cs b/SlackAPI/UserProfile.cs similarity index 100% rename from UserProfile.cs rename to SlackAPI/UserProfile.cs diff --git a/UserTeamCombo.cs b/SlackAPI/UserTeamCombo.cs similarity index 100% rename from UserTeamCombo.cs rename to SlackAPI/UserTeamCombo.cs diff --git a/Utilities/ILockFree.cs b/SlackAPI/Utilities/ILockFree.cs similarity index 100% rename from Utilities/ILockFree.cs rename to SlackAPI/Utilities/ILockFree.cs diff --git a/Utilities/LockFreeQueue.cs b/SlackAPI/Utilities/LockFreeQueue.cs similarity index 100% rename from Utilities/LockFreeQueue.cs rename to SlackAPI/Utilities/LockFreeQueue.cs diff --git a/WebSocketMessages/ChannelArchive.cs b/SlackAPI/WebSocketMessages/ChannelArchive.cs similarity index 100% rename from WebSocketMessages/ChannelArchive.cs rename to SlackAPI/WebSocketMessages/ChannelArchive.cs diff --git a/WebSocketMessages/ChannelCreated.cs b/SlackAPI/WebSocketMessages/ChannelCreated.cs similarity index 100% rename from WebSocketMessages/ChannelCreated.cs rename to SlackAPI/WebSocketMessages/ChannelCreated.cs diff --git a/WebSocketMessages/ChannelDeleted.cs b/SlackAPI/WebSocketMessages/ChannelDeleted.cs similarity index 100% rename from WebSocketMessages/ChannelDeleted.cs rename to SlackAPI/WebSocketMessages/ChannelDeleted.cs diff --git a/WebSocketMessages/ChannelMarked.cs b/SlackAPI/WebSocketMessages/ChannelMarked.cs similarity index 100% rename from WebSocketMessages/ChannelMarked.cs rename to SlackAPI/WebSocketMessages/ChannelMarked.cs diff --git a/WebSocketMessages/ChannelRename.cs b/SlackAPI/WebSocketMessages/ChannelRename.cs similarity index 100% rename from WebSocketMessages/ChannelRename.cs rename to SlackAPI/WebSocketMessages/ChannelRename.cs diff --git a/WebSocketMessages/ChannelUnarchive.cs b/SlackAPI/WebSocketMessages/ChannelUnarchive.cs similarity index 100% rename from WebSocketMessages/ChannelUnarchive.cs rename to SlackAPI/WebSocketMessages/ChannelUnarchive.cs diff --git a/WebSocketMessages/DeletedMessage.cs b/SlackAPI/WebSocketMessages/DeletedMessage.cs similarity index 100% rename from WebSocketMessages/DeletedMessage.cs rename to SlackAPI/WebSocketMessages/DeletedMessage.cs diff --git a/WebSocketMessages/FileShareMessage.cs b/SlackAPI/WebSocketMessages/FileShareMessage.cs similarity index 100% rename from WebSocketMessages/FileShareMessage.cs rename to SlackAPI/WebSocketMessages/FileShareMessage.cs diff --git a/WebSocketMessages/GroupArchive.cs b/SlackAPI/WebSocketMessages/GroupArchive.cs similarity index 100% rename from WebSocketMessages/GroupArchive.cs rename to SlackAPI/WebSocketMessages/GroupArchive.cs diff --git a/WebSocketMessages/GroupClose.cs b/SlackAPI/WebSocketMessages/GroupClose.cs similarity index 100% rename from WebSocketMessages/GroupClose.cs rename to SlackAPI/WebSocketMessages/GroupClose.cs diff --git a/WebSocketMessages/GroupJoined.cs b/SlackAPI/WebSocketMessages/GroupJoined.cs similarity index 100% rename from WebSocketMessages/GroupJoined.cs rename to SlackAPI/WebSocketMessages/GroupJoined.cs diff --git a/WebSocketMessages/GroupLeft.cs b/SlackAPI/WebSocketMessages/GroupLeft.cs similarity index 100% rename from WebSocketMessages/GroupLeft.cs rename to SlackAPI/WebSocketMessages/GroupLeft.cs diff --git a/WebSocketMessages/GroupOpen.cs b/SlackAPI/WebSocketMessages/GroupOpen.cs similarity index 100% rename from WebSocketMessages/GroupOpen.cs rename to SlackAPI/WebSocketMessages/GroupOpen.cs diff --git a/WebSocketMessages/GroupRename.cs b/SlackAPI/WebSocketMessages/GroupRename.cs similarity index 100% rename from WebSocketMessages/GroupRename.cs rename to SlackAPI/WebSocketMessages/GroupRename.cs diff --git a/WebSocketMessages/GroupUnarchive.cs b/SlackAPI/WebSocketMessages/GroupUnarchive.cs similarity index 100% rename from WebSocketMessages/GroupUnarchive.cs rename to SlackAPI/WebSocketMessages/GroupUnarchive.cs diff --git a/WebSocketMessages/Hello.cs b/SlackAPI/WebSocketMessages/Hello.cs similarity index 100% rename from WebSocketMessages/Hello.cs rename to SlackAPI/WebSocketMessages/Hello.cs diff --git a/WebSocketMessages/MessageReceived.cs b/SlackAPI/WebSocketMessages/MessageReceived.cs similarity index 100% rename from WebSocketMessages/MessageReceived.cs rename to SlackAPI/WebSocketMessages/MessageReceived.cs diff --git a/WebSocketMessages/NewMessage.cs b/SlackAPI/WebSocketMessages/NewMessage.cs similarity index 100% rename from WebSocketMessages/NewMessage.cs rename to SlackAPI/WebSocketMessages/NewMessage.cs diff --git a/WebSocketMessages/Ping.cs b/SlackAPI/WebSocketMessages/Ping.cs similarity index 100% rename from WebSocketMessages/Ping.cs rename to SlackAPI/WebSocketMessages/Ping.cs diff --git a/WebSocketMessages/Pong.cs b/SlackAPI/WebSocketMessages/Pong.cs similarity index 100% rename from WebSocketMessages/Pong.cs rename to SlackAPI/WebSocketMessages/Pong.cs diff --git a/WebSocketMessages/PresenceChange.cs b/SlackAPI/WebSocketMessages/PresenceChange.cs similarity index 100% rename from WebSocketMessages/PresenceChange.cs rename to SlackAPI/WebSocketMessages/PresenceChange.cs diff --git a/WebSocketMessages/ReactionAdded.cs b/SlackAPI/WebSocketMessages/ReactionAdded.cs similarity index 100% rename from WebSocketMessages/ReactionAdded.cs rename to SlackAPI/WebSocketMessages/ReactionAdded.cs diff --git a/WebSocketMessages/TeamJoin.cs b/SlackAPI/WebSocketMessages/TeamJoin.cs similarity index 100% rename from WebSocketMessages/TeamJoin.cs rename to SlackAPI/WebSocketMessages/TeamJoin.cs diff --git a/WebSocketMessages/Typing.cs b/SlackAPI/WebSocketMessages/Typing.cs similarity index 100% rename from WebSocketMessages/Typing.cs rename to SlackAPI/WebSocketMessages/Typing.cs diff --git a/WebSocketMessages/UserChange.cs b/SlackAPI/WebSocketMessages/UserChange.cs similarity index 100% rename from WebSocketMessages/UserChange.cs rename to SlackAPI/WebSocketMessages/UserChange.cs diff --git a/SlackAPI/project.json b/SlackAPI/project.json new file mode 100644 index 0000000..40ec5fe --- /dev/null +++ b/SlackAPI/project.json @@ -0,0 +1,36 @@ +{ + "name": "SlackAPI", + "title": "SlackAPI", + "summary": "The MIT License (MIT)", + "description": "A Slack wrapper for direct interaction with their APIs.", + "copyright": "Inumedia - Copyright © 2014", + "licenseUrl": "http://choosealicense.com/licenses/mit/", + "authors": ["Inumedia"], + "owners": ["Inumedia"], + "language": "en-US", + "requireLicenseAcceptance": true, + "version": "1.0.5-*", + + "dependencies": { + "Newtonsoft.Json": "9.0.1" + }, + + "frameworks": { + "net45": { + "dependencies": { + "System.Net.Http": "4.0" + } + }, + "netstandard1.6":{ + "dependencies": { + "NETStandard.Library":"1.6.0", + "System.Net.Requests": "4.0.11", + // Use a beta version of WebSockets package because ClientWebSocket is not + // implemented in .Net Core 1.0 for Unix/MacOS (planned for 1.1) + // https://github.com/dotnet/corefx/issues/2486 + "System.Net.WebSockets.Client": "4.0.1-beta-24303-02", + "Microsoft.Extensions.DependencyModel": "1.0.0" + } + } + } +} diff --git a/SlackApi.Console/Program.cs b/SlackApi.Console/Program.cs index ba7203b..40b85c3 100644 --- a/SlackApi.Console/Program.cs +++ b/SlackApi.Console/Program.cs @@ -1,10 +1,6 @@ using SlackAPI; using System; -using System.Collections.Generic; using System.Diagnostics; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Web; namespace SlackApi diff --git a/SlackApi.Console/SlackApi.Console.csproj b/SlackApi.Console/SlackApi.Console.csproj index ba5e699..0f016b2 100644 --- a/SlackApi.Console/SlackApi.Console.csproj +++ b/SlackApi.Console/SlackApi.Console.csproj @@ -32,14 +32,12 @@ 4 + + ..\SlackAPI\bin\Debug\net45\SlackAPI.dll + - - - - - @@ -48,12 +46,6 @@ - - - {0c0a58a8-174e-4a4c-907b-c3569144d15d} - SlackAPI - -