├── README ├── Source └── CallCenter │ ├── CallCenter.Web │ ├── Global.asax │ ├── Content │ │ ├── images │ │ │ ├── glyphicons-halflings.png │ │ │ └── glyphicons-halflings-white.png │ │ └── bootstrap-responsive.min.css │ ├── App_Start │ │ ├── FilterConfig.cs │ │ └── RouteConfig.cs │ ├── Hubs │ │ └── DashboardHub.cs │ ├── Controllers │ │ ├── HomeController.cs │ │ └── PhoneController.cs │ ├── LocationalCall.cs │ ├── Web.Griffin.config │ ├── Global.asax.cs │ ├── App_Readme │ │ └── Elmah.txt │ ├── Web.Debug.config │ ├── packages.config │ ├── Web.Release.config │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Views │ │ ├── Shared │ │ │ └── _Layout.cshtml │ │ ├── Web.config │ │ └── Home │ │ │ └── Index.cshtml │ ├── Web.config │ ├── StateManager.cs │ ├── Scripts │ │ └── jquery.signalR-0.5.1.min.js │ └── CallCenter.Web.csproj │ ├── packages │ ├── elmah.1.2.2 │ │ ├── elmah.1.2.2.nupkg │ │ ├── Readme.txt │ │ └── content │ │ │ ├── App_Readme │ │ │ └── Elmah.txt │ │ │ └── web.config.transform │ ├── SignalR.0.5.1 │ │ └── SignalR.0.5.1.nupkg │ ├── Twilio.3.4.2 │ │ ├── Twilio.3.4.2.nupkg │ │ └── lib │ │ │ ├── 3.5 │ │ │ └── Twilio.Api.dll │ │ │ ├── SL4 │ │ │ └── Twilio.Api.Silverlight.dll │ │ │ └── SL3-WP7 │ │ │ └── Twilio.Api.WindowsPhone.dll │ ├── jQuery.1.7.2 │ │ ├── jQuery.1.7.2.nupkg │ │ └── Tools │ │ │ ├── install.ps1 │ │ │ └── uninstall.ps1 │ ├── RestSharp.103.1 │ │ ├── RestSharp.103.1.nupkg │ │ ├── lib │ │ │ ├── net4 │ │ │ │ └── RestSharp.dll │ │ │ ├── net35 │ │ │ │ └── RestSharp.dll │ │ │ ├── net4-client │ │ │ │ └── RestSharp.dll │ │ │ ├── net35-client │ │ │ │ └── RestSharp.dll │ │ │ ├── sl4 │ │ │ │ └── RestSharp.Silverlight.dll │ │ │ └── sl4-wp71 │ │ │ │ └── RestSharp.WindowsPhone.dll │ │ └── readme.txt │ ├── elmah.corelibrary.1.2.2 │ │ ├── lib │ │ │ └── Elmah.dll │ │ └── elmah.corelibrary.1.2.2.nupkg │ ├── repositories.config │ ├── SignalR.Js.0.5.1 │ │ ├── SignalR.Js.0.5.1.nupkg │ │ └── content │ │ │ └── Scripts │ │ │ └── jquery.signalR-0.5.1.min.js │ ├── Twilio.TwiML.3.1.3 │ │ ├── Twilio.TwiML.3.1.3.nupkg │ │ └── lib │ │ │ └── 3.5 │ │ │ ├── Twilio.Twiml.dll │ │ │ └── Twilio.Twiml.xml │ ├── SignalR.Server.0.5.1.1 │ │ ├── lib │ │ │ └── net40 │ │ │ │ └── SignalR.dll │ │ └── SignalR.Server.0.5.1.1.nupkg │ ├── Newtonsoft.Json.4.5.7 │ │ ├── Newtonsoft.Json.4.5.7.nupkg │ │ └── lib │ │ │ ├── sl4 │ │ │ └── Newtonsoft.Json.dll │ │ │ ├── net20 │ │ │ └── Newtonsoft.Json.dll │ │ │ ├── net35 │ │ │ └── Newtonsoft.Json.dll │ │ │ ├── net40 │ │ │ └── Newtonsoft.Json.dll │ │ │ ├── sl3-wp │ │ │ └── Newtonsoft.Json.dll │ │ │ ├── winrt45 │ │ │ └── Newtonsoft.Json.dll │ │ │ └── sl4-windowsphone71 │ │ │ └── Newtonsoft.Json.dll │ ├── Twitter.Bootstrap.2.0.3 │ │ ├── Twitter.Bootstrap.2.0.3.nupkg │ │ └── content │ │ │ └── Content │ │ │ ├── images │ │ │ ├── glyphicons-halflings.png │ │ │ └── glyphicons-halflings-white.png │ │ │ └── bootstrap-responsive.min.css │ ├── Microsoft.Net.Http.2.0.20505.0 │ │ ├── lib │ │ │ └── net40 │ │ │ │ ├── System.Net.Http.dll │ │ │ │ ├── System.Net.Http.WebRequest.dll │ │ │ │ └── System.Net.Http.WebRequest.xml │ │ └── Microsoft.Net.Http.2.0.20505.0.nupkg │ ├── Microsoft.AspNet.Mvc.4.0.20505.0 │ │ ├── lib │ │ │ └── net40 │ │ │ │ └── System.Web.Mvc.dll │ │ └── Microsoft.AspNet.Mvc.4.0.20505.0.nupkg │ ├── SignalR.Hosting.AspNet.0.5.1 │ │ ├── SignalR.Hosting.AspNet.0.5.1.nupkg │ │ └── lib │ │ │ ├── net40 │ │ │ ├── SignalR.Hosting.AspNet.dll │ │ │ └── SignalR.Hosting.AspNet.XML │ │ │ └── net45 │ │ │ ├── SignalR.Hosting.AspNet.dll │ │ │ └── SignalR.Hosting.AspNet.XML │ ├── SignalR.Hosting.Common.0.5.1 │ │ ├── SignalR.Hosting.Common.0.5.1.nupkg │ │ └── lib │ │ │ └── net40 │ │ │ ├── SignalR.Hosting.Common.dll │ │ │ └── SignalR.Hosting.Common.XML │ ├── Microsoft.AspNet.Razor.2.0.20505.0 │ │ ├── lib │ │ │ └── net40 │ │ │ │ └── System.Web.Razor.dll │ │ └── Microsoft.AspNet.Razor.2.0.20505.0.nupkg │ ├── Microsoft.AspNet.WebApi.Core.4.0.20505.0 │ │ ├── lib │ │ │ └── net40 │ │ │ │ └── System.Web.Http.dll │ │ └── Microsoft.AspNet.WebApi.Core.4.0.20505.0.nupkg │ ├── Microsoft.AspNet.WebPages.2.0.20505.0 │ │ ├── lib │ │ │ └── net40 │ │ │ │ ├── System.Web.Helpers.dll │ │ │ │ ├── System.Web.WebPages.dll │ │ │ │ ├── System.Web.WebPages.Razor.dll │ │ │ │ ├── System.Web.WebPages.Deployment.dll │ │ │ │ └── System.Web.WebPages.Deployment.xml │ │ └── Microsoft.AspNet.WebPages.2.0.20505.0.nupkg │ ├── Microsoft.AspNet.WebApi.4.0.20505.0 │ │ └── Microsoft.AspNet.WebApi.4.0.20505.0.nupkg │ ├── Microsoft.Web.Infrastructure.1.0.0.0 │ │ ├── Microsoft.Web.Infrastructure.1.0.0.0.nupkg │ │ ├── lib │ │ │ └── net40 │ │ │ │ └── Microsoft.Web.Infrastructure.dll │ │ └── tools │ │ │ ├── VS.psm1 │ │ │ ├── Uninstall.ps1 │ │ │ ├── Install.ps1 │ │ │ └── VS.psd1 │ ├── Microsoft.AspNet.WebApi.Client.4.0.20505.0 │ │ ├── lib │ │ │ └── net40 │ │ │ │ └── System.Net.Http.Formatting.dll │ │ └── Microsoft.AspNet.WebApi.Client.4.0.20505.0.nupkg │ └── Microsoft.AspNet.WebApi.WebHost.4.0.20505.0 │ │ ├── lib │ │ └── net40 │ │ │ ├── System.Web.Http.WebHost.dll │ │ │ └── System.Web.Http.WebHost.xml │ │ └── Microsoft.AspNet.WebApi.WebHost.4.0.20505.0.nupkg │ └── CallCenter.sln ├── CallScript.txt ├── .gitattributes └── .gitignore /README: -------------------------------------------------------------------------------- 1 | TWilio + Wijmo 2 | 3 | Call Center Magic -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/Global.asax: -------------------------------------------------------------------------------- 1 | <%@ Application Codebehind="Global.asax.cs" Inherits="CallCenter.Web.MvcApplication" Language="C#" %> 2 | -------------------------------------------------------------------------------- /Source/CallCenter/packages/elmah.1.2.2/elmah.1.2.2.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/elmah.1.2.2/elmah.1.2.2.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/SignalR.0.5.1/SignalR.0.5.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/SignalR.0.5.1/SignalR.0.5.1.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/Twilio.3.4.2/Twilio.3.4.2.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Twilio.3.4.2/Twilio.3.4.2.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/jQuery.1.7.2/jQuery.1.7.2.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/jQuery.1.7.2/jQuery.1.7.2.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/Twilio.3.4.2/lib/3.5/Twilio.Api.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Twilio.3.4.2/lib/3.5/Twilio.Api.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/RestSharp.103.1/RestSharp.103.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/RestSharp.103.1/RestSharp.103.1.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/RestSharp.103.1/lib/net4/RestSharp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/RestSharp.103.1/lib/net4/RestSharp.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/elmah.corelibrary.1.2.2/lib/Elmah.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/elmah.corelibrary.1.2.2/lib/Elmah.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/repositories.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Source/CallCenter/packages/RestSharp.103.1/lib/net35/RestSharp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/RestSharp.103.1/lib/net35/RestSharp.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/SignalR.Js.0.5.1/SignalR.Js.0.5.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/SignalR.Js.0.5.1/SignalR.Js.0.5.1.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/Twilio.TwiML.3.1.3/Twilio.TwiML.3.1.3.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Twilio.TwiML.3.1.3/Twilio.TwiML.3.1.3.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/Twilio.TwiML.3.1.3/lib/3.5/Twilio.Twiml.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Twilio.TwiML.3.1.3/lib/3.5/Twilio.Twiml.dll -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/Content/images/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/CallCenter.Web/Content/images/glyphicons-halflings.png -------------------------------------------------------------------------------- /Source/CallCenter/packages/RestSharp.103.1/lib/net4-client/RestSharp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/RestSharp.103.1/lib/net4-client/RestSharp.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/SignalR.Server.0.5.1.1/lib/net40/SignalR.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/SignalR.Server.0.5.1.1/lib/net40/SignalR.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/RestSharp.103.1/lib/net35-client/RestSharp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/RestSharp.103.1/lib/net35-client/RestSharp.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Twilio.3.4.2/lib/SL4/Twilio.Api.Silverlight.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Twilio.3.4.2/lib/SL4/Twilio.Api.Silverlight.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Newtonsoft.Json.4.5.7/Newtonsoft.Json.4.5.7.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Newtonsoft.Json.4.5.7/Newtonsoft.Json.4.5.7.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/Newtonsoft.Json.4.5.7/lib/sl4/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Newtonsoft.Json.4.5.7/lib/sl4/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/RestSharp.103.1/lib/sl4/RestSharp.Silverlight.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/RestSharp.103.1/lib/sl4/RestSharp.Silverlight.dll -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/Content/images/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/CallCenter.Web/Content/images/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /Source/CallCenter/packages/Newtonsoft.Json.4.5.7/lib/net20/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Newtonsoft.Json.4.5.7/lib/net20/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Newtonsoft.Json.4.5.7/lib/net35/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Newtonsoft.Json.4.5.7/lib/net35/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Newtonsoft.Json.4.5.7/lib/net40/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Newtonsoft.Json.4.5.7/lib/net40/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Newtonsoft.Json.4.5.7/lib/sl3-wp/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Newtonsoft.Json.4.5.7/lib/sl3-wp/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Newtonsoft.Json.4.5.7/lib/winrt45/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Newtonsoft.Json.4.5.7/lib/winrt45/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/SignalR.Server.0.5.1.1/SignalR.Server.0.5.1.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/SignalR.Server.0.5.1.1/SignalR.Server.0.5.1.1.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/Twilio.3.4.2/lib/SL3-WP7/Twilio.Api.WindowsPhone.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Twilio.3.4.2/lib/SL3-WP7/Twilio.Api.WindowsPhone.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Twitter.Bootstrap.2.0.3/Twitter.Bootstrap.2.0.3.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Twitter.Bootstrap.2.0.3/Twitter.Bootstrap.2.0.3.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/elmah.corelibrary.1.2.2/elmah.corelibrary.1.2.2.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/elmah.corelibrary.1.2.2/elmah.corelibrary.1.2.2.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/RestSharp.103.1/lib/sl4-wp71/RestSharp.WindowsPhone.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/RestSharp.103.1/lib/sl4-wp71/RestSharp.WindowsPhone.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.Net.Http.2.0.20505.0/lib/net40/System.Net.Http.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.Net.Http.2.0.20505.0/lib/net40/System.Net.Http.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.AspNet.Mvc.4.0.20505.0/lib/net40/System.Web.Mvc.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.AspNet.Mvc.4.0.20505.0/lib/net40/System.Web.Mvc.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/SignalR.Hosting.AspNet.0.5.1/SignalR.Hosting.AspNet.0.5.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/SignalR.Hosting.AspNet.0.5.1/SignalR.Hosting.AspNet.0.5.1.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/SignalR.Hosting.Common.0.5.1/SignalR.Hosting.Common.0.5.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/SignalR.Hosting.Common.0.5.1/SignalR.Hosting.Common.0.5.1.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.AspNet.Razor.2.0.20505.0/lib/net40/System.Web.Razor.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.AspNet.Razor.2.0.20505.0/lib/net40/System.Web.Razor.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Newtonsoft.Json.4.5.7/lib/sl4-windowsphone71/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Newtonsoft.Json.4.5.7/lib/sl4-windowsphone71/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/SignalR.Hosting.AspNet.0.5.1/lib/net40/SignalR.Hosting.AspNet.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/SignalR.Hosting.AspNet.0.5.1/lib/net40/SignalR.Hosting.AspNet.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/SignalR.Hosting.AspNet.0.5.1/lib/net45/SignalR.Hosting.AspNet.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/SignalR.Hosting.AspNet.0.5.1/lib/net45/SignalR.Hosting.AspNet.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/SignalR.Hosting.Common.0.5.1/lib/net40/SignalR.Hosting.Common.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/SignalR.Hosting.Common.0.5.1/lib/net40/SignalR.Hosting.Common.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.Net.Http.2.0.20505.0/Microsoft.Net.Http.2.0.20505.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.Net.Http.2.0.20505.0/Microsoft.Net.Http.2.0.20505.0.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.AspNet.WebApi.Core.4.0.20505.0/lib/net40/System.Web.Http.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.AspNet.WebApi.Core.4.0.20505.0/lib/net40/System.Web.Http.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.AspNet.WebPages.2.0.20505.0/lib/net40/System.Web.Helpers.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.AspNet.WebPages.2.0.20505.0/lib/net40/System.Web.Helpers.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.AspNet.Mvc.4.0.20505.0/Microsoft.AspNet.Mvc.4.0.20505.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.AspNet.Mvc.4.0.20505.0/Microsoft.AspNet.Mvc.4.0.20505.0.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.AspNet.WebPages.2.0.20505.0/lib/net40/System.Web.WebPages.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.AspNet.WebPages.2.0.20505.0/lib/net40/System.Web.WebPages.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.Net.Http.2.0.20505.0/lib/net40/System.Net.Http.WebRequest.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.Net.Http.2.0.20505.0/lib/net40/System.Net.Http.WebRequest.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Twitter.Bootstrap.2.0.3/content/Content/images/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Twitter.Bootstrap.2.0.3/content/Content/images/glyphicons-halflings.png -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.AspNet.Razor.2.0.20505.0/Microsoft.AspNet.Razor.2.0.20505.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.AspNet.Razor.2.0.20505.0/Microsoft.AspNet.Razor.2.0.20505.0.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.AspNet.WebApi.4.0.20505.0/Microsoft.AspNet.WebApi.4.0.20505.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.AspNet.WebApi.4.0.20505.0/Microsoft.AspNet.WebApi.4.0.20505.0.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.AspNet.WebPages.2.0.20505.0/lib/net40/System.Web.WebPages.Razor.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.AspNet.WebPages.2.0.20505.0/lib/net40/System.Web.WebPages.Razor.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Twitter.Bootstrap.2.0.3/content/Content/images/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Twitter.Bootstrap.2.0.3/content/Content/images/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.Web.Infrastructure.1.0.0.0/Microsoft.Web.Infrastructure.1.0.0.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.Web.Infrastructure.1.0.0.0/Microsoft.Web.Infrastructure.1.0.0.0.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.Web.Infrastructure.1.0.0.0/lib/net40/Microsoft.Web.Infrastructure.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.Web.Infrastructure.1.0.0.0/lib/net40/Microsoft.Web.Infrastructure.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.AspNet.WebApi.Client.4.0.20505.0/lib/net40/System.Net.Http.Formatting.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.AspNet.WebApi.Client.4.0.20505.0/lib/net40/System.Net.Http.Formatting.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.AspNet.WebApi.WebHost.4.0.20505.0/lib/net40/System.Web.Http.WebHost.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.AspNet.WebApi.WebHost.4.0.20505.0/lib/net40/System.Web.Http.WebHost.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.AspNet.WebPages.2.0.20505.0/Microsoft.AspNet.WebPages.2.0.20505.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.AspNet.WebPages.2.0.20505.0/Microsoft.AspNet.WebPages.2.0.20505.0.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.AspNet.WebPages.2.0.20505.0/lib/net40/System.Web.WebPages.Deployment.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.AspNet.WebPages.2.0.20505.0/lib/net40/System.Web.WebPages.Deployment.dll -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.AspNet.WebApi.Core.4.0.20505.0/Microsoft.AspNet.WebApi.Core.4.0.20505.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.AspNet.WebApi.Core.4.0.20505.0/Microsoft.AspNet.WebApi.Core.4.0.20505.0.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.AspNet.WebApi.Client.4.0.20505.0/Microsoft.AspNet.WebApi.Client.4.0.20505.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.AspNet.WebApi.Client.4.0.20505.0/Microsoft.AspNet.WebApi.Client.4.0.20505.0.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.AspNet.WebApi.WebHost.4.0.20505.0/Microsoft.AspNet.WebApi.WebHost.4.0.20505.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1kevgriff/CallCenter/master/Source/CallCenter/packages/Microsoft.AspNet.WebApi.WebHost.4.0.20505.0/Microsoft.AspNet.WebApi.WebHost.4.0.20505.0.nupkg -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/App_Start/FilterConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web; 2 | using System.Web.Mvc; 3 | 4 | namespace CallCenter.Web 5 | { 6 | public class FilterConfig 7 | { 8 | public static void RegisterGlobalFilters(GlobalFilterCollection filters) 9 | { 10 | filters.Add(new HandleErrorAttribute()); 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/Hubs/DashboardHub.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace CallCenter.Web.Hubs 7 | { 8 | public class DashboardHub : SignalR.Hubs.Hub 9 | { 10 | public void Preload() 11 | { 12 | StateManager.PreloadClient(Context.ConnectionId); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Mvc; 6 | 7 | namespace CallCenter.Web.Controllers 8 | { 9 | public class HomeController : Controller 10 | { 11 | // 12 | // GET: /Home/ 13 | 14 | public ActionResult Index() 15 | { 16 | return View(); 17 | } 18 | 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /CallScript.txt: -------------------------------------------------------------------------------- 1 | A) Welcome to Griff Co Support. Please select from the following options: 2 | - Press 1 for technical support /Twilio/SelectSupport/1 3 | - Press 2 for billing support /Twilio/SelectSupport/2 4 | - (admin code)? 5 | 6 | A1) You selected technical support. Which product are you calling for support with? 7 | - Press 1 for Griff Co Foobar /Twilio/SelectTechSupport/1 8 | - Press 2 for Griff Co BarFoo /Twilio/SelectTechSupport/2 9 | - Press 3 for Griff Co BooFar /Twilio/SelectTechSupport/3 10 | 11 | A2) You selected billing support. -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/LocationalCall.cs: -------------------------------------------------------------------------------- 1 | using Twilio; 2 | 3 | namespace CallCenter.Web 4 | { 5 | public class LocationalCall : Call 6 | { 7 | public LocationalCall(Call call) 8 | { 9 | Sid = call.Sid; 10 | From = call.From; 11 | DateCreated = call.DateCreated; 12 | } 13 | 14 | public string City { get; set; } 15 | public string State { get; set; } 16 | public string ZipCode { get; set; } 17 | public string Country { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/Web.Griffin.config: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/Global.asax.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Http; 6 | using System.Web.Mvc; 7 | using System.Web.Routing; 8 | 9 | namespace CallCenter.Web 10 | { 11 | // Note: For instructions on enabling IIS6 or IIS7 classic mode, 12 | // visit http://go.microsoft.com/?LinkId=9394801 13 | public class MvcApplication : System.Web.HttpApplication 14 | { 15 | protected void Application_Start() 16 | { 17 | AreaRegistration.RegisterAllAreas(); 18 | 19 | FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 20 | RouteConfig.RegisterRoutes(RouteTable.Routes); 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Source/CallCenter/packages/RestSharp.103.1/readme.txt: -------------------------------------------------------------------------------- 1 | *** IMPORTANT CHANGE IN RESTSHARP VERSION 103 *** 2 | 3 | In 103.0, JSON.NET was removed as a dependency. 4 | 5 | If this is still installed in your project and no other libraries depend on 6 | it you may remove it from your installed packages. 7 | 8 | There is one breaking change: the default Json*Serializer* is no longer 9 | compatible with Json.NET. To use Json.NET for serialization, copy the code 10 | from https://github.com/restsharp/RestSharp/blob/86b31f9adf049d7fb821de8279154f41a17b36f7/RestSharp/Serializers/JsonSerializer.cs 11 | and register it with your client: 12 | 13 | var client = new RestClient(); 14 | client.JsonSerializer = new YourCustomSerializer(); 15 | 16 | The default Json*Deserializer* should be 100% compatible. 17 | 18 | If you run into any compatibility issues with deserialization, 19 | please report it to http://groups.google.com/group/restsharp -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/App_Start/RouteConfig.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Http; 6 | using System.Web.Mvc; 7 | using System.Web.Routing; 8 | 9 | namespace CallCenter.Web 10 | { 11 | public class RouteConfig 12 | { 13 | public static void RegisterRoutes(RouteCollection routes) 14 | { 15 | routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 16 | 17 | routes.MapHttpRoute( 18 | name: "DefaultApi", 19 | routeTemplate: "api/{controller}/{id}", 20 | defaults: new { id = RouteParameter.Optional } 21 | ); 22 | 23 | routes.MapRoute( 24 | name: "Default", 25 | url: "{controller}/{action}/{id}", 26 | defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 27 | ); 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /Source/CallCenter/packages/elmah.1.2.2/Readme.txt: -------------------------------------------------------------------------------- 1 | A new HTTP handler has been configured in your application for consulting the 2 | error log and its feeds. It is reachable at elmah.axd under your application 3 | root. If, for example, your application is deployed at http://www.example.com, 4 | the URL for ELMAH would be http://www.example.com/elmah.axd. You can, of 5 | course, change this path in your application's configuration file. 6 | 7 | ELMAH is also set up to be secure such that it can only be accessed locally. 8 | You can enable remote access but then it is paramount that you secure access 9 | to authorized users or/and roles only. This can be done using standard 10 | authorization rules and configuration already built into ASP.NET. For more 11 | information, see http://code.google.com/p/elmah/wiki/SecuringErrorLogPages on 12 | the project site. 13 | 14 | Please review the commented out authorization section under 15 | and make the appropriate changes. 16 | -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/App_Readme/Elmah.txt: -------------------------------------------------------------------------------- 1 | A new HTTP handler has been configured in your application for consulting the 2 | error log and its feeds. It is reachable at elmah.axd under your application 3 | root. If, for example, your application is deployed at http://www.example.com, 4 | the URL for ELMAH would be http://www.example.com/elmah.axd. You can, of 5 | course, change this path in your application's configuration file. 6 | 7 | ELMAH is also set up to be secure such that it can only be accessed locally. 8 | You can enable remote access but then it is paramount that you secure access 9 | to authorized users or/and roles only. This can be done using standard 10 | authorization rules and configuration already built into ASP.NET. For more 11 | information, see http://code.google.com/p/elmah/wiki/SecuringErrorLogPages on 12 | the project site. 13 | 14 | Please review the commented out authorization section under 15 | and make the appropriate changes. 16 | -------------------------------------------------------------------------------- /Source/CallCenter/packages/elmah.1.2.2/content/App_Readme/Elmah.txt: -------------------------------------------------------------------------------- 1 | A new HTTP handler has been configured in your application for consulting the 2 | error log and its feeds. It is reachable at elmah.axd under your application 3 | root. If, for example, your application is deployed at http://www.example.com, 4 | the URL for ELMAH would be http://www.example.com/elmah.axd. You can, of 5 | course, change this path in your application's configuration file. 6 | 7 | ELMAH is also set up to be secure such that it can only be accessed locally. 8 | You can enable remote access but then it is paramount that you secure access 9 | to authorized users or/and roles only. This can be done using standard 10 | authorization rules and configuration already built into ASP.NET. For more 11 | information, see http://code.google.com/p/elmah/wiki/SecuringErrorLogPages on 12 | the project site. 13 | 14 | Please review the commented out authorization section under 15 | and make the appropriate changes. 16 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.doc diff=astextplain 2 | *.DOC diff=astextplain 3 | *.docx diff=astextplain 4 | *.DOCX diff=astextplain 5 | *.dot diff=astextplain 6 | *.DOT diff=astextplain 7 | *.pdf diff=astextplain 8 | *.PDF diff=astextplain 9 | *.rtf diff=astextplain 10 | *.RTF diff=astextplain 11 | 12 | *.jpg binary 13 | *.png binary 14 | *.gif binary 15 | 16 | *.cs text=auto diff=csharp 17 | *.vb text=auto 18 | *.c text=auto 19 | *.cpp text=auto 20 | *.cxx text=auto 21 | *.h text=auto 22 | *.hxx text=auto 23 | *.py text=auto 24 | *.rb text=auto 25 | *.java text=auto 26 | *.html text=auto 27 | *.htm text=auto 28 | *.css text=auto 29 | *.scss text=auto 30 | *.sass text=auto 31 | *.less text=auto 32 | *.js text=auto 33 | *.lisp text=auto 34 | *.clj text=auto 35 | *.sql text=auto 36 | *.php text=auto 37 | *.lua text=auto 38 | *.m text=auto 39 | *.asm text=auto 40 | *.erl text=auto 41 | *.fs text=auto 42 | *.fsx text=auto 43 | *.hs text=auto 44 | 45 | *.csproj text=auto merge=union 46 | *.vbproj text=auto merge=union 47 | *.fsproj text=auto merge=union 48 | *.dbproj text=auto merge=union 49 | *.sln text=auto eol=crlf merge=union 50 | -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CallCenter.Web", "CallCenter.Web\CallCenter.Web.csproj", "{6E6454A3-1B21-4C95-A1E4-7D5AC4E52534}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Any CPU = Debug|Any CPU 9 | Griffin|Any CPU = Griffin|Any CPU 10 | Release|Any CPU = Release|Any CPU 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {6E6454A3-1B21-4C95-A1E4-7D5AC4E52534}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 14 | {6E6454A3-1B21-4C95-A1E4-7D5AC4E52534}.Debug|Any CPU.Build.0 = Debug|Any CPU 15 | {6E6454A3-1B21-4C95-A1E4-7D5AC4E52534}.Griffin|Any CPU.ActiveCfg = Griffin|Any CPU 16 | {6E6454A3-1B21-4C95-A1E4-7D5AC4E52534}.Griffin|Any CPU.Build.0 = Griffin|Any CPU 17 | {6E6454A3-1B21-4C95-A1E4-7D5AC4E52534}.Release|Any CPU.ActiveCfg = Release|Any CPU 18 | {6E6454A3-1B21-4C95-A1E4-7D5AC4E52534}.Release|Any CPU.Build.0 = Release|Any CPU 19 | EndGlobalSection 20 | GlobalSection(SolutionProperties) = preSolution 21 | HideSolutionNode = FALSE 22 | EndGlobalSection 23 | EndGlobal 24 | -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/Web.Debug.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 29 | 30 | -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/Web.Release.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("CallCenter.Web")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("CallCenter.Web")] 13 | [assembly: AssemblyCopyright("Copyright © 2012")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("6ea0d818-ec79-4a02-a835-d4d8a61a5531")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Revision and Build Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/Views/Shared/_Layout.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | @ViewBag.Title 7 | 8 | @**@ 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | @RenderBody() 32 |
33 | 34 | 35 | -------------------------------------------------------------------------------- /Source/CallCenter/packages/Twilio.TwiML.3.1.3/lib/3.5/Twilio.Twiml.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Twilio.Twiml 5 | 6 | 7 | 8 | 9 | Class used to validate incoming requests from Twilio using 'Request Validation' as described 10 | in the Security section of the Twilio TwiML API documentation. 11 | 12 | 13 | 14 | 15 | Performs request validation using the current HTTP context passed in manually or from 16 | the ASP.NET MVC ValidateRequestAttribute 17 | 18 | HttpContext to use for validation 19 | AuthToken for the account used to sign the request 20 | 21 | 22 | 23 | Performs request validation using the current HTTP context passed in manually or from 24 | the ASP.NET MVC ValidateRequestAttribute 25 | 26 | HttpContext to use for validation 27 | AuthToken for the account used to sign the request 28 | The URL to use for validation, if different from Request.Url (sometimes needed if web site is behind a proxy or load-balancer) 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /Source/CallCenter/packages/jQuery.1.7.2/Tools/install.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package, $project) 2 | 3 | # VS 11 and above supports the new intellisense JS files 4 | $supportsJsIntelliSenseFile = [System.Version]::Parse($dte.Version).Major -ge 11 5 | 6 | if (-not $supportsJsIntelliSenseFile) { 7 | Write-Host "IntelliSense JS files are not supported by your version of VS: " + $dte.Version 8 | exit 9 | } 10 | 11 | # Extract the version number from the jquery file in the package's content\scripts folder 12 | $packageScriptsFolder = Join-Path $installPath Content\Scripts 13 | $jqueryFileName = Join-Path $packageScriptsFolder "jquery-*.js" | Get-ChildItem -Exclude "*.min.js","*-vsdoc.js" | Split-Path -Leaf 14 | $jqueryFileName -match "jquery-((?:\d+\.)?(?:\d+\.)?(?:\d+\.)?(?:\d+)).js" 15 | $ver = $matches[1] 16 | 17 | # Determine the project scripts folder path 18 | $projectFolderPath = $project.Properties.Item("FullPath").Value 19 | $projectScriptsFolderPath = Join-Path $projectFolderPath Scripts 20 | 21 | # Get the project item for the scripts folder 22 | try { 23 | $scriptsFolderProjectItem = $project.ProjectItems.Item("Scripts") 24 | } 25 | catch { 26 | exit 27 | } 28 | 29 | # Delete the vsdoc file from the project 30 | try { 31 | $vsDocProjectItem = $scriptsFolderProjectItem.ProjectItems.Item("jquery-$ver-vsdoc.js") 32 | $vsDocProjectItem.Delete() 33 | } 34 | catch { 35 | exit 36 | } 37 | 38 | # Copy the intellisense file to the project from the tools folder 39 | $intelliSenseFileName = "jquery-$ver.intellisense.js" 40 | $intelliSenseFileSourcePath = Join-Path $toolsPath $intelliSenseFileName 41 | try { 42 | $scriptsFolderProjectItem.ProjectItems.AddFromFileCopy($intelliSenseFileSourcePath) 43 | } 44 | catch { 45 | # This will throw if the file already exists, so we need to catch here 46 | } -------------------------------------------------------------------------------- /Source/CallCenter/packages/elmah.1.2.2/content/web.config.transform: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 |
6 |
7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 30 | 31 | 32 | 33 | 34 | 35 | 38 | 39 | 48 | 49 | 50 | 51 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Source/CallCenter/packages/jQuery.1.7.2/Tools/uninstall.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package, $project) 2 | 3 | function Get-Checksum($file) { 4 | $cryptoProvider = New-Object "System.Security.Cryptography.MD5CryptoServiceProvider" 5 | 6 | $fileInfo = Get-Item "$file" 7 | trap { ; 8 | continue } $stream = $fileInfo.OpenRead() 9 | if ($? -eq $false) { 10 | #Write-Host "Couldn't open file for reading" 11 | return $null 12 | } 13 | 14 | $bytes = $cryptoProvider.ComputeHash($stream) 15 | $checksum = '' 16 | foreach ($byte in $bytes) { 17 | $checksum += $byte.ToString('x2') 18 | } 19 | 20 | $stream.Close() | Out-Null 21 | 22 | return $checksum 23 | } 24 | 25 | # Extract the version number from the jquery file in the package's content\scripts folder 26 | $packageScriptsFolder = Join-Path $installPath Content | Join-Path -ChildPath Scripts 27 | $jqueryFileName = Join-Path $packageScriptsFolder "jquery-*.js" | Get-ChildItem -Exclude "*.min.js","*-vsdoc.js" | Split-Path -Leaf 28 | $jqueryFileName -match "jquery-((?:\d+\.)?(?:\d+\.)?(?:\d+\.)?(?:\d+)).js" 29 | $ver = $matches[1] 30 | 31 | # Determine the file paths 32 | $projectFolder = $project.Properties.Item("FullPath").Value 33 | $intelliSenseFileName = "jquery-$ver.intellisense.js" 34 | $projectScriptsFolder = Join-Path $projectFolder Scripts 35 | $projectIntelliSenseFilePath = Join-Path $projectScriptsFolder $intelliSenseFileName 36 | $origIntelliSenseFilePath = Join-Path $toolsPath $intelliSenseFileName 37 | 38 | if (Test-Path $projectIntelliSenseFilePath) { 39 | if ((Get-Checksum $projectIntelliSenseFilePath) -eq (Get-Checksum $origIntelliSenseFilePath)) { 40 | # The intellisense file in the project matches the file in the tools folder, delete it 41 | 42 | try { 43 | # Get the project item for the scripts folder 44 | $scriptsFolderProjectItem = $project.ProjectItems.Item("Scripts") 45 | 46 | # Get the project item for the intellisense file 47 | $intelliSenseFileProjectItem = $scriptsFolderProjectItem.ProjectItems.Item($intelliSenseFileName) 48 | } 49 | catch { 50 | # The item wasn't found 51 | exit 52 | } 53 | 54 | # Delete the project item 55 | $intelliSenseFileProjectItem.Delete() 56 | } 57 | else { 58 | $projectScriptsFolderLeaf = Split-Path $projectScriptsFolder -Leaf 59 | Write-Host "Skipping '$projectScriptsFolderLeaf\$intelliSenseFileName' because it was modified." -ForegroundColor Magenta 60 | } 61 | } 62 | else { 63 | # The intellisense file was not found in project 64 | } 65 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | ################# 3 | ## Eclipse 4 | ################# 5 | 6 | *.pydevproject 7 | .project 8 | .metadata 9 | bin/** 10 | tmp/** 11 | tmp/**/* 12 | *.tmp 13 | *.bak 14 | *.swp 15 | *~.nib 16 | local.properties 17 | .classpath 18 | .settings/ 19 | .loadpath 20 | 21 | # External tool builders 22 | .externalToolBuilders/ 23 | 24 | # Locally stored "Eclipse launch configurations" 25 | *.launch 26 | 27 | # CDT-specific 28 | .cproject 29 | 30 | # PDT-specific 31 | .buildpath 32 | 33 | 34 | ################# 35 | ## Visual Studio 36 | ################# 37 | 38 | ## Ignore Visual Studio temporary files, build results, and 39 | ## files generated by popular Visual Studio add-ons. 40 | 41 | # User-specific files 42 | *.suo 43 | *.user 44 | *.sln.docstates 45 | 46 | # Build results 47 | **/[Dd]ebug/ 48 | **/[Rr]elease/ 49 | *_i.c 50 | *_p.c 51 | *.ilk 52 | *.meta 53 | *.obj 54 | *.pch 55 | *.pdb 56 | *.pgc 57 | *.pgd 58 | *.rsp 59 | *.sbr 60 | *.tlb 61 | *.tli 62 | *.tlh 63 | *.tmp 64 | *.vspscc 65 | .builds 66 | **/*.dotCover 67 | 68 | ## TODO: If you have NuGet Package Restore enabled, uncomment this 69 | #**/packages/ 70 | 71 | # Visual C++ cache files 72 | ipch/ 73 | *.aps 74 | *.ncb 75 | *.opensdf 76 | *.sdf 77 | 78 | # Visual Studio profiler 79 | *.psess 80 | *.vsp 81 | 82 | # ReSharper is a .NET coding add-in 83 | _ReSharper* 84 | 85 | # Installshield output folder 86 | [Ee]xpress 87 | 88 | # DocProject is a documentation generator add-in 89 | DocProject/buildhelp/ 90 | DocProject/Help/*.HxT 91 | DocProject/Help/*.HxC 92 | DocProject/Help/*.hhc 93 | DocProject/Help/*.hhk 94 | DocProject/Help/*.hhp 95 | DocProject/Help/Html2 96 | DocProject/Help/html 97 | 98 | # Click-Once directory 99 | publish 100 | 101 | # Others 102 | [Bb]in 103 | [Oo]bj 104 | sql 105 | TestResults 106 | *.Cache 107 | ClientBin 108 | stylecop.* 109 | ~$* 110 | *.dbmdl 111 | Generated_Code #added for RIA/Silverlight projects 112 | 113 | # Backup & report files from converting an old project file to a newer 114 | # Visual Studio version. Backup files are not needed, because we have git ;-) 115 | _UpgradeReport_Files/ 116 | Backup*/ 117 | UpgradeLog*.XML 118 | 119 | 120 | 121 | ############ 122 | ## Windows 123 | ############ 124 | 125 | # Windows image file caches 126 | Thumbs.db 127 | 128 | # Folder config file 129 | Desktop.ini 130 | 131 | 132 | ############# 133 | ## Python 134 | ############# 135 | 136 | *.py[co] 137 | 138 | # Packages 139 | *.egg 140 | *.egg-info 141 | dist 142 | build 143 | eggs 144 | parts 145 | bin 146 | var 147 | sdist 148 | develop-eggs 149 | .installed.cfg 150 | 151 | # Installer logs 152 | pip-log.txt 153 | 154 | # Unit test / coverage reports 155 | .coverage 156 | .tox 157 | 158 | #Translations 159 | *.mo 160 | 161 | #Mr Developer 162 | .mr.developer.cfg 163 | 164 | # Mac crap 165 | .DS_Store 166 | -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/Views/Web.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |
7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 39 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Source/CallCenter/packages/SignalR.Hosting.Common.0.5.1/lib/net40/SignalR.Hosting.Common.XML: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SignalR.Hosting.Common 5 | 6 | 7 | 8 | 9 | Provides access to default host information. 10 | 11 | 12 | 13 | 14 | Gets or sets the the default 15 | 16 | 17 | 18 | 19 | Gets the default 20 | 21 | 22 | 23 | 24 | Gets the default 25 | 26 | 27 | 28 | 29 | Gets the for this host. 30 | 31 | 32 | 33 | 34 | Gets the for this host. 35 | 36 | 37 | 38 | 39 | Gets the for this host. 40 | 41 | 42 | 43 | 44 | Helpers for encoding, decoding, and parsing URI query components. 45 | 46 | 47 | 48 | 49 | Map the to the default hub url (~/signalr) 50 | 51 | 52 | 53 | 54 | Maps the to the specified path. 55 | 56 | The path of the 57 | 58 | 59 | 60 | Maps the url to the specified . 61 | 62 | The type of 63 | The path of 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/Web.config: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 |
10 |
11 |
12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.AspNet.WebPages.2.0.20505.0/lib/net40/System.Web.WebPages.Deployment.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | System.Web.WebPages.Deployment 5 | 6 | 7 | 8 | Provides a registration point for pre-application start code for Web Pages deployment. 9 | 10 | 11 | Registers pre-application start code for Web Pages deployment. 12 | 13 | 14 | Provides methods to confirm the deployment of a Web Pages application. 15 | 16 | 17 | Represents the prefix for files that are stored in the cache. 18 | 19 | 20 | Returns the full path of the folder that contains ASP.NET Web Pages assemblies for the specified version. 21 | The full path of the folder that contains ASP.NET Web Pages assemblies. 22 | The version of the assemblies. 23 | 24 | is null. 25 | The registry key for the path cannot be found.-or-The path cannot be found. 26 | 27 | 28 | 29 | 30 | Returns the version of ASP.NET Web Pages that is installed. 31 | The version of ASP.NET Web Pages that is installed, or null if the version is undetermined. 32 | The path of the root directory for the application. 33 | 34 | is null or empty. 35 | 36 | 37 | 38 | 39 | Returns a value that indicates whether the Web Pages application is enabled. 40 | true if the Web Pages application is enabled; otherwise, false. 41 | The path of the root directory for the application. 42 | 43 | is null or empty. 44 | 45 | 46 | Returns a value that indicates whether the Web Pages application is explicitly disabled. 47 | true if the Web Pages application is explicitly disabled; otherwise, false. 48 | The path of the root directory for the application. 49 | 50 | is null or empty. 51 | 52 | 53 | -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Bank of Griff"; 3 | Layout = "~/Views/Shared/_Layout.cshtml"; 4 | } 5 | 9 |
10 |
11 |

ACTIVE

12 |

0

13 |
14 |
15 |

TOTALS

16 |

0

17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |

Phone Calls

29 | 30 | 31 | 32 | 33 | 34 |
35 |
36 |
37 |
38 |
39 |

Log

40 | 41 |
42 |
43 |
44 |
45 |
46 | Last updated at Unknown 47 |
48 |
49 | 50 | 150 | -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.Net.Http.2.0.20505.0/lib/net40/System.Net.Http.WebRequest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | System.Net.Http.WebRequest 5 | 6 | 7 | 8 | Represents the class that is used to create special for use with the Real-Time-Communications (RTC) background notification infrastructure. 9 | 10 | 11 | Creates a special for use with the Real-Time-Communications (RTC) background notification infrastructure. 12 | Returns .An HTTP request message for use with the RTC background notification infrastructure. 13 | The HTTP method. 14 | The Uri the request is sent to. 15 | 16 | 17 | Provides desktop-specific features not available to Metro apps or other environments. 18 | 19 | 20 | Initializes a new instance of the class. 21 | 22 | 23 | Gets or sets a value that indicates whether to pipeline the request to the Internet resource. 24 | Returns .true if the request should be pipelined; otherwise, false. The default is true. 25 | 26 | 27 | Gets or sets a value indicating the level of authentication and impersonation used for this request. 28 | Returns .A bitwise combination of the values. The default value is . 29 | 30 | 31 | Gets or sets the cache policy for this request. 32 | Returns .A object that defines a cache policy. The default is . 33 | 34 | 35 | Gets or sets the collection of security certificates that are associated with this request. 36 | Returns .The collection of security certificates associated with this request. 37 | 38 | 39 | Gets or sets the amount of time, in milliseconds, the application will wait for 100-continue from the server before uploading data. 40 | Returns .The amount of time, in milliseconds, the application will wait for 100-continue from the server before uploading data. The default value is 350 milliseconds. 41 | 42 | 43 | Gets or sets the impersonation level for the current request. 44 | Returns .The impersonation level for the request. The default is . 45 | 46 | 47 | Gets or sets the maximum allowed length of the response headers. 48 | Returns .The length, in kilobytes (1024 bytes), of the response headers. 49 | 50 | 51 | Gets or sets a time-out in milliseconds when writing a request to or reading a response from a server. 52 | Returns .The number of milliseconds before the writing or reading times out. The default value is 300,000 milliseconds (5 minutes). 53 | 54 | 55 | Gets or sets a value that indicates whether to allow high-speed NTLM-authenticated connection sharing. 56 | Returns .true to keep the authenticated connection open; otherwise, false. 57 | 58 | 59 | -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/Controllers/PhoneController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Configuration; 4 | using System.Globalization; 5 | using System.IO; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Web; 9 | using System.Web.Mvc; 10 | using Twilio; 11 | using Twilio.TwiML; 12 | 13 | namespace CallCenter.Web.Controllers 14 | { 15 | public class PhoneController : Controller 16 | { 17 | // 18 | // GET: /Phone/ 19 | 20 | public ActionResult IncomingCall(string CallSid, string FromCity, string FromState, string FromZip, string FromCountry) 21 | { 22 | LocationalCall call = (LocationalCall)GetCall(CallSid); 23 | StateManager.AddNewCall(call); 24 | StateManager.AddToLog(CallSid, "Incoming call..."); 25 | call.City = FromCity; 26 | call.Country = FromCountry; 27 | call.ZipCode = FromZip; 28 | call.State = FromState; 29 | 30 | TwilioResponse response = new TwilioResponse(); 31 | response.BeginGather(new 32 | { 33 | action = Url.Action("ServiceRequest"), 34 | timeout = 120, 35 | method = "POST", 36 | numDigits = 1 37 | }); 38 | response.Say("Welcome to the Bank of Griff."); 39 | response.Pause(); 40 | response.Say("Press 1 to manage your account."); 41 | response.Say("Press 2 to take out a loan."); 42 | response.Say("Press 3 to talk to a representative."); 43 | response.Pause(); 44 | response.EndGather(); 45 | 46 | return SendTwilioResult(response); 47 | } 48 | public ActionResult CallComplete(string CallSid) 49 | { 50 | LocationalCall call = (LocationalCall)GetCall(CallSid); 51 | StateManager.CompletedCall(call); 52 | StateManager.AddToLog(CallSid, "Call is completed."); 53 | 54 | TwilioResponse response = new TwilioResponse(); 55 | response.Say("Goodbye baby cakes"); 56 | response.Hangup(); 57 | 58 | return SendTwilioResult(response); 59 | } 60 | public ActionResult ServiceRequest(string CallSid, string Digits) 61 | { 62 | var call = GetCall(CallSid); 63 | TwilioResponse response = new TwilioResponse(); 64 | 65 | switch (Digits) 66 | { 67 | case "0": 68 | { 69 | StateManager.AddToLog(CallSid, string.Format("User selected option {0} from service selection.", "Return to Menu")); 70 | response.Say("Returning to the main menu."); 71 | response.Redirect(Url.Action("IncomingCall")); 72 | } 73 | break; 74 | case "1": 75 | { 76 | StateManager.AddToLog(CallSid, string.Format("User selected option {0} from service selection.", "Manage Account")); 77 | response.BeginGather( 78 | new { action = Url.Action("ManageAccount"), timeout = 120, method = "POST", numDigits = 8 }); 79 | response.Say("Please enter your 8 digit account number"); 80 | response.EndGather(); 81 | } 82 | break; 83 | case "2": 84 | { 85 | StateManager.AddToLog(CallSid, string.Format("User selected option {0} from service selection.", "Take a Loan")); 86 | response.Say( 87 | "All of our loan officers are currently giving money away to people less deserving than you."); 88 | } 89 | break; 90 | case "3": 91 | { 92 | StateManager.AddToLog(CallSid, string.Format("User selected option {0} from service selection.", "Talk to a Representative")); 93 | } 94 | break; 95 | default: 96 | { 97 | response.Say("Oy vey."); 98 | response.Redirect(Url.Action("IncomingCall")); 99 | } break; 100 | } 101 | 102 | return SendTwilioResult(response); 103 | } 104 | public ActionResult ManageAccount(string CallSid, string Digits) 105 | { 106 | var call = GetCall(CallSid); 107 | TwilioResponse response = new TwilioResponse(); 108 | response.Say("Sorry. Account management is currently down for repairs. Please try again in 6 to 8 weeks."); 109 | response.Hangup(); 110 | 111 | return SendTwilioResult(response); 112 | } 113 | 114 | private static ActionResult SendTwilioResult(TwilioResponse response) 115 | { 116 | Stream result = new MemoryStream(Encoding.Default.GetBytes(response.ToString())); 117 | 118 | return new FileStreamResult(result, "application/xml"); 119 | } 120 | private static LocationalCall GetCall(string CallSid) 121 | { 122 | string accountSid = "ACa2de2b9a03db42ee981073b917cc8132"; 123 | string authToken = "921a664399748302a019ee35c40e888c"; 124 | 125 | TwilioRestClient client = new TwilioRestClient(accountSid, authToken); 126 | var call = client.GetCall(CallSid); 127 | return new LocationalCall(call); 128 | } 129 | } 130 | } 131 | -------------------------------------------------------------------------------- /Source/CallCenter/packages/SignalR.Hosting.AspNet.0.5.1/lib/net40/SignalR.Hosting.AspNet.XML: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SignalR.Hosting.AspNet 5 | 6 | 7 | 8 | 9 | Passes a task returning function into another task returning function so that 10 | it can decide when it starts and returns a task that completes when all are finished 11 | 12 | 13 | 14 | 15 | Initializes the AspNet hosting pipeline 16 | 17 | 18 | 19 | 20 | Initializes the ASP.NET host and sets up the default hub route (~/signalr). Do not call this from your code. 21 | 22 | 23 | 24 | 25 | Extensions to ASP.NET routing for SignalR 26 | 27 | 28 | 29 | 30 | Maps a with the default dependency resolver to the specified url. 31 | 32 | The route table 33 | The type of 34 | The name of the route 35 | url pattern of the route. Should end with catch-all parameter. 36 | The registered route 37 | 38 | routes.MapConnection{MyConnection}("echo", "echo/{*operation}"); 39 | 40 | 41 | 42 | 43 | Maps a with the default dependency resolver to the specified url. 44 | 45 | The route table 46 | The type of 47 | The name of the route 48 | url pattern of the route. Should end with catch-all parameter. 49 | The dependency resolver to use for this connection 50 | The registered route 51 | 52 | 53 | 54 | Maps a with the default dependency resolver to the specified url. 55 | 56 | The route table 57 | The type of 58 | The name of the route 59 | url pattern of the route. Should end with catch-all parameter. 60 | The registered route 61 | 62 | routes.MapConnection("echo", "echo/{*operation}", typeof(MyConnection)); 63 | 64 | 65 | 66 | 67 | Initializes the default hub route (~/signalr). 68 | 69 | The route table 70 | The registered route 71 | 72 | 73 | 74 | Changes the dependency resolver for the default hub route (~/signalr). 75 | 76 | The route table 77 | The dependency resolver to use for the hub connection 78 | The registered route 79 | 80 | 81 | 82 | Changes the default hub route from ~/signalr to a specified url. 83 | 84 | The route table 85 | The url of the hubs route. This should *NOT* contain catch-all parameter. 86 | The registered route 87 | 88 | 89 | 90 | Changes the default hub route from ~/signalr to a specified url. 91 | 92 | The route table 93 | The url of the hubs route. This should *NOT* contain catch-all parameter. 94 | The dependency resolver to use for the hub connection 95 | The registered route 96 | 97 | 98 | 99 | Maps a with the default dependency resolver to the specified url. 100 | 101 | The route table 102 | The name of the route 103 | url pattern of the route. Should end with catch-all parameter. 104 | The type of 105 | The dependency resolver to use for the hub connection 106 | The registered route 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /Source/CallCenter/packages/SignalR.Hosting.AspNet.0.5.1/lib/net45/SignalR.Hosting.AspNet.XML: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SignalR.Hosting.AspNet 5 | 6 | 7 | 8 | 9 | Initializes the AspNet hosting pipeline 10 | 11 | 12 | 13 | 14 | Initializes the ASP.NET host and sets up the default hub route (~/signalr). Do not call this from your code. 15 | 16 | 17 | 18 | 19 | Extensions to ASP.NET routing for SignalR 20 | 21 | 22 | 23 | 24 | Maps a with the default dependency resolver to the specified url. 25 | 26 | The route table 27 | The type of 28 | The name of the route 29 | url pattern of the route. Should end with catch-all parameter. 30 | The registered route 31 | 32 | routes.MapConnection{MyConnection}("echo", "echo/{*operation}"); 33 | 34 | 35 | 36 | 37 | Maps a with the default dependency resolver to the specified url. 38 | 39 | The route table 40 | The type of 41 | The name of the route 42 | url pattern of the route. Should end with catch-all parameter. 43 | The dependency resolver to use for this connection 44 | The registered route 45 | 46 | 47 | 48 | Maps a with the default dependency resolver to the specified url. 49 | 50 | The route table 51 | The type of 52 | The name of the route 53 | url pattern of the route. Should end with catch-all parameter. 54 | The registered route 55 | 56 | routes.MapConnection("echo", "echo/{*operation}", typeof(MyConnection)); 57 | 58 | 59 | 60 | 61 | Initializes the default hub route (~/signalr). 62 | 63 | The route table 64 | The registered route 65 | 66 | 67 | 68 | Changes the dependency resolver for the default hub route (~/signalr). 69 | 70 | The route table 71 | The dependency resolver to use for the hub connection 72 | The registered route 73 | 74 | 75 | 76 | Changes the default hub route from ~/signalr to a specified url. 77 | 78 | The route table 79 | The url of the hubs route. This should *NOT* contain catch-all parameter. 80 | The registered route 81 | 82 | 83 | 84 | Changes the default hub route from ~/signalr to a specified url. 85 | 86 | The route table 87 | The url of the hubs route. This should *NOT* contain catch-all parameter. 88 | The dependency resolver to use for the hub connection 89 | The registered route 90 | 91 | 92 | 93 | Maps a with the default dependency resolver to the specified url. 94 | 95 | The route table 96 | The name of the route 97 | url pattern of the route. Should end with catch-all parameter. 98 | The type of 99 | The dependency resolver to use for the hub connection 100 | The registered route 101 | 102 | 103 | 104 | Passes a task returning function into another task returning function so that 105 | it can decide when it starts and returns a task that completes when all are finished 106 | 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.AspNet.WebApi.WebHost.4.0.20505.0/lib/net40/System.Web.Http.WebHost.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | System.Web.Http.WebHost 5 | 6 | 7 | 8 | Provides a global for ASP applications. 9 | 10 | 11 | Gets the global . 12 | 13 | 14 | Extension methods for 15 | 16 | 17 | Maps the specified route template and sets default constraints, and namespaces. 18 | A reference to the mapped route. 19 | A collection of routes for the application. 20 | The name of the route to map. 21 | The route template for the route. 22 | An object that contains default route values. 23 | 24 | 25 | Maps the specified route template and sets default route values, constraints, and namespaces. 26 | A reference to the mapped route. 27 | A collection of routes for the application. 28 | The name of the route to map. 29 | The route template for the route. 30 | An object that contains default route values. 31 | A set of expressions that specify values for routeTemplate. 32 | 33 | 34 | A that passes ASP.NET requests into the pipeline and write the result back. 35 | 36 | 37 | Initializes a new instance of the class. 38 | The route data. 39 | 40 | 41 | Begins the process request. 42 | An that contains information about the status of the process. 43 | The HTTP context base. 44 | The callback. 45 | The state. 46 | 47 | 48 | Provides an asynchronous process End method when the process ends. 49 | An that contains information about the status of the process. 50 | 51 | 52 | Gets a value indicating whether another request can use the instance. 53 | 54 | 55 | Processes the request. 56 | The HTTP context base. 57 | 58 | 59 | Begins processing the request. 60 | An that contains information about the status of the process. 61 | The HTTP context. 62 | The callback. 63 | The state. 64 | 65 | 66 | Provides an asynchronous process End method when the process ends. 67 | An that contains information about the status of the process. 68 | 69 | 70 | Gets a value indicating whether another request can use the instance. 71 | 72 | 73 | Processes the request. 74 | The HTTP context base. 75 | 76 | 77 | A that returns instances of that can pass requests to a given instance. 78 | 79 | 80 | Initializes a new instance of the class. 81 | 82 | 83 | Provides the object that processes the request. 84 | An object that processes the request. 85 | An object that encapsulates information about the request. 86 | 87 | 88 | Gets the singleton instance. 89 | 90 | 91 | Provides the object that processes the request. 92 | An object that processes the request. 93 | An object that encapsulates information about the request. 94 | 95 | 96 | -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/Content/bootstrap-responsive.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Responsive v2.0.3 3 | * 4 | * Copyright 2012 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world @twitter by @mdo and @fat. 9 | */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}@media(max-width:767px){.visible-phone{display:inherit!important}.hidden-phone{display:none!important}.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}}@media(min-width:768px) and (max-width:979px){.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:18px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.modal{position:absolute;top:10px;right:10px;left:10px;width:auto;margin:0}.modal.fade.in{top:auto}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:auto;margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:20px}.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.762430939%;*margin-left:2.709239449638298%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:99.999999993%;*width:99.9468085036383%}.row-fluid .span11{width:91.436464082%;*width:91.38327259263829%}.row-fluid .span10{width:82.87292817100001%;*width:82.8197366816383%}.row-fluid .span9{width:74.30939226%;*width:74.25620077063829%}.row-fluid .span8{width:65.74585634900001%;*width:65.6926648596383%}.row-fluid .span7{width:57.182320438000005%;*width:57.129128948638304%}.row-fluid .span6{width:48.618784527%;*width:48.5655930376383%}.row-fluid .span5{width:40.055248616%;*width:40.0020571266383%}.row-fluid .span4{width:31.491712705%;*width:31.4385212156383%}.row-fluid .span3{width:22.928176794%;*width:22.874985304638297%}.row-fluid .span2{width:14.364640883%;*width:14.311449393638298%}.row-fluid .span1{width:5.801104972%;*width:5.747913482638298%}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:714px}input.span11,textarea.span11,.uneditable-input.span11{width:652px}input.span10,textarea.span10,.uneditable-input.span10{width:590px}input.span9,textarea.span9,.uneditable-input.span9{width:528px}input.span8,textarea.span8,.uneditable-input.span8{width:466px}input.span7,textarea.span7,.uneditable-input.span7{width:404px}input.span6,textarea.span6,.uneditable-input.span6{width:342px}input.span5,textarea.span5,.uneditable-input.span5{width:280px}input.span4,textarea.span4,.uneditable-input.span4{width:218px}input.span3,textarea.span3,.uneditable-input.span3{width:156px}input.span2,textarea.span2,.uneditable-input.span2{width:94px}input.span1,textarea.span1,.uneditable-input.span1{width:32px}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:30px}.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.564102564%;*margin-left:2.510911074638298%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145300001%;*width:91.3997999636383%}.row-fluid .span10{width:82.905982906%;*width:82.8527914166383%}.row-fluid .span9{width:74.358974359%;*width:74.30578286963829%}.row-fluid .span8{width:65.81196581200001%;*width:65.7587743226383%}.row-fluid .span7{width:57.264957265%;*width:57.2117657756383%}.row-fluid .span6{width:48.717948718%;*width:48.6647572286383%}.row-fluid .span5{width:40.170940171000005%;*width:40.117748681638304%}.row-fluid .span4{width:31.623931624%;*width:31.5707401346383%}.row-fluid .span3{width:23.076923077%;*width:23.0237315876383%}.row-fluid .span2{width:14.529914530000001%;*width:14.4767230406383%}.row-fluid .span1{width:5.982905983%;*width:5.929714493638298%}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:1160px}input.span11,textarea.span11,.uneditable-input.span11{width:1060px}input.span10,textarea.span10,.uneditable-input.span10{width:960px}input.span9,textarea.span9,.uneditable-input.span9{width:860px}input.span8,textarea.span8,.uneditable-input.span8{width:760px}input.span7,textarea.span7,.uneditable-input.span7{width:660px}input.span6,textarea.span6,.uneditable-input.span6{width:560px}input.span5,textarea.span5,.uneditable-input.span5{width:460px}input.span4,textarea.span4,.uneditable-input.span4{width:360px}input.span3,textarea.span3,.uneditable-input.span3{width:260px}input.span2,textarea.span2,.uneditable-input.span2{width:160px}input.span1,textarea.span1,.uneditable-input.span1{width:60px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top{position:static;margin-bottom:18px}.navbar-fixed-top .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 9px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#999;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .dropdown-menu a:hover{background-color:#222}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:block;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:9px 15px;margin:9px 0;border-top:1px solid #222;border-bottom:1px solid #222;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} 10 | -------------------------------------------------------------------------------- /Source/CallCenter/packages/Twitter.Bootstrap.2.0.3/content/Content/bootstrap-responsive.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Responsive v2.0.3 3 | * 4 | * Copyright 2012 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world @twitter by @mdo and @fat. 9 | */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}@media(max-width:767px){.visible-phone{display:inherit!important}.hidden-phone{display:none!important}.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}}@media(min-width:768px) and (max-width:979px){.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:18px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.modal{position:absolute;top:10px;right:10px;left:10px;width:auto;margin:0}.modal.fade.in{top:auto}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:auto;margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:20px}.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.762430939%;*margin-left:2.709239449638298%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:99.999999993%;*width:99.9468085036383%}.row-fluid .span11{width:91.436464082%;*width:91.38327259263829%}.row-fluid .span10{width:82.87292817100001%;*width:82.8197366816383%}.row-fluid .span9{width:74.30939226%;*width:74.25620077063829%}.row-fluid .span8{width:65.74585634900001%;*width:65.6926648596383%}.row-fluid .span7{width:57.182320438000005%;*width:57.129128948638304%}.row-fluid .span6{width:48.618784527%;*width:48.5655930376383%}.row-fluid .span5{width:40.055248616%;*width:40.0020571266383%}.row-fluid .span4{width:31.491712705%;*width:31.4385212156383%}.row-fluid .span3{width:22.928176794%;*width:22.874985304638297%}.row-fluid .span2{width:14.364640883%;*width:14.311449393638298%}.row-fluid .span1{width:5.801104972%;*width:5.747913482638298%}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:714px}input.span11,textarea.span11,.uneditable-input.span11{width:652px}input.span10,textarea.span10,.uneditable-input.span10{width:590px}input.span9,textarea.span9,.uneditable-input.span9{width:528px}input.span8,textarea.span8,.uneditable-input.span8{width:466px}input.span7,textarea.span7,.uneditable-input.span7{width:404px}input.span6,textarea.span6,.uneditable-input.span6{width:342px}input.span5,textarea.span5,.uneditable-input.span5{width:280px}input.span4,textarea.span4,.uneditable-input.span4{width:218px}input.span3,textarea.span3,.uneditable-input.span3{width:156px}input.span2,textarea.span2,.uneditable-input.span2{width:94px}input.span1,textarea.span1,.uneditable-input.span1{width:32px}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:30px}.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.564102564%;*margin-left:2.510911074638298%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145300001%;*width:91.3997999636383%}.row-fluid .span10{width:82.905982906%;*width:82.8527914166383%}.row-fluid .span9{width:74.358974359%;*width:74.30578286963829%}.row-fluid .span8{width:65.81196581200001%;*width:65.7587743226383%}.row-fluid .span7{width:57.264957265%;*width:57.2117657756383%}.row-fluid .span6{width:48.717948718%;*width:48.6647572286383%}.row-fluid .span5{width:40.170940171000005%;*width:40.117748681638304%}.row-fluid .span4{width:31.623931624%;*width:31.5707401346383%}.row-fluid .span3{width:23.076923077%;*width:23.0237315876383%}.row-fluid .span2{width:14.529914530000001%;*width:14.4767230406383%}.row-fluid .span1{width:5.982905983%;*width:5.929714493638298%}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:1160px}input.span11,textarea.span11,.uneditable-input.span11{width:1060px}input.span10,textarea.span10,.uneditable-input.span10{width:960px}input.span9,textarea.span9,.uneditable-input.span9{width:860px}input.span8,textarea.span8,.uneditable-input.span8{width:760px}input.span7,textarea.span7,.uneditable-input.span7{width:660px}input.span6,textarea.span6,.uneditable-input.span6{width:560px}input.span5,textarea.span5,.uneditable-input.span5{width:460px}input.span4,textarea.span4,.uneditable-input.span4{width:360px}input.span3,textarea.span3,.uneditable-input.span3{width:260px}input.span2,textarea.span2,.uneditable-input.span2{width:160px}input.span1,textarea.span1,.uneditable-input.span1{width:60px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top{position:static;margin-bottom:18px}.navbar-fixed-top .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 9px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#999;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .dropdown-menu a:hover{background-color:#222}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:block;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:9px 15px;margin:9px 0;border-top:1px solid #222;border-bottom:1px solid #222;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} 10 | -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.Web.Infrastructure.1.0.0.0/tools/VS.psm1: -------------------------------------------------------------------------------- 1 | function Get-VsFileSystem { 2 | $componentModel = Get-VSComponentModel 3 | $fileSystemProvider = $componentModel.GetService([NuGet.VisualStudio.IFileSystemProvider]) 4 | $solutionManager = $componentModel.GetService([NuGet.VisualStudio.ISolutionManager]) 5 | 6 | $fileSystem = $fileSystemProvider.GetFileSystem($solutionManager.SolutionDirectory) 7 | 8 | return $fileSystem 9 | } 10 | 11 | function Get-ProjectRoot($project) { 12 | try { 13 | $project.Properties.Item("FullPath").Value 14 | } catch { 15 | 16 | } 17 | } 18 | 19 | Export-ModuleMember * 20 | # SIG # Begin signature block 21 | # MIIbJQYJKoZIhvcNAQcCoIIbFjCCGxICAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB 22 | # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR 23 | # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUjXEaZx7/tt/6noN5dH+MnQ7K 24 | # 82+gghXyMIIEoDCCA4igAwIBAgIKYRr16gAAAAAAajANBgkqhkiG9w0BAQUFADB5 25 | # MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk 26 | # bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN 27 | # aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTExMDEyMjM5MTdaFw0xMzAy 28 | # MDEyMjQ5MTdaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ 29 | # MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u 30 | # MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w 31 | # ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDqR/PfCN/MR4GJYnddXm5 32 | # z5NLYZK2lfLvqiWdd/NLWm1JkMzgMbimAjeHdK/yrKBglLjHTiX+h9hY0iBOLfE6 33 | # ZS6SW6Zd5pV14DTlUCGcfTmXto5EI2YWpmUg4Dbrivqd4stgAfwqZMiHRRTxHsrN 34 | # KKy65VdZJtzsxUpsmuYDGikyPwCeg6wlDYTM3W+2arst94Q6bWYx6DZw/4SSkPdA 35 | # dp6ILkfWKxH3j+ASZSu8X+8V/PfsAWi3RQzuwASwDre9eGuujeRQ8TXingHS4etb 36 | # cYJhISDz1MneHLgCRWVJvn61N4anzexa37h2IPwRE1H8+ipQqrQe0DqAvmPK3IFH 37 | # AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUAAOm 38 | # 5aLEcaKCw492zSwNEuKdSigwDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFFdF 39 | # dBxdsPbIQwXgjFQtjzKn/kiWMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu 40 | # bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z 41 | # MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 42 | # d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw 43 | # MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQCQ9/h5kmnIj2uKYO58wa4+gThS9LrP 44 | # mYzwLT0T9K72YfB1OE5Zxj8HQ/kHfMdT5JFi1qh2FHWUhlmyuhDCf2wVPxkVww4v 45 | # fjnDz/5UJ1iUNWEHeW1RV7AS4epjcooWZuufOSozBDWLg94KXjG8nx3uNUUNXceX 46 | # 3yrgnX86SfvjSEUy3zZtCW52VVWsNMV5XW4C1cyXifOoaH0U6ml7C1V9AozETTC8 47 | # Yvd7peygkvAOKg6vV5spSM22IaXqHe/cCfWrYtYN7DVfa5nUsfB3Uvl36T9smFbA 48 | # XDahTl4Q9Ix6EZcgIDEIeW5yFl8cMFeby3yiVfVwbHjsoUMgruywNYsYMIIEujCC 49 | # A6KgAwIBAgIKYQUZlgAAAAAAGzANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV 50 | # UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE 51 | # ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt 52 | # ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE5WhcNMTIxMDI1MjA0MjE5WjCBszEL 53 | # MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v 54 | # bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q 55 | # UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjlFNzgtODY0Qi0wMzlEMSUwIwYD 56 | # VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B 57 | # AQEFAAOCAQ8AMIIBCgKCAQEA08s7U6KfRKN6q01WcVOKd6o3k34BPv2rAqNTqf/R 58 | # sSLFAJDndW7uGOiBDhPF2GEAvh+gdjsEDQTFBKCo/ENTBqEEBLkLkpgCYjjv1DMS 59 | # 9ys9e++tRVeFlSCf12M0nGJGjr6u4NmeOfapVf3P53fmNRPvXOi/SJNPGkMHWDiK 60 | # f4UUbOrJ0Et6gm7L0xVgCBSJlKhbPzrJPyB9bS9YGn3Kiji8w8I5aNgtWBoj7SoQ 61 | # CFogjIKl7dGXRZKFzMM3g98NmHzF07bgmVPYeAj15SMhB2KGWmppGf1w+VM0gfcl 62 | # MRmGh4vAVZr9qkw1Ff1b6ZXJq1OYKV8speElD2TF8rAndQIDAQABo4IBCTCCAQUw 63 | # HQYDVR0OBBYEFHkj56ENvlUsaBgpYoJn1vPhNjhaMB8GA1UdIwQYMBaAFCM0+NlS 64 | # RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj 65 | # cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD 66 | # QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p 67 | # Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw 68 | # EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAEfCdoFbMd1v 69 | # 0zyZ8npsfpcTUCwFFxsQuEShtYz0Vs+9sCG0ZG1hHNju6Ov1ku5DohhEw/r67622 70 | # XH+XbUu1Q/snYXgIVHyx+a+YCrR0xKroLVDEff59TqGZ1icot67Y37GPgyKOzvN5 71 | # /GEUbb/rzISw36O7WwW36lT1Yh1sJ6ZjS/rjofq734WWZWlTsLZxmGQmZr3F8Vxi 72 | # vJH0PZxLQgANzzgFFCZa3CoFS39qmTjY3XOZos6MUCSepOv1P4p4zFSZXSVmpEEG 73 | # KK9JxLRSlOzeAoNk/k3U/0ui/CmA2+4/qzztM4jKvyJg0Fw7BLAKtJhtPKc6T5rR 74 | # ARYRYopBdqAwggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0GCSqGSIb3DQEBBQUA 75 | # MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv 76 | # ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 77 | # eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMxMzAzMDlaMHcxCzAJBgNVBAYTAlVT 78 | # MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK 79 | # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1l 80 | # LVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+hbLHf 81 | # 20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0UytdDAgEesH1VSVFUmUG0KSrphc 82 | # MCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN+kXP 83 | # CdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM5AMs+2qQkDBuh/NZMJ36 84 | # ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJgp+E 85 | # 7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OToWECtR0Nsfz3m7IB 86 | # ziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O 87 | # BBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3 88 | # FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJgQFYnl+UlE/wq4QpTlVnkpKFjpGEw 89 | # XzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29m 90 | # dDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 91 | # ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwu 92 | # bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0 93 | # LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWlj 94 | # cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MBMGA1Ud 95 | # JQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3ptK13 96 | # 2855UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ3XpA4le7r1iaHOEd 97 | # AYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEqJCJw 98 | # +/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/4gcaMvnMMUp2 99 | # MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/FNSteo7/rvH0LQnvUU3Ih7jDKu3hl 100 | # XFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpiKe+imyk0 101 | # BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0NbhOxXEjEiZ2CzxSjHFaRkMUvLOz 102 | # sE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a6lbv 103 | # pt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZhtG6hE6a/qkfwEm/9ijJssv7f 104 | # UciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa2ZKH 105 | # E3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kLfchpyOZu6qeXzjEp/w7F 106 | # W1zYTRuh2Povnj8uVRZryROj/TCCBoEwggRpoAMCAQICCmEVCCcAAAAAAAwwDQYJ 107 | # KoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixk 108 | # ARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh 109 | # dGUgQXV0aG9yaXR5MB4XDTA2MDEyNTIzMjIzMloXDTE3MDEyNTIzMzIzMloweTEL 110 | # MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v 111 | # bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj 112 | # cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw 113 | # ggEKAoIBAQCfjd+FN4yxBlZmNk7UCus2I5Eer6uNWOnEz8GfOgokxMTEXrDuFRTF 114 | # +j6ZM2sZaXL0fAVf5ZklRNc1GYqQ3CiOkAzv1ZBhrd7cGHAtg8lvr4Us+N25uTD9 115 | # cXgcg/3IqbmCZw16uMEJwrwWl1c/HJjTadcwkJCQjTAf2CbUnnuI2eIJ7ZdJResE 116 | # UoF1e7i1IrguVrvXz6lOPAqDoqg6xa22AQ5qzyK0Ix9s1Sfnt37BtNUyrXklHEKG 117 | # 4p2F9FfaG1kvLSaSKcWz14WjnmBalOZ7nHtegjRLbf/U7ifQotzRkAzOfQ4VfIis 118 | # NMfAbJiESslEeWgo3yKDDbiKLEhh4v4RAgMBAAGjggIjMIICHzAQBgkrBgEEAYI3 119 | # FQEEAwIBADAdBgNVHQ4EFgQUV0V0HF2w9shDBeCMVC2PMqf+SJYwCwYDVR0PBAQD 120 | # AgHGMA8GA1UdEwEB/wQFMAMBAf8wgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8 121 | # KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is 122 | # ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj 123 | # YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB 124 | # hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy 125 | # b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho 126 | # dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD 127 | # ZXJ0LmNydDB2BgNVHSAEbzBtMGsGCSsGAQQBgjcVLzBeMFwGCCsGAQUFBwICMFAe 128 | # TgBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAA2ACAATQBpAGMAcgBvAHMA 129 | # bwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4ALjATBgNVHSUEDDAKBggrBgEF 130 | # BQcDAzANBgkqhkiG9w0BAQUFAAOCAgEAMLywIKRioKfvOSZhPdysxpnQhsQu9YMy 131 | # ZV4iPpvWhvjotp/Ki9Y7dQuhkT5M3WR0jEnyiIwYZ2z+FWZGuDpGQpfIkTfUJLHn 132 | # rNPqQRSDd9PJTwVfoxRSv5akLz5WWxB1zlPDzgVUabRlySSlD+EluBq5TeUCuVAe 133 | # T7OYDB2VAu4iWa0iywV0CwRFewRZ4NgPs+tM+GDdwnie0bqfa/fz7n5EEUDSvbqb 134 | # SxYIbqS+VeSmOBKjSPQcVXqKINF9/pHblI8vwntrpmSFT6PlLDQpXQu/9cc4L8Qg 135 | # xFYx9mnOhfgKkezQ1q66OAUM625PTJwDKaqi/BigKQwNXFxWI1faHJYNyCY2wUTL 136 | # 5eHmb4nnj+mYtXPTeOPtowE8dOVevGz2IYlnBeyXnbWx/a+m6XKlwzThL5/59Go5 137 | # 4i0Eglv80JyufJ0R+ea1Uxl0ujlKOet9QrNKOzc9wkp7J5jn4k6bG0pUOGojN75q 138 | # t0ju6kINSSSRjrcELpdv5OdFu49N/WDZ11nC2IDWYDR7t6GTIP6BuKqlXAnpig2+ 139 | # KE1+1+gP7WV40TFfuWbb30LnC8wCB43f/yAGo0VltLMyjS6R4k20qcn6vGsEDrKf 140 | # 6p/epMkKlvSN99iYqPCFAghZpCCmLAsa8lIG7WnlZBgb4KOr3sp8FGFDuGX1NqNV 141 | # EytnLE0bMEwxggSdMIIEmQIBATCBhzB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK 142 | # V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 143 | # IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD 144 | # QQIKYRr16gAAAAAAajAJBgUrDgMCGgUAoIHKMBkGCSqGSIb3DQEJAzEMBgorBgEE 145 | # AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ 146 | # BDEWBBS5D8CFNM/aE6c8XOM5Hh0+N422ITBqBgorBgEEAYI3AgEMMVwwWqA4gDYA 147 | # TQBpAGMAcgBvAHMAbwBmAHQAIABBAFMAUAAuAE4ARQBUACAAVwBlAGIAIABQAGEA 148 | # ZwBlAHOhHoAcaHR0cDovL3d3dy5hc3AubmV0L3dlYm1hdHJpeDANBgkqhkiG9w0B 149 | # AQEFAASCAQAOnCgt85o0rg9FynTO++5HSg2WvHyB2nNfMOH60O09cMLGfvnh0Bgq 150 | # ft43lFD/8FaWeJq2zN/gPK1qFQbHZ2y4rCvMeBmgaPZm/u/srXUHU10GcBqjvScM 151 | # MX0h94fRX7mDkb1XLlPwm0QQZvOvebUzbsMIhA6OUahAMDTiR/7ZwDy23l7oO9u/ 152 | # 7ZZRkbWpJr13AJ7cJc3iSvEpUJfxdbcxuUR3pakqWCQ7fX1chXuKw/f3NgSWe/un 153 | # jpXDDXWpurjpqKKj3CFf1gIvd0ag1yfxletiEAuEFlcgyuPEaTKDkHbab6CROdfT 154 | # a9YOC3fmp6lJEXRldTkWXs/XGoV9IZoDoYICHTCCAhkGCSqGSIb3DQEJBjGCAgow 155 | # ggIGAgEBMIGFMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw 156 | # DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x 157 | # ITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQQIKYQUZlgAAAAAAGzAH 158 | # BgUrDgMCGqBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF 159 | # MQ8XDTExMTIzMTAyNDcxN1owIwYJKoZIhvcNAQkEMRYEFMD86sE3yf/lRFJLPdTR 160 | # mIzGknFjMA0GCSqGSIb3DQEBBQUABIIBAMSqWufi4zcg1wajaj5tSQugG1z3dhGA 161 | # hrU27USf9T49tR+HjpY/AY661PphIoozbo60sC7UYooBIJrelLfEFuWAF9LGNZ3M 162 | # uje2pI3eS3kajfLV9+UjrrSqa44MyYvi6cbiWagZ99ehcSboCLInB1HBrwiihpSM 163 | # VGfMdR/CpSub4m/vGE2Guo9ERA5cAu8k/P7/7u+YPIrUf6/IDglLplwmhAavTHY1 164 | # DL6GO3vQkmBio0XFVxqVegTnaU8WZTE4V1PgH7FV20MweCVxeDCyE6pY5Mu7ZULd 165 | # oBmomH8fas9OhqZpILWUf3eE9vv2A/rqxnuc3pKPJGX1bjVhVK7oIQE= 166 | # SIG # End signature block 167 | -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.Web.Infrastructure.1.0.0.0/tools/Uninstall.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package, $project) 2 | 3 | if ($project.Type -eq 'Web Site') { 4 | Import-Module (Join-Path $toolsPath VS.psd1) 5 | 6 | $projectRoot = Get-ProjectRoot $project 7 | if (!$projectRoot) { 8 | return; 9 | } 10 | $binDirectory = Join-Path $projectRoot "bin" 11 | $srcDirectory = Join-Path $installPath "lib\net40\" 12 | $fileSystem = Get-VsFileSystem 13 | 14 | ls $srcDirectory -Filter *.dll | %{ 15 | $fileName = $_.Name 16 | $fileInBin = Join-Path $binDirectory $fileName 17 | if ($fileSystem.FileExists($fileInBin) -and ((Get-Item $fileInBin).Length -eq $_.Length)) { 18 | # If a corresponding file exists in bin and has the exact file size as the one inside the package, it's most likely the same file. 19 | try { 20 | $fileSystem.DeleteFile($fileInBin) 21 | 22 | } catch { 23 | # We don't want an exception to surface if we can't delete the file 24 | } 25 | } 26 | } 27 | } 28 | # SIG # Begin signature block 29 | # MIIbJQYJKoZIhvcNAQcCoIIbFjCCGxICAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB 30 | # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR 31 | # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU5eFmkhW/FlQBz1yONQogDyby 32 | # xJGgghXyMIIEoDCCA4igAwIBAgIKYRr16gAAAAAAajANBgkqhkiG9w0BAQUFADB5 33 | # MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk 34 | # bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN 35 | # aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTExMDEyMjM5MTdaFw0xMzAy 36 | # MDEyMjQ5MTdaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ 37 | # MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u 38 | # MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w 39 | # ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDqR/PfCN/MR4GJYnddXm5 40 | # z5NLYZK2lfLvqiWdd/NLWm1JkMzgMbimAjeHdK/yrKBglLjHTiX+h9hY0iBOLfE6 41 | # ZS6SW6Zd5pV14DTlUCGcfTmXto5EI2YWpmUg4Dbrivqd4stgAfwqZMiHRRTxHsrN 42 | # KKy65VdZJtzsxUpsmuYDGikyPwCeg6wlDYTM3W+2arst94Q6bWYx6DZw/4SSkPdA 43 | # dp6ILkfWKxH3j+ASZSu8X+8V/PfsAWi3RQzuwASwDre9eGuujeRQ8TXingHS4etb 44 | # cYJhISDz1MneHLgCRWVJvn61N4anzexa37h2IPwRE1H8+ipQqrQe0DqAvmPK3IFH 45 | # AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUAAOm 46 | # 5aLEcaKCw492zSwNEuKdSigwDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFFdF 47 | # dBxdsPbIQwXgjFQtjzKn/kiWMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu 48 | # bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z 49 | # MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 50 | # d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw 51 | # MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQCQ9/h5kmnIj2uKYO58wa4+gThS9LrP 52 | # mYzwLT0T9K72YfB1OE5Zxj8HQ/kHfMdT5JFi1qh2FHWUhlmyuhDCf2wVPxkVww4v 53 | # fjnDz/5UJ1iUNWEHeW1RV7AS4epjcooWZuufOSozBDWLg94KXjG8nx3uNUUNXceX 54 | # 3yrgnX86SfvjSEUy3zZtCW52VVWsNMV5XW4C1cyXifOoaH0U6ml7C1V9AozETTC8 55 | # Yvd7peygkvAOKg6vV5spSM22IaXqHe/cCfWrYtYN7DVfa5nUsfB3Uvl36T9smFbA 56 | # XDahTl4Q9Ix6EZcgIDEIeW5yFl8cMFeby3yiVfVwbHjsoUMgruywNYsYMIIEujCC 57 | # A6KgAwIBAgIKYQUZlgAAAAAAGzANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV 58 | # UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE 59 | # ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt 60 | # ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE5WhcNMTIxMDI1MjA0MjE5WjCBszEL 61 | # MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v 62 | # bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q 63 | # UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjlFNzgtODY0Qi0wMzlEMSUwIwYD 64 | # VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B 65 | # AQEFAAOCAQ8AMIIBCgKCAQEA08s7U6KfRKN6q01WcVOKd6o3k34BPv2rAqNTqf/R 66 | # sSLFAJDndW7uGOiBDhPF2GEAvh+gdjsEDQTFBKCo/ENTBqEEBLkLkpgCYjjv1DMS 67 | # 9ys9e++tRVeFlSCf12M0nGJGjr6u4NmeOfapVf3P53fmNRPvXOi/SJNPGkMHWDiK 68 | # f4UUbOrJ0Et6gm7L0xVgCBSJlKhbPzrJPyB9bS9YGn3Kiji8w8I5aNgtWBoj7SoQ 69 | # CFogjIKl7dGXRZKFzMM3g98NmHzF07bgmVPYeAj15SMhB2KGWmppGf1w+VM0gfcl 70 | # MRmGh4vAVZr9qkw1Ff1b6ZXJq1OYKV8speElD2TF8rAndQIDAQABo4IBCTCCAQUw 71 | # HQYDVR0OBBYEFHkj56ENvlUsaBgpYoJn1vPhNjhaMB8GA1UdIwQYMBaAFCM0+NlS 72 | # RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj 73 | # cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD 74 | # QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p 75 | # Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw 76 | # EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAEfCdoFbMd1v 77 | # 0zyZ8npsfpcTUCwFFxsQuEShtYz0Vs+9sCG0ZG1hHNju6Ov1ku5DohhEw/r67622 78 | # XH+XbUu1Q/snYXgIVHyx+a+YCrR0xKroLVDEff59TqGZ1icot67Y37GPgyKOzvN5 79 | # /GEUbb/rzISw36O7WwW36lT1Yh1sJ6ZjS/rjofq734WWZWlTsLZxmGQmZr3F8Vxi 80 | # vJH0PZxLQgANzzgFFCZa3CoFS39qmTjY3XOZos6MUCSepOv1P4p4zFSZXSVmpEEG 81 | # KK9JxLRSlOzeAoNk/k3U/0ui/CmA2+4/qzztM4jKvyJg0Fw7BLAKtJhtPKc6T5rR 82 | # ARYRYopBdqAwggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0GCSqGSIb3DQEBBQUA 83 | # MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv 84 | # ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 85 | # eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMxMzAzMDlaMHcxCzAJBgNVBAYTAlVT 86 | # MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK 87 | # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1l 88 | # LVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+hbLHf 89 | # 20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0UytdDAgEesH1VSVFUmUG0KSrphc 90 | # MCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN+kXP 91 | # CdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM5AMs+2qQkDBuh/NZMJ36 92 | # ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJgp+E 93 | # 7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OToWECtR0Nsfz3m7IB 94 | # ziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O 95 | # BBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3 96 | # FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJgQFYnl+UlE/wq4QpTlVnkpKFjpGEw 97 | # XzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29m 98 | # dDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 99 | # ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwu 100 | # bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0 101 | # LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWlj 102 | # cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MBMGA1Ud 103 | # JQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3ptK13 104 | # 2855UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ3XpA4le7r1iaHOEd 105 | # AYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEqJCJw 106 | # +/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/4gcaMvnMMUp2 107 | # MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/FNSteo7/rvH0LQnvUU3Ih7jDKu3hl 108 | # XFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpiKe+imyk0 109 | # BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0NbhOxXEjEiZ2CzxSjHFaRkMUvLOz 110 | # sE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a6lbv 111 | # pt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZhtG6hE6a/qkfwEm/9ijJssv7f 112 | # UciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa2ZKH 113 | # E3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kLfchpyOZu6qeXzjEp/w7F 114 | # W1zYTRuh2Povnj8uVRZryROj/TCCBoEwggRpoAMCAQICCmEVCCcAAAAAAAwwDQYJ 115 | # KoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixk 116 | # ARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh 117 | # dGUgQXV0aG9yaXR5MB4XDTA2MDEyNTIzMjIzMloXDTE3MDEyNTIzMzIzMloweTEL 118 | # MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v 119 | # bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj 120 | # cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw 121 | # ggEKAoIBAQCfjd+FN4yxBlZmNk7UCus2I5Eer6uNWOnEz8GfOgokxMTEXrDuFRTF 122 | # +j6ZM2sZaXL0fAVf5ZklRNc1GYqQ3CiOkAzv1ZBhrd7cGHAtg8lvr4Us+N25uTD9 123 | # cXgcg/3IqbmCZw16uMEJwrwWl1c/HJjTadcwkJCQjTAf2CbUnnuI2eIJ7ZdJResE 124 | # UoF1e7i1IrguVrvXz6lOPAqDoqg6xa22AQ5qzyK0Ix9s1Sfnt37BtNUyrXklHEKG 125 | # 4p2F9FfaG1kvLSaSKcWz14WjnmBalOZ7nHtegjRLbf/U7ifQotzRkAzOfQ4VfIis 126 | # NMfAbJiESslEeWgo3yKDDbiKLEhh4v4RAgMBAAGjggIjMIICHzAQBgkrBgEEAYI3 127 | # FQEEAwIBADAdBgNVHQ4EFgQUV0V0HF2w9shDBeCMVC2PMqf+SJYwCwYDVR0PBAQD 128 | # AgHGMA8GA1UdEwEB/wQFMAMBAf8wgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8 129 | # KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is 130 | # ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj 131 | # YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB 132 | # hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy 133 | # b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho 134 | # dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD 135 | # ZXJ0LmNydDB2BgNVHSAEbzBtMGsGCSsGAQQBgjcVLzBeMFwGCCsGAQUFBwICMFAe 136 | # TgBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAA2ACAATQBpAGMAcgBvAHMA 137 | # bwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4ALjATBgNVHSUEDDAKBggrBgEF 138 | # BQcDAzANBgkqhkiG9w0BAQUFAAOCAgEAMLywIKRioKfvOSZhPdysxpnQhsQu9YMy 139 | # ZV4iPpvWhvjotp/Ki9Y7dQuhkT5M3WR0jEnyiIwYZ2z+FWZGuDpGQpfIkTfUJLHn 140 | # rNPqQRSDd9PJTwVfoxRSv5akLz5WWxB1zlPDzgVUabRlySSlD+EluBq5TeUCuVAe 141 | # T7OYDB2VAu4iWa0iywV0CwRFewRZ4NgPs+tM+GDdwnie0bqfa/fz7n5EEUDSvbqb 142 | # SxYIbqS+VeSmOBKjSPQcVXqKINF9/pHblI8vwntrpmSFT6PlLDQpXQu/9cc4L8Qg 143 | # xFYx9mnOhfgKkezQ1q66OAUM625PTJwDKaqi/BigKQwNXFxWI1faHJYNyCY2wUTL 144 | # 5eHmb4nnj+mYtXPTeOPtowE8dOVevGz2IYlnBeyXnbWx/a+m6XKlwzThL5/59Go5 145 | # 4i0Eglv80JyufJ0R+ea1Uxl0ujlKOet9QrNKOzc9wkp7J5jn4k6bG0pUOGojN75q 146 | # t0ju6kINSSSRjrcELpdv5OdFu49N/WDZ11nC2IDWYDR7t6GTIP6BuKqlXAnpig2+ 147 | # KE1+1+gP7WV40TFfuWbb30LnC8wCB43f/yAGo0VltLMyjS6R4k20qcn6vGsEDrKf 148 | # 6p/epMkKlvSN99iYqPCFAghZpCCmLAsa8lIG7WnlZBgb4KOr3sp8FGFDuGX1NqNV 149 | # EytnLE0bMEwxggSdMIIEmQIBATCBhzB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK 150 | # V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 151 | # IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD 152 | # QQIKYRr16gAAAAAAajAJBgUrDgMCGgUAoIHKMBkGCSqGSIb3DQEJAzEMBgorBgEE 153 | # AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ 154 | # BDEWBBRx+YgRrX5dASbxCVCxyd7ne/BLVDBqBgorBgEEAYI3AgEMMVwwWqA4gDYA 155 | # TQBpAGMAcgBvAHMAbwBmAHQAIABBAFMAUAAuAE4ARQBUACAAVwBlAGIAIABQAGEA 156 | # ZwBlAHOhHoAcaHR0cDovL3d3dy5hc3AubmV0L3dlYm1hdHJpeDANBgkqhkiG9w0B 157 | # AQEFAASCAQAwsAzaCdBDpwei518RWEy+vbAGwNcMOB1ZOLEijtZSyarlaha5pjhb 158 | # pjrCDVpmEauR+LmF9101ej/27DeLVdXQ4I3+MmW9AB75IZ50/CJjiMfRgDEGWau0 159 | # NTKKA62iOY7Bu0hLN5cYeJnFSc8XE9ehq5MvwpNZZkXh39MqKl/CsFy+prWQp1/x 160 | # GiTYkZnM6jL9GpfHQBX8NXqlUTeENJBH8KpDd9fpFvmRDi084xJU28O98uWOnQPn 161 | # ndze19YIRcFq0Xs3DWARlawYTQdVp+/ud05tFI2LAb27ExK892tuq47ffVjQDta0 162 | # f6JA80pQ9iP6yUk/awhiMqKFxpdWUnK5oYICHTCCAhkGCSqGSIb3DQEJBjGCAgow 163 | # ggIGAgEBMIGFMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw 164 | # DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x 165 | # ITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQQIKYQUZlgAAAAAAGzAH 166 | # BgUrDgMCGqBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF 167 | # MQ8XDTExMTIzMTAyNDcxN1owIwYJKoZIhvcNAQkEMRYEFG8OGHFrod8cqU9j8yCh 168 | # dVpgbfV9MA0GCSqGSIb3DQEBBQUABIIBAEl95dVnVN+61kqnMy6QKVQ483Zx3w3i 169 | # RB0gWZXbMfWzO4kfyoFzww4OHXvx/8ilGPbKLFUnL7Xf3I7kCrJbG4H2ibUh6ZmT 170 | # 7B4X4QGCa0FWiEyuEkzwYaFo3FR0tfUk2z3TBsqmKLoSSV2xbMg/zBCbpU47g3uh 171 | # pRpD5Mf6KlStl+ZOOaMVX58Hkea2aSb77oFBYh9DaENOMGLGWC21TLWEI4tnjB7v 172 | # tzVwFQrbFjXUuIlkjw/2y9D1YpgzzA8p4rdjm6gXXlqeNc7TL0jpfrH0HU77AwPs 173 | # AS/AhHbXuf3wh/1mABJpArpIKV4wTMx2dPer1BNeQy/OCUMOOaaJ6ig= 174 | # SIG # End signature block 175 | -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.Web.Infrastructure.1.0.0.0/tools/Install.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package, $project) 2 | 3 | if ($project.Type -eq 'Web Site') { 4 | Import-Module (Join-Path $toolsPath VS.psd1) 5 | 6 | $srcFiles = Join-Path $installPath "lib\net40\*.dll" 7 | 8 | $projectRoot = Get-ProjectRoot $project 9 | if (!$projectRoot) { 10 | return; 11 | } 12 | 13 | $destDirectory = Join-Path $projectRoot "bin" 14 | $fileSystem = Get-VsFileSystem 15 | 16 | ls $srcFiles -Filter *.dll | %{ 17 | $destPath = Join-Path $destDirectory $_.Name 18 | if (!(Test-Path $destPath)) { 19 | $fileStream = $null 20 | try { 21 | $fileStream = [System.IO.File]::OpenRead($_.FullName) 22 | $fileSystem.AddFile($destPath, $fileStream) 23 | } catch { 24 | # We don't want an exception to surface if we can't add the file for some reason 25 | } finally { 26 | if ($fileStream -ne $null) { 27 | $fileStream.Dispose() 28 | } 29 | } 30 | } 31 | } 32 | } 33 | 34 | # SIG # Begin signature block 35 | # MIIbJQYJKoZIhvcNAQcCoIIbFjCCGxICAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB 36 | # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR 37 | # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUoGth3MbLCESGRhoTpqwG6S5P 38 | # cz2gghXyMIIEoDCCA4igAwIBAgIKYRr16gAAAAAAajANBgkqhkiG9w0BAQUFADB5 39 | # MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk 40 | # bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN 41 | # aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTExMDEyMjM5MTdaFw0xMzAy 42 | # MDEyMjQ5MTdaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ 43 | # MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u 44 | # MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w 45 | # ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDqR/PfCN/MR4GJYnddXm5 46 | # z5NLYZK2lfLvqiWdd/NLWm1JkMzgMbimAjeHdK/yrKBglLjHTiX+h9hY0iBOLfE6 47 | # ZS6SW6Zd5pV14DTlUCGcfTmXto5EI2YWpmUg4Dbrivqd4stgAfwqZMiHRRTxHsrN 48 | # KKy65VdZJtzsxUpsmuYDGikyPwCeg6wlDYTM3W+2arst94Q6bWYx6DZw/4SSkPdA 49 | # dp6ILkfWKxH3j+ASZSu8X+8V/PfsAWi3RQzuwASwDre9eGuujeRQ8TXingHS4etb 50 | # cYJhISDz1MneHLgCRWVJvn61N4anzexa37h2IPwRE1H8+ipQqrQe0DqAvmPK3IFH 51 | # AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUAAOm 52 | # 5aLEcaKCw492zSwNEuKdSigwDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFFdF 53 | # dBxdsPbIQwXgjFQtjzKn/kiWMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu 54 | # bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z 55 | # MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 56 | # d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw 57 | # MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQCQ9/h5kmnIj2uKYO58wa4+gThS9LrP 58 | # mYzwLT0T9K72YfB1OE5Zxj8HQ/kHfMdT5JFi1qh2FHWUhlmyuhDCf2wVPxkVww4v 59 | # fjnDz/5UJ1iUNWEHeW1RV7AS4epjcooWZuufOSozBDWLg94KXjG8nx3uNUUNXceX 60 | # 3yrgnX86SfvjSEUy3zZtCW52VVWsNMV5XW4C1cyXifOoaH0U6ml7C1V9AozETTC8 61 | # Yvd7peygkvAOKg6vV5spSM22IaXqHe/cCfWrYtYN7DVfa5nUsfB3Uvl36T9smFbA 62 | # XDahTl4Q9Ix6EZcgIDEIeW5yFl8cMFeby3yiVfVwbHjsoUMgruywNYsYMIIEujCC 63 | # A6KgAwIBAgIKYQUTNgAAAAAAGjANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV 64 | # UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE 65 | # ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt 66 | # ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE3WhcNMTIxMDI1MjA0MjE3WjCBszEL 67 | # MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v 68 | # bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q 69 | # UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjE1OUMtQTNGNy0yNTcwMSUwIwYD 70 | # VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B 71 | # AQEFAAOCAQ8AMIIBCgKCAQEAnDSYGckJKWOZAhZ1qIhXfaG7qUES/GSRpdYFeL93 72 | # 3OzmrrhQTsDjGr3tt/34IIpxOapyknKfignlE++RQe1hJWtRre6oQ7VhQiyd8h2x 73 | # 0vy39Xujc3YTsyuj25RhgFWhD23d2OwW/4V/lp6IfwAujnokumidj8bK9JB5euGb 74 | # 7wZdfvguw2oVnDwUL+fVlMgiG1HLqVWGIbda80ESOZ/wValOqiUrY/uRcjwPfMCW 75 | # ctzBo8EIyt7FybXACl+lnAuqcgpdCkB9LpjQq7KIj4aA6H3RvlVr4FgsyDY/+eYR 76 | # w/BDBYV4AxflLKcpfNPilRcAbNvcrTwZOgLgfWLUzvYdPQIDAQABo4IBCTCCAQUw 77 | # HQYDVR0OBBYEFPaDiyCHEe6Dy9vehaLSaIY3YXSQMB8GA1UdIwQYMBaAFCM0+NlS 78 | # RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj 79 | # cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD 80 | # QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p 81 | # Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw 82 | # EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAGL0BQ1P5xtr 83 | # gudSDN95jKhVgTOX06TKyf6vSNt72m96KE/H0LeJ2NGmmcyRVgA7OOi3Mi/u+c9r 84 | # 2Zje1gL1QlhSa47aQNwWoLPUvyYVy0hCzNP9tPrkRIlmD0IOXvcEnyNIW7SJQcTa 85 | # bPg29D/CHhXfmEwAxLLs3l8BAUOcuELWIsiTmp7JpRhn/EeEHpFdm/J297GOch2A 86 | # djw2EUbKfjpI86/jSfYXM427AGOCnFejVqfDbpCjPpW3/GTRXRjCCwFQY6f889GA 87 | # noTjMjTdV5VAo21+2usuWgi0EAZeMskJ6TKCcRan+savZpiJ+dmetV8QI6N3gPJN 88 | # 1igAclCFvOUwggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0GCSqGSIb3DQEBBQUA 89 | # MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv 90 | # ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 91 | # eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMxMzAzMDlaMHcxCzAJBgNVBAYTAlVT 92 | # MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK 93 | # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1l 94 | # LVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+hbLHf 95 | # 20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0UytdDAgEesH1VSVFUmUG0KSrphc 96 | # MCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN+kXP 97 | # CdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM5AMs+2qQkDBuh/NZMJ36 98 | # ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJgp+E 99 | # 7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OToWECtR0Nsfz3m7IB 100 | # ziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O 101 | # BBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3 102 | # FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJgQFYnl+UlE/wq4QpTlVnkpKFjpGEw 103 | # XzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29m 104 | # dDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 105 | # ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwu 106 | # bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0 107 | # LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWlj 108 | # cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MBMGA1Ud 109 | # JQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3ptK13 110 | # 2855UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ3XpA4le7r1iaHOEd 111 | # AYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEqJCJw 112 | # +/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/4gcaMvnMMUp2 113 | # MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/FNSteo7/rvH0LQnvUU3Ih7jDKu3hl 114 | # XFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpiKe+imyk0 115 | # BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0NbhOxXEjEiZ2CzxSjHFaRkMUvLOz 116 | # sE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a6lbv 117 | # pt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZhtG6hE6a/qkfwEm/9ijJssv7f 118 | # UciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa2ZKH 119 | # E3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kLfchpyOZu6qeXzjEp/w7F 120 | # W1zYTRuh2Povnj8uVRZryROj/TCCBoEwggRpoAMCAQICCmEVCCcAAAAAAAwwDQYJ 121 | # KoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixk 122 | # ARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh 123 | # dGUgQXV0aG9yaXR5MB4XDTA2MDEyNTIzMjIzMloXDTE3MDEyNTIzMzIzMloweTEL 124 | # MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v 125 | # bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj 126 | # cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw 127 | # ggEKAoIBAQCfjd+FN4yxBlZmNk7UCus2I5Eer6uNWOnEz8GfOgokxMTEXrDuFRTF 128 | # +j6ZM2sZaXL0fAVf5ZklRNc1GYqQ3CiOkAzv1ZBhrd7cGHAtg8lvr4Us+N25uTD9 129 | # cXgcg/3IqbmCZw16uMEJwrwWl1c/HJjTadcwkJCQjTAf2CbUnnuI2eIJ7ZdJResE 130 | # UoF1e7i1IrguVrvXz6lOPAqDoqg6xa22AQ5qzyK0Ix9s1Sfnt37BtNUyrXklHEKG 131 | # 4p2F9FfaG1kvLSaSKcWz14WjnmBalOZ7nHtegjRLbf/U7ifQotzRkAzOfQ4VfIis 132 | # NMfAbJiESslEeWgo3yKDDbiKLEhh4v4RAgMBAAGjggIjMIICHzAQBgkrBgEEAYI3 133 | # FQEEAwIBADAdBgNVHQ4EFgQUV0V0HF2w9shDBeCMVC2PMqf+SJYwCwYDVR0PBAQD 134 | # AgHGMA8GA1UdEwEB/wQFMAMBAf8wgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8 135 | # KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is 136 | # ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj 137 | # YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB 138 | # hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy 139 | # b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho 140 | # dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD 141 | # ZXJ0LmNydDB2BgNVHSAEbzBtMGsGCSsGAQQBgjcVLzBeMFwGCCsGAQUFBwICMFAe 142 | # TgBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAA2ACAATQBpAGMAcgBvAHMA 143 | # bwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4ALjATBgNVHSUEDDAKBggrBgEF 144 | # BQcDAzANBgkqhkiG9w0BAQUFAAOCAgEAMLywIKRioKfvOSZhPdysxpnQhsQu9YMy 145 | # ZV4iPpvWhvjotp/Ki9Y7dQuhkT5M3WR0jEnyiIwYZ2z+FWZGuDpGQpfIkTfUJLHn 146 | # rNPqQRSDd9PJTwVfoxRSv5akLz5WWxB1zlPDzgVUabRlySSlD+EluBq5TeUCuVAe 147 | # T7OYDB2VAu4iWa0iywV0CwRFewRZ4NgPs+tM+GDdwnie0bqfa/fz7n5EEUDSvbqb 148 | # SxYIbqS+VeSmOBKjSPQcVXqKINF9/pHblI8vwntrpmSFT6PlLDQpXQu/9cc4L8Qg 149 | # xFYx9mnOhfgKkezQ1q66OAUM625PTJwDKaqi/BigKQwNXFxWI1faHJYNyCY2wUTL 150 | # 5eHmb4nnj+mYtXPTeOPtowE8dOVevGz2IYlnBeyXnbWx/a+m6XKlwzThL5/59Go5 151 | # 4i0Eglv80JyufJ0R+ea1Uxl0ujlKOet9QrNKOzc9wkp7J5jn4k6bG0pUOGojN75q 152 | # t0ju6kINSSSRjrcELpdv5OdFu49N/WDZ11nC2IDWYDR7t6GTIP6BuKqlXAnpig2+ 153 | # KE1+1+gP7WV40TFfuWbb30LnC8wCB43f/yAGo0VltLMyjS6R4k20qcn6vGsEDrKf 154 | # 6p/epMkKlvSN99iYqPCFAghZpCCmLAsa8lIG7WnlZBgb4KOr3sp8FGFDuGX1NqNV 155 | # EytnLE0bMEwxggSdMIIEmQIBATCBhzB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK 156 | # V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 157 | # IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD 158 | # QQIKYRr16gAAAAAAajAJBgUrDgMCGgUAoIHKMBkGCSqGSIb3DQEJAzEMBgorBgEE 159 | # AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ 160 | # BDEWBBRPPBgBB7wuCgUqrgSi1vxcimIHNTBqBgorBgEEAYI3AgEMMVwwWqA4gDYA 161 | # TQBpAGMAcgBvAHMAbwBmAHQAIABBAFMAUAAuAE4ARQBUACAAVwBlAGIAIABQAGEA 162 | # ZwBlAHOhHoAcaHR0cDovL3d3dy5hc3AubmV0L3dlYm1hdHJpeDANBgkqhkiG9w0B 163 | # AQEFAASCAQBenMDYWCypjNo7KD7IL5zARP5tKWNHysnzREuFh7fBxnWaXirXW0J5 164 | # p5pHeRWLHWpTmoJDDPwMxvU06tRxX5muqvPutA3dqQiAvPFiZrqdNuBq5miZQ6hZ 165 | # v+jYhPUU/kTJGiurUXAtw+ulKCibVGjW0TgO16r45kmyspqezItMjAyKofbBl+C6 166 | # w0++YCZr1vv/f8gvqlg85ifhALjL/bUlpy3N6FrTGDeFzf7q7QhO2NrSOFpArSqw 167 | # 0vOBJW79VZ8HbNUu4I/vAysFRyj8RbIu+xm8iaRDslXwJI2ka4wBot6Ucj+zaUEY 168 | # WWfNvZ8NlpK/bpeifwknly96CLIiWqn8oYICHTCCAhkGCSqGSIb3DQEJBjGCAgow 169 | # ggIGAgEBMIGFMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw 170 | # DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x 171 | # ITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQQIKYQUTNgAAAAAAGjAH 172 | # BgUrDgMCGqBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF 173 | # MQ8XDTExMTIzMTAyNDcxN1owIwYJKoZIhvcNAQkEMRYEFDSgrQ2+3zPn3zAO84uf 174 | # puLOI65jMA0GCSqGSIb3DQEBBQUABIIBAALljW1tyymODshEY9FwmnTFDbeqeeQw 175 | # YtspreF6jFWbILCt5TrUi3uW26NXGGmOu3U7Gsq30lCRX/k3wG2+/1NFtrScRz5n 176 | # Bdo2W8MWXqdRekK3gOAr0IuASfzOEFeBPFWuACGy6uiAb7hKbx37y+rU9ML9y0r4 177 | # d0JH7dLGL3lyzlB8eFwaZPtlJG35iXXD3CjqD7o+/6UdhR/54iyz4CfbPdmWZc3Q 178 | # uQRGLtkQrk+GpUl/R64AVPGISeDQikpf6dnws+6u8qHKlF5Ql+40rU3MypkRJPfg 179 | # PlnrdJlksA3SwVmcJUcEh6MyE7wTbXQDeY0jzCT18OpnrAnukeGIWCg= 180 | # SIG # End signature block 181 | -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/StateManager.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Timers; 5 | using System.Web; 6 | using CallCenter.Web.Hubs; 7 | using SignalR; 8 | using Twilio; 9 | 10 | namespace CallCenter.Web 11 | { 12 | public static class StateManager 13 | { 14 | private static List ActiveCalls { get; set; } 15 | private static List InactiveCalls { get; set; } 16 | private static List AllCalls 17 | { 18 | get 19 | { 20 | List allCalls = new List(); 21 | allCalls.AddRange(ActiveCalls); 22 | allCalls.AddRange(InactiveCalls); 23 | return allCalls; 24 | } 25 | } 26 | 27 | private static List Log { get; set; } 28 | private static Timer updateCalls; 29 | 30 | static StateManager() 31 | { 32 | ActiveCalls = new List(); 33 | InactiveCalls = new List(); 34 | Log = new List(); 35 | updateCalls = new Timer(); 36 | updateCalls.Elapsed += (sender, args) => BroadcastActiveCalls(); 37 | updateCalls.Interval = 1000; // 1 second 38 | updateCalls.Start(); 39 | } 40 | 41 | public static void AddNewCall(LocationalCall call) 42 | { 43 | ActiveCalls.Add(call); 44 | } 45 | public static void CompletedCall(LocationalCall call) 46 | { 47 | var locationalCall = ActiveCalls.Find(p => p.Sid == call.Sid); 48 | if (locationalCall == null) 49 | return; 50 | 51 | ActiveCalls.Remove(locationalCall); 52 | InactiveCalls.Add(locationalCall); 53 | } 54 | public static void PreloadClient(string connectionId) 55 | { 56 | var context = GlobalHost.ConnectionManager.GetHubContext("DashboardHub"); 57 | context.Clients[connectionId].updateActiveCallCount(ActiveCalls); 58 | context.Clients[connectionId].updateInactiveCallCount(InactiveCalls); 59 | context.Clients[connectionId].updateCallGrid(GetWijmoCallGrid()); 60 | context.Clients[connectionId].updateLastUpdated(DateTime.Now.ToString()); 61 | context.Clients[connectionId].updateLogGrid(GetWijmoLogGrid()); 62 | BroadcastAreaCodes(); 63 | BroadcastCallsPerMinute(); 64 | } 65 | public static void AddToLog(string sid, string logText) 66 | { 67 | if (Log == null) 68 | Log = new List(); 69 | 70 | Log.Add(new LogItem() 71 | { 72 | PhoneNumber = CensorPhoneNumber(AllCalls.Find(p => p.Sid == sid).From), 73 | LogText = logText, 74 | Date = DateTime.Now 75 | }); 76 | } 77 | 78 | private static void BroadcastActiveCalls() 79 | { 80 | var context = GlobalHost.ConnectionManager.GetHubContext("DashboardHub"); 81 | context.Clients.updateActiveCallCount(ActiveCalls); 82 | context.Clients.updateInactiveCallCount(InactiveCalls); 83 | context.Clients.updateCallGrid(GetWijmoCallGrid()); 84 | context.Clients.updateLastUpdated(DateTime.Now.ToString()); 85 | context.Clients.updateLogGrid(GetWijmoLogGrid()); 86 | BroadcastAreaCodes(); 87 | BroadcastCallsPerMinute(); 88 | } 89 | private static void BroadcastAreaCodes() 90 | { 91 | var context = GlobalHost.ConnectionManager.GetHubContext("DashboardHub"); 92 | 93 | var areaCodeCounts = new Dictionary(); 94 | 95 | foreach (var areaCode in AllCalls.OrderByDescending(p => p.DateCreated).Select(call => ExtractAreaCode(call.From))) 96 | { 97 | if (areaCodeCounts.ContainsKey(areaCode)) 98 | areaCodeCounts[areaCode] += 1; 99 | else 100 | areaCodeCounts[areaCode] = 1; 101 | } 102 | 103 | List areaCodeList; 104 | 105 | if (areaCodeCounts.Any()) 106 | { 107 | areaCodeList = areaCodeCounts.Select(keyValuePair => new WijPieChartSeriesItem() 108 | { 109 | data = keyValuePair.Value, 110 | label = keyValuePair.Key, 111 | legendEntry = true 112 | }).ToList(); 113 | } 114 | else 115 | { 116 | areaCodeList = new List() { new WijPieChartSeriesItem() { data = 1, label = "None", legendEntry = false } }; 117 | } 118 | 119 | context.Clients.updateAreaCodeChart(areaCodeList); 120 | } 121 | private static void BroadcastCallsPerMinute() 122 | { 123 | var context = GlobalHost.ConnectionManager.GetHubContext("DashboardHub"); 124 | 125 | var callsInPastFive = AllCalls.Where(p => (DateTime.Now - p.DateCreated).Minutes <= 5).OrderByDescending(p=>p.DateCreated); 126 | List callList = new List(); 127 | 128 | foreach (var call in callsInPastFive) 129 | { 130 | var a = callList.FirstOrDefault(); 131 | if (a == null) 132 | { 133 | callList.Add(new WijLineChartSeriesItem() 134 | { 135 | label = "times", 136 | legendEntry = false, 137 | fitType = "spline", 138 | data = new xyObject() { x = new List(), y = new List()} 139 | }); 140 | 141 | // get latest time 142 | DateTime maxTime = DateTime.UtcNow; 143 | for (DateTime current = maxTime; (maxTime - current).Minutes <= 5; current = current.AddMinutes(-1)) 144 | { 145 | callList.FirstOrDefault().data.x.Add(current.ToShortTimeString()); 146 | callList.FirstOrDefault().data.y.Add(0); 147 | } 148 | } 149 | 150 | a = callList.FirstOrDefault(); 151 | if (a.data.x.Contains(call.DateCreated.ToShortTimeString())) 152 | { 153 | int index = a.data.x.IndexOf(call.DateCreated.ToShortTimeString()); 154 | a.data.x[index] = call.DateCreated.ToShortTimeString(); 155 | a.data.y[index]++; 156 | } 157 | else 158 | { 159 | a.data.x.Add(call.DateCreated.ToShortTimeString()); 160 | a.data.y.Add(1); 161 | } 162 | } 163 | 164 | context.Clients.updateCallsPerMinute(callList.OrderBy(p => p.data.x)); 165 | } 166 | 167 | /* Helpers */ 168 | private static string ExtractAreaCode(string phoneNumber) 169 | { 170 | return phoneNumber.Substring(2, 3); 171 | } 172 | private static List> GetWijmoCallGrid() 173 | { 174 | if (AllCalls.Any()) 175 | { 176 | var calls = AllCalls.OrderByDescending(p => p.DateCreated).Select(activeCall => new Dictionary 177 | { 178 | {"Number", CensorPhoneNumber(activeCall.From)}, 179 | {"Status", GetCallStatus(activeCall)}, 180 | { 181 | "Duration", 182 | string.Format("{0} seconds", 183 | GetCallDuration(activeCall)) 184 | }, 185 | {"Date", activeCall.DateCreated.ToString()}, 186 | {"City", activeCall.City}, 187 | {"State", activeCall.State}, 188 | {"Zip Code", activeCall.ZipCode}, 189 | {"Country", activeCall.Country} 190 | }); 191 | 192 | return calls.ToList(); 193 | } 194 | else 195 | { 196 | return new List>(); 197 | } 198 | } 199 | private static List> GetWijmoLogGrid() 200 | { 201 | var log = Log.OrderByDescending(p => p.Date).Select(l => new Dictionary 202 | { 203 | {"Date", l.Date.ToString()}, 204 | {"Number", l.PhoneNumber}, 205 | {"Text", l.LogText} 206 | }).ToList(); 207 | return log; 208 | } 209 | private static string GetCallStatus(Call activeCall) 210 | { 211 | string accountSid = "ACa2de2b9a03db42ee981073b917cc8132"; 212 | string authToken = "921a664399748302a019ee35c40e888c"; 213 | 214 | TwilioRestClient client = new TwilioRestClient(accountSid, authToken); 215 | var call = client.GetCall(activeCall.Sid); 216 | return call.Status; 217 | } 218 | private static int GetCallDuration(Call activeCall) 219 | { 220 | string accountSid = "ACa2de2b9a03db42ee981073b917cc8132"; 221 | string authToken = "921a664399748302a019ee35c40e888c"; 222 | 223 | TwilioRestClient client = new TwilioRestClient(accountSid, authToken); 224 | var call = client.GetCall(activeCall.Sid); 225 | return call.Duration.HasValue ? call.Duration.Value : 0; 226 | } 227 | private static string CensorPhoneNumber(string number) 228 | { 229 | if (String.IsNullOrWhiteSpace(number)) 230 | return "UNKNOWN"; 231 | return number.Substring(0, 8) + "****"; 232 | } 233 | } 234 | 235 | internal class LogItem 236 | { 237 | public string PhoneNumber { get; set; } 238 | public DateTime Date { get; set; } 239 | public string LogText { get; set; } 240 | } 241 | 242 | public class WijPieChartSeriesItem 243 | { 244 | public string label { get; set; } 245 | public bool legendEntry { get; set; } 246 | public int data { get; set; } 247 | } 248 | 249 | public class WijLineChartSeriesItem 250 | { 251 | public string label { get; set; } 252 | public bool legendEntry { get; set; } 253 | public string fitType { get; set; } 254 | public xyObject data { get; set; } 255 | } 256 | 257 | public class xyObject 258 | { 259 | public List x { get; set; } 260 | public List y { get; set; } 261 | } 262 | } -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/Scripts/jquery.signalR-0.5.1.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * SignalR JavaScript Library v0.5.1.1 3 | * http://signalr.net/ 4 | * 5 | * Copyright David Fowler and Damian Edwards 2012 6 | * Licensed under the MIT. 7 | * https://github.com/SignalR/SignalR/blob/master/LICENSE.md 8 | */ 9 | (function(n,t){"use strict";var u;if(typeof n!="function")throw"SignalR: jQuery not found. Please ensure jQuery is referenced before the SignalR.js file.";if(!t.JSON)throw"SignalR: No JSON parser found. Please ensure json2.js is referenced before the SignalR.js file if you need to support clients without native JSON parsing support, e.g. IE<8.";var i,o,r={onStart:"onStart",onStarting:"onStarting",onSending:"onSending",onReceived:"onReceived",onError:"onError",onReconnect:"onReconnect",onStateChanged:"onStateChanged",onDisconnect:"onDisconnect"},h=function(n,i){if(i!==!1){var r;typeof t.console!="undefined"&&(r="["+(new Date).toTimeString()+"] SignalR: "+n,t.console.debug?t.console.debug(r):t.console.log&&t.console.log(r))}},s=function(i){var r;return(i=n.trim(i),i.indexOf("http")!==0)?!1:(r=t.document.createElement("a"),r.href=i,r.protocol+r.host!==t.location.protocol+t.location.host)},f=function(t,i){i!==t.state&&(n(t).trigger(r.onStateChanged,[{oldState:t.state,newState:i}]),t.state=i)},e=function(n){return n.state===i.connectionState.disconnecting||n.state===i.connectionState.disconnected};i=function(n,t,r){return new i.fn.init(n,t,r)},i.connectionState={connecting:0,connected:1,reconnecting:2,disconnecting:3,disconnected:4},i.fn=i.prototype={init:function(n,t,i){this.url=n,this.qs=t,typeof i=="boolean"&&(this.logging=i)},ajaxDataType:"json",logging:!1,state:i.connectionState.disconnected,reconnectDelay:2e3,start:function(u,e){var o=this,h={transport:"auto",jsonp:!1},a,c=n.Deferred(),l=t.document.createElement("a");return o.state===i.connectionState.connecting||o.state===i.connectionState.connected?(c.resolve(o),c.promise()):(f(o,i.connectionState.connecting),n.type(u)==="function"?e=u:n.type(u)==="object"&&(n.extend(h,u),n.type(h.callback)==="function"&&(e=h.callback)),l.href=o.url,o.baseUrl=l.protocol===":"?t.document.location.protocol+"//"+t.document.location.host:l.protocol+"//"+l.host,s(o.url)&&(o.log("Auto detected cross domain url."),h.transport==="auto"&&(h.jsonp||(h.jsonp=!n.support.cors,h.jsonp&&o.log("Using jsonp because this browser doesn't support CORS")),h.transport=h.jsonp===!0?"longPolling":["webSockets","longPolling"])),o.ajaxDataType=h.jsonp?"jsonp":"json",n(o).bind(r.onStart,function(){n.type(e)==="function"&&e.call(o),c.resolve(o)}),a=function(u,e){if(e=e||0,e>=u.length){o.transport||c.reject("SignalR: No transport could be initialized successfully. Try specifying a different transport or none at all for auto initialization.");return}var s=u[e],h=n.type(s)==="object"?s:i.transports[s];h.start(o,function(){o.transport=h,f(o,i.connectionState.connected),n(o).trigger(r.onStart),n(t).unload(function(){o.stop(!1)})},function(){a(u,e+1)})},t.setTimeout(function(){var t=o.url+"/negotiate";o.log("Negotiating with '"+t+"'."),n.ajax({url:t,global:!1,cache:!1,type:"GET",data:{},dataType:o.ajaxDataType,error:function(t){n(o).trigger(r.onError,[t.responseText]),c.reject("SignalR: Error during negotiation request: "+t),o.stop()},success:function(t){if(o.appRelativeUrl=t.Url,o.id=t.ConnectionId,o.webSocketServerUrl=t.WebSocketServerUrl,!t.ProtocolVersion||t.ProtocolVersion!=="1.0"){n(o).trigger(r.onError,"SignalR: Incompatible protocol version."),c.reject("SignalR: Incompatible protocol version.");return}n(o).trigger(r.onStarting);var f=[],u=[];n.each(i.transports,function(n){if(n==="webSockets"&&!t.TryWebSockets)return!0;u.push(n)}),n.isArray(h.transport)?n.each(h.transport,function(){var t=this;(n.type(t)==="object"||n.type(t)==="string"&&n.inArray(""+t,u)>=0)&&f.push(n.type(t)==="string"?""+t:t)}):n.type(h.transport)==="object"||n.inArray(h.transport,u)>=0?f.push(h.transport):f=u,a(f)}})},0),c.promise())},starting:function(t){var i=this,u=n(i);return u.bind(r.onStarting,function(){t.call(i),u.unbind(r.onStarting)}),i},send:function(n){var t=this;if(t.state!==i.connectionState.connected)throw"SignalR: Connection must be started before data can be sent. Call .start() before .send()";return t.transport.send(t,n),t},sending:function(t){var i=this;return n(i).bind(r.onSending,function(){t.call(i)}),i},received:function(t){var i=this;return n(i).bind(r.onReceived,function(n,r){t.call(i,r)}),i},stateChanged:function(t){var i=this;return n(i).bind(r.onStateChanged,function(n,r){t.call(i,r)}),i},error:function(t){var i=this;return n(i).bind(r.onError,function(n,r){t.call(i,r)}),i},disconnected:function(t){var i=this;return n(i).bind(r.onDisconnect,function(){t.call(i)}),i},reconnected:function(t){var i=this;return n(i).bind(r.onReconnect,function(){t.call(i)}),i},stop:function(t){var u=this;if(u.state!==i.connectionState.disconnecting&&u.state!==i.connectionState.disconnected){try{f(u,i.connectionState.disconnecting),u.transport&&(u.transport.abort(u,t),u.transport.stop(u),u.transport=null),n(u).trigger(r.onDisconnect),delete u.messageId,delete u.groups}finally{f(u,i.connectionState.disconnected)}return u}},log:function(n){h(n,this.logging)}},i.fn.init.prototype=i.fn,u={addQs:function(i,r){return r.qs?typeof r.qs=="object"?i+"&"+n.param(r.qs):typeof r.qs=="string"?i+"&"+r.qs:i+"&"+t.escape(r.qs.toString()):i},getUrl:function(n,i,r,u){var o=i==="webSockets"?"":n.baseUrl,f=o+n.appRelativeUrl,e="transport="+i+"&connectionId="+t.escape(n.id);return n.data&&(e+="&connectionData="+t.escape(n.data)),r?(u&&(f=f+"/reconnect"),n.messageId&&(e+="&messageId="+n.messageId),n.groups&&(e+="&groups="+t.escape(JSON.stringify(n.groups)))):f=f+"/connect",f+="?"+e,f=this.addQs(f,n)},ajaxSend:function(i,u){var f=i.url+"/send?transport="+i.transport.name+"&connectionId="+t.escape(i.id);f=this.addQs(f,i),n.ajax({url:f,global:!1,type:"POST",dataType:i.ajaxDataType,data:{data:u},success:function(t){t&&n(i).trigger(r.onReceived,[t])},error:function(t,u){u!=="abort"&&(u!=="parsererror"||i.ajaxDataType!=="jsonp")&&n(i).trigger(r.onError,[t])}})},ajaxAbort:function(i,r){if(typeof i.transport!="undefined"){r=typeof r=="undefined"?!0:r;var u=i.url+"/abort?transport="+i.transport.name+"&connectionId="+t.escape(i.id);u=this.addQs(u,i),n.ajax({url:u,async:r,timeout:1e3,global:!1,type:"POST",dataType:i.ajaxDataType,data:{}}),i.log("Fired ajax abort async = "+r)}},processMessages:function(t,i){var u=n(t);if(i){if(i.Disconnect){t.log("Disconnect command received from server"),t.stop();return}i.Messages&&n.each(i.Messages,function(){try{u.trigger(r.onReceived,[this])}catch(i){t.log("Error raising received "+i),n(t).trigger(r.onError,[i])}}),i.MessageId&&(t.messageId=i.MessageId),i.TransportData&&(t.groups=i.TransportData.Groups)}},foreverFrame:{count:0,connections:{}}},i.transports={webSockets:{name:"webSockets",send:function(n,t){n.socket.send(t)},start:function(e,o,s){var c,a=!1,v=this,y=!o,l,h;if(t.MozWebSocket&&(t.WebSocket=t.MozWebSocket),!t.WebSocket){s();return}e.socket||(e.webSocketServerUrl?c=e.webSocketServerUrl:(h=document.location,h.protocol!=="http:"&&h.protocol!=="https:"&&(h=t.document.createElement("a"),h.href=e.url),l=h.protocol==="https:"?"wss://":"ws://",c=l+h.host),n(e).trigger(r.onSending),c+=u.getUrl(e,this.name,y),e.log("Connecting to websocket endpoint '"+c+"'"),e.socket=new t.WebSocket(c),e.socket.onopen=function(){a=!0,e.log("Websocket opened"),o?o():f(e,i.connectionState.connected)},e.socket.onclose=function(t){if(a)typeof t.wasClean!="undefined"&&t.wasClean===!1?(n(e).trigger(r.onError,[t.reason]),e.log("Unclean disconnect from websocket."+t.reason)):e.log("Websocket closed");else{s&&s();return}f(e,i.connectionState.reconnecting),v.stop(e),v.start(e)},e.socket.onmessage=function(i){var f=t.JSON.parse(i.data),o;f&&(o=n(e),f.Messages?u.processMessages(e,f):o.trigger(r.onReceived,[f]))})},stop:function(n){n.socket!==null&&(n.socket.close(),n.socket=null)},abort:function(){}},serverSentEvents:{name:"serverSentEvents",timeOut:3e3,start:function(o,s,h){var c=this,v=!1,a=n(o),l=!s,p,y;if(o.eventSource&&(o.log("The connection already has an event source. Stopping it."),o.stop()),!t.EventSource){h&&(o.log("This browser doesn't support SSE."),h());return}a.trigger(r.onSending),p=u.getUrl(o,this.name,l);try{o.log("Attempting to connect to SSE endpoint '"+p+"'"),o.eventSource=new t.EventSource(p)}catch(w){o.log("EventSource failed trying to connect with error "+w.Message),h?h():(a.trigger(r.onError,[w]),l&&(o.log("EventSource reconnecting"),e(o)===!1&&c.reconnect(o)));return}y=t.setTimeout(function(){v===!1&&(o.log("EventSource timed out trying to connect"),h&&h(),l?(o.log("EventSource reconnecting"),c.reconnect(o)):(o.log("EventSource stopping the connection."),c.stop(o)))},c.timeOut),o.eventSource.addEventListener("open",function(){o.log("EventSource connected"),y&&t.clearTimeout(y),v===!1&&(v=!0,s&&s(),l&&(a.trigger(r.onReconnect),f(o,i.connectionState.connected)))},!1),o.eventSource.addEventListener("message",function(n){n.data!=="initialized"&&u.processMessages(o,t.JSON.parse(n.data))},!1),o.eventSource.addEventListener("error",function(n){if(!v){h&&h();return}o.log("EventSource readyState: "+o.eventSource.readyState),n.eventPhase===t.EventSource.CLOSED?o.eventSource.readyState===t.EventSource.CONNECTING?(o.log("EventSource reconnecting due to the server connection ending"),f(o,i.connectionState.reconnecting),e(o)===!1&&c.reconnect(o)):(o.log("EventSource closed"),c.stop(o)):(o.log("EventSource error"),a.trigger(r.onError))},!1)},reconnect:function(n){var i=this;t.setTimeout(function(){i.stop(n),i.start(n)},n.reconnectDelay)},send:function(n,t){u.ajaxSend(n,t)},stop:function(n){n&&n.eventSource&&(n.eventSource.close(),n.eventSource=null,delete n.eventSource)},abort:function(n,t){u.ajaxAbort(n,t)}},foreverFrame:{name:"foreverFrame",timeOut:3e3,start:function(o,s,h){var l=this,a=u.foreverFrame.count+=1,v,y,c=n("");if(t.EventSource){h&&(o.log("This brower supports SSE, skipping Forever Frame."),h());return}n(o).trigger(r.onSending),v=u.getUrl(o,this.name),v+="&frameId="+a,c.prop("src",v),u.foreverFrame.connections[a]=o,o.log("Binding to iframe's readystatechange event."),c.bind("readystatechange",function(){n.inArray(this.readyState,["loaded","complete"])>=0&&(o.log("Forever frame iframe readyState changed to "+this.readyState+", reconnecting"),f(o,i.connectionState.reconnecting),e(o)===!1&&l.reconnect(o))}),o.frame=c[0],o.frameId=a,s&&(o.onSuccess=s),n("body").append(c),y=t.setTimeout(function(){o.onSuccess&&(o.log("Failed to connect using forever frame source, it timed out after "+l.timeOut+"ms."),l.stop(o),h&&h())},l.timeOut)},reconnect:function(n){var i=this;t.setTimeout(function(){var r=n.frame,t=u.getUrl(n,i.name,!0)+"&frameId="+n.frameId;n.log("Upating iframe src to '"+t+"'."),r.src=t},n.reconnectDelay)},send:function(n,t){u.ajaxSend(n,t)},receive:u.processMessages,stop:function(t){t.frame&&(t.frame.stop?t.frame.stop():t.frame.document&&t.frame.document.execCommand&&t.frame.document.execCommand("Stop"),n(t.frame).remove(),delete u.foreverFrame.connections[t.frameId],t.frame=null,t.frameId=null,delete t.frame,delete t.frameId,t.log("Stopping forever frame"))},abort:function(n,t){u.ajaxAbort(n,t)},getConnection:function(n){return u.foreverFrame.connections[n]},started:function(t){t.onSuccess?(t.onSuccess(),t.onSuccess=null,delete t.onSuccess):(n(t).trigger(r.onReconnect),f(t,i.connectionState.connected))}},longPolling:{name:"longPolling",reconnectDelay:3e3,start:function(o,s){var l=this,c=!1;o.pollXhr&&(o.log("Polling xhr requests already exists, aborting."),o.stop()),o.messageId=null,t.setTimeout(function(){(function h(a,v){n(a).trigger(r.onSending);var d=a.messageId,k=d===null,b=!k,w=u.getUrl(a,l.name,b,v),p=null,y=!1;b===!0&&v===!0&&f(o,i.connectionState.reconnecting),o.log("Attempting to connect to '"+w+"' using longPolling."),a.pollXhr=n.ajax({url:w,global:!1,type:"GET",dataType:o.ajaxDataType,success:function(l){var w=0,p=!1;(c==!1&&(s(),c=!0),v===!0&&y===!1&&(o.log("Raising the reconnect event"),f(o,i.connectionState.connected),n(a).trigger(r.onReconnect),y=!0),u.processMessages(a,l),l&&l.TransportData&&n.type(l.TransportData.LongPollDelay)==="number"&&(w=l.TransportData.LongPollDelay),l&&l.TimedOut&&(p=l.TimedOut),l&&l.Disconnect)||e(a)!==!0&&(w>0?t.setTimeout(function(){h(a,p)},w):h(a,p))},error:function(i,u){if(u==="abort"){o.log("Aborted xhr requst.");return}o.log("An error occurred using longPolling. Status = "+u+". "+i.responseText),p&&clearTimeout(p),n(a).trigger(r.onError,[i.responseText]),t.setTimeout(function(){e(a)===!1&&h(a,!0)},o.reconnectDelay)}}),v===!0&&(p=t.setTimeout(function(){y===!1&&(f(o,i.connectionState.connected),n(a).trigger(r.onReconnect),y=!0)},l.reconnectDelay))})(o),t.setTimeout(function(){c===!1&&(s(),c=!0)},150)},250)},send:function(n,t){u.ajaxSend(n,t)},stop:function(n){n.pollXhr&&(n.pollXhr.abort(),n.pollXhr=null,delete n.pollXhr)},abort:function(n,t){u.ajaxAbort(n,t)}}},i.noConflict=function(){return n.connection===i&&(n.connection=o),i},n.connection&&(o=n.connection),n.connection=n.signalR=i})(window.jQuery,window) -------------------------------------------------------------------------------- /Source/CallCenter/packages/SignalR.Js.0.5.1/content/Scripts/jquery.signalR-0.5.1.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * SignalR JavaScript Library v0.5.1.1 3 | * http://signalr.net/ 4 | * 5 | * Copyright David Fowler and Damian Edwards 2012 6 | * Licensed under the MIT. 7 | * https://github.com/SignalR/SignalR/blob/master/LICENSE.md 8 | */ 9 | (function(n,t){"use strict";var u;if(typeof n!="function")throw"SignalR: jQuery not found. Please ensure jQuery is referenced before the SignalR.js file.";if(!t.JSON)throw"SignalR: No JSON parser found. Please ensure json2.js is referenced before the SignalR.js file if you need to support clients without native JSON parsing support, e.g. IE<8.";var i,o,r={onStart:"onStart",onStarting:"onStarting",onSending:"onSending",onReceived:"onReceived",onError:"onError",onReconnect:"onReconnect",onStateChanged:"onStateChanged",onDisconnect:"onDisconnect"},h=function(n,i){if(i!==!1){var r;typeof t.console!="undefined"&&(r="["+(new Date).toTimeString()+"] SignalR: "+n,t.console.debug?t.console.debug(r):t.console.log&&t.console.log(r))}},s=function(i){var r;return(i=n.trim(i),i.indexOf("http")!==0)?!1:(r=t.document.createElement("a"),r.href=i,r.protocol+r.host!==t.location.protocol+t.location.host)},f=function(t,i){i!==t.state&&(n(t).trigger(r.onStateChanged,[{oldState:t.state,newState:i}]),t.state=i)},e=function(n){return n.state===i.connectionState.disconnecting||n.state===i.connectionState.disconnected};i=function(n,t,r){return new i.fn.init(n,t,r)},i.connectionState={connecting:0,connected:1,reconnecting:2,disconnecting:3,disconnected:4},i.fn=i.prototype={init:function(n,t,i){this.url=n,this.qs=t,typeof i=="boolean"&&(this.logging=i)},ajaxDataType:"json",logging:!1,state:i.connectionState.disconnected,reconnectDelay:2e3,start:function(u,e){var o=this,h={transport:"auto",jsonp:!1},a,c=n.Deferred(),l=t.document.createElement("a");return o.state===i.connectionState.connecting||o.state===i.connectionState.connected?(c.resolve(o),c.promise()):(f(o,i.connectionState.connecting),n.type(u)==="function"?e=u:n.type(u)==="object"&&(n.extend(h,u),n.type(h.callback)==="function"&&(e=h.callback)),l.href=o.url,o.baseUrl=l.protocol===":"?t.document.location.protocol+"//"+t.document.location.host:l.protocol+"//"+l.host,s(o.url)&&(o.log("Auto detected cross domain url."),h.transport==="auto"&&(h.jsonp||(h.jsonp=!n.support.cors,h.jsonp&&o.log("Using jsonp because this browser doesn't support CORS")),h.transport=h.jsonp===!0?"longPolling":["webSockets","longPolling"])),o.ajaxDataType=h.jsonp?"jsonp":"json",n(o).bind(r.onStart,function(){n.type(e)==="function"&&e.call(o),c.resolve(o)}),a=function(u,e){if(e=e||0,e>=u.length){o.transport||c.reject("SignalR: No transport could be initialized successfully. Try specifying a different transport or none at all for auto initialization.");return}var s=u[e],h=n.type(s)==="object"?s:i.transports[s];h.start(o,function(){o.transport=h,f(o,i.connectionState.connected),n(o).trigger(r.onStart),n(t).unload(function(){o.stop(!1)})},function(){a(u,e+1)})},t.setTimeout(function(){var t=o.url+"/negotiate";o.log("Negotiating with '"+t+"'."),n.ajax({url:t,global:!1,cache:!1,type:"GET",data:{},dataType:o.ajaxDataType,error:function(t){n(o).trigger(r.onError,[t.responseText]),c.reject("SignalR: Error during negotiation request: "+t),o.stop()},success:function(t){if(o.appRelativeUrl=t.Url,o.id=t.ConnectionId,o.webSocketServerUrl=t.WebSocketServerUrl,!t.ProtocolVersion||t.ProtocolVersion!=="1.0"){n(o).trigger(r.onError,"SignalR: Incompatible protocol version."),c.reject("SignalR: Incompatible protocol version.");return}n(o).trigger(r.onStarting);var f=[],u=[];n.each(i.transports,function(n){if(n==="webSockets"&&!t.TryWebSockets)return!0;u.push(n)}),n.isArray(h.transport)?n.each(h.transport,function(){var t=this;(n.type(t)==="object"||n.type(t)==="string"&&n.inArray(""+t,u)>=0)&&f.push(n.type(t)==="string"?""+t:t)}):n.type(h.transport)==="object"||n.inArray(h.transport,u)>=0?f.push(h.transport):f=u,a(f)}})},0),c.promise())},starting:function(t){var i=this,u=n(i);return u.bind(r.onStarting,function(){t.call(i),u.unbind(r.onStarting)}),i},send:function(n){var t=this;if(t.state!==i.connectionState.connected)throw"SignalR: Connection must be started before data can be sent. Call .start() before .send()";return t.transport.send(t,n),t},sending:function(t){var i=this;return n(i).bind(r.onSending,function(){t.call(i)}),i},received:function(t){var i=this;return n(i).bind(r.onReceived,function(n,r){t.call(i,r)}),i},stateChanged:function(t){var i=this;return n(i).bind(r.onStateChanged,function(n,r){t.call(i,r)}),i},error:function(t){var i=this;return n(i).bind(r.onError,function(n,r){t.call(i,r)}),i},disconnected:function(t){var i=this;return n(i).bind(r.onDisconnect,function(){t.call(i)}),i},reconnected:function(t){var i=this;return n(i).bind(r.onReconnect,function(){t.call(i)}),i},stop:function(t){var u=this;if(u.state!==i.connectionState.disconnecting&&u.state!==i.connectionState.disconnected){try{f(u,i.connectionState.disconnecting),u.transport&&(u.transport.abort(u,t),u.transport.stop(u),u.transport=null),n(u).trigger(r.onDisconnect),delete u.messageId,delete u.groups}finally{f(u,i.connectionState.disconnected)}return u}},log:function(n){h(n,this.logging)}},i.fn.init.prototype=i.fn,u={addQs:function(i,r){return r.qs?typeof r.qs=="object"?i+"&"+n.param(r.qs):typeof r.qs=="string"?i+"&"+r.qs:i+"&"+t.escape(r.qs.toString()):i},getUrl:function(n,i,r,u){var o=i==="webSockets"?"":n.baseUrl,f=o+n.appRelativeUrl,e="transport="+i+"&connectionId="+t.escape(n.id);return n.data&&(e+="&connectionData="+t.escape(n.data)),r?(u&&(f=f+"/reconnect"),n.messageId&&(e+="&messageId="+n.messageId),n.groups&&(e+="&groups="+t.escape(JSON.stringify(n.groups)))):f=f+"/connect",f+="?"+e,f=this.addQs(f,n)},ajaxSend:function(i,u){var f=i.url+"/send?transport="+i.transport.name+"&connectionId="+t.escape(i.id);f=this.addQs(f,i),n.ajax({url:f,global:!1,type:"POST",dataType:i.ajaxDataType,data:{data:u},success:function(t){t&&n(i).trigger(r.onReceived,[t])},error:function(t,u){u!=="abort"&&(u!=="parsererror"||i.ajaxDataType!=="jsonp")&&n(i).trigger(r.onError,[t])}})},ajaxAbort:function(i,r){if(typeof i.transport!="undefined"){r=typeof r=="undefined"?!0:r;var u=i.url+"/abort?transport="+i.transport.name+"&connectionId="+t.escape(i.id);u=this.addQs(u,i),n.ajax({url:u,async:r,timeout:1e3,global:!1,type:"POST",dataType:i.ajaxDataType,data:{}}),i.log("Fired ajax abort async = "+r)}},processMessages:function(t,i){var u=n(t);if(i){if(i.Disconnect){t.log("Disconnect command received from server"),t.stop();return}i.Messages&&n.each(i.Messages,function(){try{u.trigger(r.onReceived,[this])}catch(i){t.log("Error raising received "+i),n(t).trigger(r.onError,[i])}}),i.MessageId&&(t.messageId=i.MessageId),i.TransportData&&(t.groups=i.TransportData.Groups)}},foreverFrame:{count:0,connections:{}}},i.transports={webSockets:{name:"webSockets",send:function(n,t){n.socket.send(t)},start:function(e,o,s){var c,a=!1,v=this,y=!o,l,h;if(t.MozWebSocket&&(t.WebSocket=t.MozWebSocket),!t.WebSocket){s();return}e.socket||(e.webSocketServerUrl?c=e.webSocketServerUrl:(h=document.location,h.protocol!=="http:"&&h.protocol!=="https:"&&(h=t.document.createElement("a"),h.href=e.url),l=h.protocol==="https:"?"wss://":"ws://",c=l+h.host),n(e).trigger(r.onSending),c+=u.getUrl(e,this.name,y),e.log("Connecting to websocket endpoint '"+c+"'"),e.socket=new t.WebSocket(c),e.socket.onopen=function(){a=!0,e.log("Websocket opened"),o?o():f(e,i.connectionState.connected)},e.socket.onclose=function(t){if(a)typeof t.wasClean!="undefined"&&t.wasClean===!1?(n(e).trigger(r.onError,[t.reason]),e.log("Unclean disconnect from websocket."+t.reason)):e.log("Websocket closed");else{s&&s();return}f(e,i.connectionState.reconnecting),v.stop(e),v.start(e)},e.socket.onmessage=function(i){var f=t.JSON.parse(i.data),o;f&&(o=n(e),f.Messages?u.processMessages(e,f):o.trigger(r.onReceived,[f]))})},stop:function(n){n.socket!==null&&(n.socket.close(),n.socket=null)},abort:function(){}},serverSentEvents:{name:"serverSentEvents",timeOut:3e3,start:function(o,s,h){var c=this,v=!1,a=n(o),l=!s,p,y;if(o.eventSource&&(o.log("The connection already has an event source. Stopping it."),o.stop()),!t.EventSource){h&&(o.log("This browser doesn't support SSE."),h());return}a.trigger(r.onSending),p=u.getUrl(o,this.name,l);try{o.log("Attempting to connect to SSE endpoint '"+p+"'"),o.eventSource=new t.EventSource(p)}catch(w){o.log("EventSource failed trying to connect with error "+w.Message),h?h():(a.trigger(r.onError,[w]),l&&(o.log("EventSource reconnecting"),e(o)===!1&&c.reconnect(o)));return}y=t.setTimeout(function(){v===!1&&(o.log("EventSource timed out trying to connect"),h&&h(),l?(o.log("EventSource reconnecting"),c.reconnect(o)):(o.log("EventSource stopping the connection."),c.stop(o)))},c.timeOut),o.eventSource.addEventListener("open",function(){o.log("EventSource connected"),y&&t.clearTimeout(y),v===!1&&(v=!0,s&&s(),l&&(a.trigger(r.onReconnect),f(o,i.connectionState.connected)))},!1),o.eventSource.addEventListener("message",function(n){n.data!=="initialized"&&u.processMessages(o,t.JSON.parse(n.data))},!1),o.eventSource.addEventListener("error",function(n){if(!v){h&&h();return}o.log("EventSource readyState: "+o.eventSource.readyState),n.eventPhase===t.EventSource.CLOSED?o.eventSource.readyState===t.EventSource.CONNECTING?(o.log("EventSource reconnecting due to the server connection ending"),f(o,i.connectionState.reconnecting),e(o)===!1&&c.reconnect(o)):(o.log("EventSource closed"),c.stop(o)):(o.log("EventSource error"),a.trigger(r.onError))},!1)},reconnect:function(n){var i=this;t.setTimeout(function(){i.stop(n),i.start(n)},n.reconnectDelay)},send:function(n,t){u.ajaxSend(n,t)},stop:function(n){n&&n.eventSource&&(n.eventSource.close(),n.eventSource=null,delete n.eventSource)},abort:function(n,t){u.ajaxAbort(n,t)}},foreverFrame:{name:"foreverFrame",timeOut:3e3,start:function(o,s,h){var l=this,a=u.foreverFrame.count+=1,v,y,c=n("");if(t.EventSource){h&&(o.log("This brower supports SSE, skipping Forever Frame."),h());return}n(o).trigger(r.onSending),v=u.getUrl(o,this.name),v+="&frameId="+a,c.prop("src",v),u.foreverFrame.connections[a]=o,o.log("Binding to iframe's readystatechange event."),c.bind("readystatechange",function(){n.inArray(this.readyState,["loaded","complete"])>=0&&(o.log("Forever frame iframe readyState changed to "+this.readyState+", reconnecting"),f(o,i.connectionState.reconnecting),e(o)===!1&&l.reconnect(o))}),o.frame=c[0],o.frameId=a,s&&(o.onSuccess=s),n("body").append(c),y=t.setTimeout(function(){o.onSuccess&&(o.log("Failed to connect using forever frame source, it timed out after "+l.timeOut+"ms."),l.stop(o),h&&h())},l.timeOut)},reconnect:function(n){var i=this;t.setTimeout(function(){var r=n.frame,t=u.getUrl(n,i.name,!0)+"&frameId="+n.frameId;n.log("Upating iframe src to '"+t+"'."),r.src=t},n.reconnectDelay)},send:function(n,t){u.ajaxSend(n,t)},receive:u.processMessages,stop:function(t){t.frame&&(t.frame.stop?t.frame.stop():t.frame.document&&t.frame.document.execCommand&&t.frame.document.execCommand("Stop"),n(t.frame).remove(),delete u.foreverFrame.connections[t.frameId],t.frame=null,t.frameId=null,delete t.frame,delete t.frameId,t.log("Stopping forever frame"))},abort:function(n,t){u.ajaxAbort(n,t)},getConnection:function(n){return u.foreverFrame.connections[n]},started:function(t){t.onSuccess?(t.onSuccess(),t.onSuccess=null,delete t.onSuccess):(n(t).trigger(r.onReconnect),f(t,i.connectionState.connected))}},longPolling:{name:"longPolling",reconnectDelay:3e3,start:function(o,s){var l=this,c=!1;o.pollXhr&&(o.log("Polling xhr requests already exists, aborting."),o.stop()),o.messageId=null,t.setTimeout(function(){(function h(a,v){n(a).trigger(r.onSending);var d=a.messageId,k=d===null,b=!k,w=u.getUrl(a,l.name,b,v),p=null,y=!1;b===!0&&v===!0&&f(o,i.connectionState.reconnecting),o.log("Attempting to connect to '"+w+"' using longPolling."),a.pollXhr=n.ajax({url:w,global:!1,type:"GET",dataType:o.ajaxDataType,success:function(l){var w=0,p=!1;(c==!1&&(s(),c=!0),v===!0&&y===!1&&(o.log("Raising the reconnect event"),f(o,i.connectionState.connected),n(a).trigger(r.onReconnect),y=!0),u.processMessages(a,l),l&&l.TransportData&&n.type(l.TransportData.LongPollDelay)==="number"&&(w=l.TransportData.LongPollDelay),l&&l.TimedOut&&(p=l.TimedOut),l&&l.Disconnect)||e(a)!==!0&&(w>0?t.setTimeout(function(){h(a,p)},w):h(a,p))},error:function(i,u){if(u==="abort"){o.log("Aborted xhr requst.");return}o.log("An error occurred using longPolling. Status = "+u+". "+i.responseText),p&&clearTimeout(p),n(a).trigger(r.onError,[i.responseText]),t.setTimeout(function(){e(a)===!1&&h(a,!0)},o.reconnectDelay)}}),v===!0&&(p=t.setTimeout(function(){y===!1&&(f(o,i.connectionState.connected),n(a).trigger(r.onReconnect),y=!0)},l.reconnectDelay))})(o),t.setTimeout(function(){c===!1&&(s(),c=!0)},150)},250)},send:function(n,t){u.ajaxSend(n,t)},stop:function(n){n.pollXhr&&(n.pollXhr.abort(),n.pollXhr=null,delete n.pollXhr)},abort:function(n,t){u.ajaxAbort(n,t)}}},i.noConflict=function(){return n.connection===i&&(n.connection=o),i},n.connection&&(o=n.connection),n.connection=n.signalR=i})(window.jQuery,window) -------------------------------------------------------------------------------- /Source/CallCenter/packages/Microsoft.Web.Infrastructure.1.0.0.0/tools/VS.psd1: -------------------------------------------------------------------------------- 1 | @{ 2 | 3 | # Script module or binary module file associated with this manifest 4 | ModuleToProcess = 'VS.psm1' 5 | 6 | # Version number of this module. 7 | ModuleVersion = '0.1' 8 | 9 | # ID used to uniquely identify this module 10 | GUID = 'a9610a6b-5f18-4859-b4ed-c0b61b356f35' 11 | 12 | # Author of this module 13 | Author = 'Microsoft Corporation' 14 | 15 | # Company or vendor of this module 16 | CompanyName = 'Microsoft Corporation' 17 | 18 | # Copyright statement for this module 19 | Copyright = '(c) 2011 Microsoft Corporation. All rights reserved.' 20 | 21 | # Description of the functionality provided by this module 22 | Description = 'Powershell wrapper for NuGet.VisualStudio' 23 | 24 | # Minimum version of the Windows PowerShell engine required by this module 25 | PowerShellVersion = '2.0' 26 | 27 | # Name of the Windows PowerShell host required by this module 28 | PowerShellHostName = 'Package Manager Host' 29 | 30 | # Minimum version of the Windows PowerShell host required by this module 31 | PowerShellHostVersion = '1.2' 32 | 33 | # Minimum version of the .NET Framework required by this module 34 | DotNetFrameworkVersion = '4.0' 35 | 36 | # Minimum version of the common language runtime (CLR) required by this module 37 | CLRVersion = '' 38 | 39 | # Processor architecture (None, X86, Amd64, IA64) required by this module 40 | ProcessorArchitecture = '' 41 | 42 | # Modules that must be imported into the global environment prior to importing this module 43 | RequiredModules = @() 44 | 45 | # Assemblies that must be loaded prior to importing this module 46 | RequiredAssemblies = @() 47 | 48 | # Script files (.ps1) that are run in the caller's environment prior to importing this module 49 | ScriptsToProcess = @() 50 | 51 | # Type files (.ps1xml) to be loaded when importing this module 52 | TypesToProcess = @() 53 | 54 | # Format files (.ps1xml) to be loaded when importing this module 55 | FormatsToProcess = @() 56 | 57 | # Modules to import as nested modules of the module specified in ModuleToProcess 58 | NestedModules = @('VS.psm1') 59 | 60 | # Functions to export from this module 61 | FunctionsToExport = '*' 62 | 63 | # Cmdlets to export from this module 64 | CmdletsToExport = '' 65 | 66 | # Variables to export from this module 67 | VariablesToExport = '' 68 | 69 | # Aliases to export from this module 70 | AliasesToExport = '' 71 | 72 | # List of all files packaged with this module 73 | FileList = @() 74 | 75 | # Private data to pass to the module specified in ModuleToProcess 76 | PrivateData = '' 77 | 78 | } 79 | # SIG # Begin signature block 80 | # MIIbJQYJKoZIhvcNAQcCoIIbFjCCGxICAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB 81 | # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR 82 | # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUhSWDsTDjCpf84MGVMRg7ZaTN 83 | # 54mgghXyMIIEoDCCA4igAwIBAgIKYRr16gAAAAAAajANBgkqhkiG9w0BAQUFADB5 84 | # MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk 85 | # bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN 86 | # aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTExMDEyMjM5MTdaFw0xMzAy 87 | # MDEyMjQ5MTdaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ 88 | # MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u 89 | # MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w 90 | # ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDqR/PfCN/MR4GJYnddXm5 91 | # z5NLYZK2lfLvqiWdd/NLWm1JkMzgMbimAjeHdK/yrKBglLjHTiX+h9hY0iBOLfE6 92 | # ZS6SW6Zd5pV14DTlUCGcfTmXto5EI2YWpmUg4Dbrivqd4stgAfwqZMiHRRTxHsrN 93 | # KKy65VdZJtzsxUpsmuYDGikyPwCeg6wlDYTM3W+2arst94Q6bWYx6DZw/4SSkPdA 94 | # dp6ILkfWKxH3j+ASZSu8X+8V/PfsAWi3RQzuwASwDre9eGuujeRQ8TXingHS4etb 95 | # cYJhISDz1MneHLgCRWVJvn61N4anzexa37h2IPwRE1H8+ipQqrQe0DqAvmPK3IFH 96 | # AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUAAOm 97 | # 5aLEcaKCw492zSwNEuKdSigwDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFFdF 98 | # dBxdsPbIQwXgjFQtjzKn/kiWMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu 99 | # bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z 100 | # MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 101 | # d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw 102 | # MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQCQ9/h5kmnIj2uKYO58wa4+gThS9LrP 103 | # mYzwLT0T9K72YfB1OE5Zxj8HQ/kHfMdT5JFi1qh2FHWUhlmyuhDCf2wVPxkVww4v 104 | # fjnDz/5UJ1iUNWEHeW1RV7AS4epjcooWZuufOSozBDWLg94KXjG8nx3uNUUNXceX 105 | # 3yrgnX86SfvjSEUy3zZtCW52VVWsNMV5XW4C1cyXifOoaH0U6ml7C1V9AozETTC8 106 | # Yvd7peygkvAOKg6vV5spSM22IaXqHe/cCfWrYtYN7DVfa5nUsfB3Uvl36T9smFbA 107 | # XDahTl4Q9Ix6EZcgIDEIeW5yFl8cMFeby3yiVfVwbHjsoUMgruywNYsYMIIEujCC 108 | # A6KgAwIBAgIKYQUTNgAAAAAAGjANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV 109 | # UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE 110 | # ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt 111 | # ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE3WhcNMTIxMDI1MjA0MjE3WjCBszEL 112 | # MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v 113 | # bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q 114 | # UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjE1OUMtQTNGNy0yNTcwMSUwIwYD 115 | # VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B 116 | # AQEFAAOCAQ8AMIIBCgKCAQEAnDSYGckJKWOZAhZ1qIhXfaG7qUES/GSRpdYFeL93 117 | # 3OzmrrhQTsDjGr3tt/34IIpxOapyknKfignlE++RQe1hJWtRre6oQ7VhQiyd8h2x 118 | # 0vy39Xujc3YTsyuj25RhgFWhD23d2OwW/4V/lp6IfwAujnokumidj8bK9JB5euGb 119 | # 7wZdfvguw2oVnDwUL+fVlMgiG1HLqVWGIbda80ESOZ/wValOqiUrY/uRcjwPfMCW 120 | # ctzBo8EIyt7FybXACl+lnAuqcgpdCkB9LpjQq7KIj4aA6H3RvlVr4FgsyDY/+eYR 121 | # w/BDBYV4AxflLKcpfNPilRcAbNvcrTwZOgLgfWLUzvYdPQIDAQABo4IBCTCCAQUw 122 | # HQYDVR0OBBYEFPaDiyCHEe6Dy9vehaLSaIY3YXSQMB8GA1UdIwQYMBaAFCM0+NlS 123 | # RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj 124 | # cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD 125 | # QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p 126 | # Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw 127 | # EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAGL0BQ1P5xtr 128 | # gudSDN95jKhVgTOX06TKyf6vSNt72m96KE/H0LeJ2NGmmcyRVgA7OOi3Mi/u+c9r 129 | # 2Zje1gL1QlhSa47aQNwWoLPUvyYVy0hCzNP9tPrkRIlmD0IOXvcEnyNIW7SJQcTa 130 | # bPg29D/CHhXfmEwAxLLs3l8BAUOcuELWIsiTmp7JpRhn/EeEHpFdm/J297GOch2A 131 | # djw2EUbKfjpI86/jSfYXM427AGOCnFejVqfDbpCjPpW3/GTRXRjCCwFQY6f889GA 132 | # noTjMjTdV5VAo21+2usuWgi0EAZeMskJ6TKCcRan+savZpiJ+dmetV8QI6N3gPJN 133 | # 1igAclCFvOUwggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0GCSqGSIb3DQEBBQUA 134 | # MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv 135 | # ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 136 | # eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMxMzAzMDlaMHcxCzAJBgNVBAYTAlVT 137 | # MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK 138 | # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1l 139 | # LVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+hbLHf 140 | # 20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0UytdDAgEesH1VSVFUmUG0KSrphc 141 | # MCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN+kXP 142 | # CdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM5AMs+2qQkDBuh/NZMJ36 143 | # ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJgp+E 144 | # 7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OToWECtR0Nsfz3m7IB 145 | # ziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O 146 | # BBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3 147 | # FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJgQFYnl+UlE/wq4QpTlVnkpKFjpGEw 148 | # XzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29m 149 | # dDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 150 | # ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwu 151 | # bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0 152 | # LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWlj 153 | # cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MBMGA1Ud 154 | # JQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3ptK13 155 | # 2855UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ3XpA4le7r1iaHOEd 156 | # AYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEqJCJw 157 | # +/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/4gcaMvnMMUp2 158 | # MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/FNSteo7/rvH0LQnvUU3Ih7jDKu3hl 159 | # XFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpiKe+imyk0 160 | # BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0NbhOxXEjEiZ2CzxSjHFaRkMUvLOz 161 | # sE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a6lbv 162 | # pt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZhtG6hE6a/qkfwEm/9ijJssv7f 163 | # UciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa2ZKH 164 | # E3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kLfchpyOZu6qeXzjEp/w7F 165 | # W1zYTRuh2Povnj8uVRZryROj/TCCBoEwggRpoAMCAQICCmEVCCcAAAAAAAwwDQYJ 166 | # KoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixk 167 | # ARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh 168 | # dGUgQXV0aG9yaXR5MB4XDTA2MDEyNTIzMjIzMloXDTE3MDEyNTIzMzIzMloweTEL 169 | # MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v 170 | # bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj 171 | # cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw 172 | # ggEKAoIBAQCfjd+FN4yxBlZmNk7UCus2I5Eer6uNWOnEz8GfOgokxMTEXrDuFRTF 173 | # +j6ZM2sZaXL0fAVf5ZklRNc1GYqQ3CiOkAzv1ZBhrd7cGHAtg8lvr4Us+N25uTD9 174 | # cXgcg/3IqbmCZw16uMEJwrwWl1c/HJjTadcwkJCQjTAf2CbUnnuI2eIJ7ZdJResE 175 | # UoF1e7i1IrguVrvXz6lOPAqDoqg6xa22AQ5qzyK0Ix9s1Sfnt37BtNUyrXklHEKG 176 | # 4p2F9FfaG1kvLSaSKcWz14WjnmBalOZ7nHtegjRLbf/U7ifQotzRkAzOfQ4VfIis 177 | # NMfAbJiESslEeWgo3yKDDbiKLEhh4v4RAgMBAAGjggIjMIICHzAQBgkrBgEEAYI3 178 | # FQEEAwIBADAdBgNVHQ4EFgQUV0V0HF2w9shDBeCMVC2PMqf+SJYwCwYDVR0PBAQD 179 | # AgHGMA8GA1UdEwEB/wQFMAMBAf8wgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8 180 | # KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is 181 | # ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj 182 | # YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB 183 | # hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy 184 | # b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho 185 | # dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD 186 | # ZXJ0LmNydDB2BgNVHSAEbzBtMGsGCSsGAQQBgjcVLzBeMFwGCCsGAQUFBwICMFAe 187 | # TgBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAA2ACAATQBpAGMAcgBvAHMA 188 | # bwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4ALjATBgNVHSUEDDAKBggrBgEF 189 | # BQcDAzANBgkqhkiG9w0BAQUFAAOCAgEAMLywIKRioKfvOSZhPdysxpnQhsQu9YMy 190 | # ZV4iPpvWhvjotp/Ki9Y7dQuhkT5M3WR0jEnyiIwYZ2z+FWZGuDpGQpfIkTfUJLHn 191 | # rNPqQRSDd9PJTwVfoxRSv5akLz5WWxB1zlPDzgVUabRlySSlD+EluBq5TeUCuVAe 192 | # T7OYDB2VAu4iWa0iywV0CwRFewRZ4NgPs+tM+GDdwnie0bqfa/fz7n5EEUDSvbqb 193 | # SxYIbqS+VeSmOBKjSPQcVXqKINF9/pHblI8vwntrpmSFT6PlLDQpXQu/9cc4L8Qg 194 | # xFYx9mnOhfgKkezQ1q66OAUM625PTJwDKaqi/BigKQwNXFxWI1faHJYNyCY2wUTL 195 | # 5eHmb4nnj+mYtXPTeOPtowE8dOVevGz2IYlnBeyXnbWx/a+m6XKlwzThL5/59Go5 196 | # 4i0Eglv80JyufJ0R+ea1Uxl0ujlKOet9QrNKOzc9wkp7J5jn4k6bG0pUOGojN75q 197 | # t0ju6kINSSSRjrcELpdv5OdFu49N/WDZ11nC2IDWYDR7t6GTIP6BuKqlXAnpig2+ 198 | # KE1+1+gP7WV40TFfuWbb30LnC8wCB43f/yAGo0VltLMyjS6R4k20qcn6vGsEDrKf 199 | # 6p/epMkKlvSN99iYqPCFAghZpCCmLAsa8lIG7WnlZBgb4KOr3sp8FGFDuGX1NqNV 200 | # EytnLE0bMEwxggSdMIIEmQIBATCBhzB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK 201 | # V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 202 | # IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD 203 | # QQIKYRr16gAAAAAAajAJBgUrDgMCGgUAoIHKMBkGCSqGSIb3DQEJAzEMBgorBgEE 204 | # AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ 205 | # BDEWBBQ/h+p82rMdy7PbO1bTNehunSLFiDBqBgorBgEEAYI3AgEMMVwwWqA4gDYA 206 | # TQBpAGMAcgBvAHMAbwBmAHQAIABBAFMAUAAuAE4ARQBUACAAVwBlAGIAIABQAGEA 207 | # ZwBlAHOhHoAcaHR0cDovL3d3dy5hc3AubmV0L3dlYm1hdHJpeDANBgkqhkiG9w0B 208 | # AQEFAASCAQBCU3llm0n8p/Gfo247NTbxTxcz0XXel/GjLShxM4hatGZyz5eGZszW 209 | # WLT+UlifzLzU8H37SZaafTdiysB24O2Fub14g8ygv62IDNL4QjEiNSxAFq67tdzT 210 | # FQtClLlxRgnrcJood9NZCooAlGae1fS8EHgf2kE6d1KR/NYkQyZrAmUGyZ36YwD8 211 | # gMwqyLc7SnWIzv7pepJBSPvQyNYEKrX/9vnTOTYXo/Tjj32TxGWYN56551UaMtQP 212 | # ZrZS34yJLv1frZBGJEK3F5pw5MSPbaIvR1O0de7XjTlG2Z+T6hasG3zVCQi9ByW3 213 | # iavcbiEh8t0z1IaybtgExWgzer3oGSRSoYICHTCCAhkGCSqGSIb3DQEJBjGCAgow 214 | # ggIGAgEBMIGFMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw 215 | # DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x 216 | # ITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQQIKYQUTNgAAAAAAGjAH 217 | # BgUrDgMCGqBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF 218 | # MQ8XDTExMTIzMTAyNDcxN1owIwYJKoZIhvcNAQkEMRYEFKZpdn6FFa4AHuOurptD 219 | # Zd4WyMlRMA0GCSqGSIb3DQEBBQUABIIBAGa/G9k0yOCXe7mPIcEWWWDkI4Mlw8ox 220 | # hYkusQhogDFjHKPsuJSH0y98ryBWNhWby9jJGf/NrXCABpKHc6hlXb/7i4+HC3J+ 221 | # 6ernYBUaIUEjV7NBcTQZ2aRvxHRiM/uS9sN0xvT/g4WpWwnIfso72D2hz1jK6tc0 222 | # Og1tw1i+X/Bw/HwVcSV8rXFOLAYglt75/+4bF900d1lTCmrfPZ9Ec+XHq7HQQiey 223 | # h7RDchb0V4cX/vqxNx37FL4/L+r/SYqEVBtIKYaXiidlVcm4SnSXY8ZTp7UOZEHA 224 | # VBW/+MYgEYmjAWL7m+a2upQ+k+vmHn0499hhWGz12zfsLEPIzWJ9QhQ= 225 | # SIG # End signature block 226 | -------------------------------------------------------------------------------- /Source/CallCenter/CallCenter.Web/CallCenter.Web.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | bin\ 6 | DEBUG;TRACE 7 | full 8 | AnyCPU 9 | bin\CallCenter.Web.dll.CodeAnalysisLog.xml 10 | true 11 | GlobalSuppressions.cs 12 | prompt 13 | MinimumRecommendedRules.ruleset 14 | ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets 15 | ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules 16 | 17 | 18 | 19 | Debug 20 | AnyCPU 21 | 22 | 23 | 2.0 24 | {6E6454A3-1B21-4C95-A1E4-7D5AC4E52534} 25 | {E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} 26 | Library 27 | Properties 28 | CallCenter.Web 29 | CallCenter.Web 30 | v4.0 31 | false 32 | false 33 | 34 | 35 | true 36 | full 37 | false 38 | bin\ 39 | DEBUG;TRACE 40 | prompt 41 | 4 42 | 43 | 44 | pdbonly 45 | true 46 | bin\ 47 | TRACE 48 | prompt 49 | 4 50 | 51 | 52 | 53 | ..\packages\elmah.corelibrary.1.2.2\lib\Elmah.dll 54 | 55 | 56 | 57 | ..\packages\Newtonsoft.Json.4.5.7\lib\net40\Newtonsoft.Json.dll 58 | 59 | 60 | ..\packages\RestSharp.103.1\lib\net4\RestSharp.dll 61 | 62 | 63 | False 64 | ..\packages\SignalR.Server.0.5.1.1\lib\net40\SignalR.dll 65 | 66 | 67 | False 68 | ..\packages\SignalR.Hosting.AspNet.0.5.1\lib\net40\SignalR.Hosting.AspNet.dll 69 | 70 | 71 | False 72 | ..\packages\SignalR.Hosting.Common.0.5.1\lib\net40\SignalR.Hosting.Common.dll 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | True 94 | ..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll 95 | 96 | 97 | True 98 | ..\packages\Microsoft.Net.Http.2.0.20505.0\lib\net40\System.Net.Http.dll 99 | 100 | 101 | ..\packages\Microsoft.AspNet.WebApi.Client.4.0.20505.0\lib\net40\System.Net.Http.Formatting.dll 102 | 103 | 104 | True 105 | ..\packages\Microsoft.Net.Http.2.0.20505.0\lib\net40\System.Net.Http.WebRequest.dll 106 | 107 | 108 | True 109 | ..\packages\Microsoft.AspNet.WebPages.2.0.20505.0\lib\net40\System.Web.Helpers.dll 110 | 111 | 112 | ..\packages\Microsoft.AspNet.WebApi.Core.4.0.20505.0\lib\net40\System.Web.Http.dll 113 | 114 | 115 | ..\packages\Microsoft.AspNet.WebApi.WebHost.4.0.20505.0\lib\net40\System.Web.Http.WebHost.dll 116 | 117 | 118 | True 119 | ..\packages\Microsoft.AspNet.Mvc.4.0.20505.0\lib\net40\System.Web.Mvc.dll 120 | 121 | 122 | True 123 | ..\packages\Microsoft.AspNet.Razor.2.0.20505.0\lib\net40\System.Web.Razor.dll 124 | 125 | 126 | True 127 | ..\packages\Microsoft.AspNet.WebPages.2.0.20505.0\lib\net40\System.Web.WebPages.dll 128 | 129 | 130 | True 131 | ..\packages\Microsoft.AspNet.WebPages.2.0.20505.0\lib\net40\System.Web.WebPages.Deployment.dll 132 | 133 | 134 | True 135 | ..\packages\Microsoft.AspNet.WebPages.2.0.20505.0\lib\net40\System.Web.WebPages.Razor.dll 136 | 137 | 138 | ..\packages\Twilio.3.4.2\lib\3.5\Twilio.Api.dll 139 | 140 | 141 | ..\packages\Twilio.TwiML.3.1.3\lib\3.5\Twilio.Twiml.dll 142 | 143 | 144 | 145 | 146 | 147 | 148 | Global.asax 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | true 175 | Designer 176 | 177 | 178 | Web.config 179 | True 180 | 181 | 182 | Web.config 183 | True 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | Web.config 203 | True 204 | 205 | 206 | 207 | 208 | 209 | 210 | 10.0 211 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 212 | 213 | 214 | $(LOCALAPPDATA)\Microsoft\MSBuild\SlowCheetah\v1\SlowCheetah.Transforms.targets 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | False 227 | True 228 | 57078 229 | / 230 | 231 | 232 | False 233 | False 234 | 235 | 236 | False 237 | 238 | 239 | 240 | 241 | 242 | 248 | --------------------------------------------------------------------------------