Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Code/BugFreak.MVC3.Tests/BugFreak.MVC3.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,10 @@
<Project>{5e6fc290-8b43-4e53-bb07-cc2abd839b75}</Project>
<Name>BugFreak.MVC3</Name>
</ProjectReference>
<ProjectReference Include="..\Core\BugFreak\BugFreak.csproj">
<Project>{6423cea7-9e46-48c4-b3c5-c0cfa5e5ff7a}</Project>
<Name>BugFreak</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using System.Globalization;
using System.Linq;
using BugFreak.Core.Components;
using BugFreak.Components;
using FluentAssertions;
using NUnit.Framework;

Expand Down Expand Up @@ -50,5 +50,15 @@ public void GetData_Always_SetsQueryString()
var addedQuery = result.First(pair => pair.Key == "Query").Value;
addedQuery.Should().Be(query);
}

[Test]
public void GetData_WhenContextIsNull_ReturnsEmptyList()
{
_subject.HttpContext = null;

var result = _subject.GetData();

result.Should().BeEmpty();
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using System.Globalization;
using System.Linq;
using BugFreak.Core.Components;
using BugFreak.Components;
using FluentAssertions;
using NUnit.Framework;

Expand Down Expand Up @@ -49,5 +49,15 @@ public void GetData_Always_SetsSessionTimeout()
var timeout = result.First(pair => pair.Key == "SessionTimeout").Value;
timeout.Should().Be(_subject.HttpContext.Session.Timeout.ToString(CultureInfo.InvariantCulture));
}

[Test]
public void GetData_WhenHttpContextIsNull_ReturnsEmptyList()
{
_subject.HttpContext = null;

var result = _subject.GetData();

result.Should().BeEmpty();
}
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System.Linq;
using System.Security.Principal;
using System.Web;
using BugFreak.Core.Components;
using BugFreak.Components;
using FluentAssertions;
using Moq;
using NUnit.Framework;
Expand Down Expand Up @@ -83,5 +83,15 @@ public void GetData_WhenIsAuthenticated_AddsAuthenticationType()
var addedAuthenticationType = result.First(pair => pair.Key == "AuthenticationType");
addedAuthenticationType.Should().Be(addedAuthenticationType);
}

[Test]
public void GetData_WhenHttpContextIsNull_ReturnsEmptyList()
{
_subject.HttpContext = null;

var result = _subject.GetData();

result.Should().BeEmpty();
}
}
}
105 changes: 8 additions & 97 deletions Code/BugFreak.MVC3/BugFreak.MVC3.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="BugFreak, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\BugFreak.1.0.1.0\lib\net35-Client\BugFreak.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
Expand Down Expand Up @@ -71,105 +75,12 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\Core\BugFreak\Collections\ObservableList.cs">
<Link>Core\Collections\ObservableList.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Components\ErrorHandler.cs">
<Link>Core\Components\ErrorHandler.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Components\ErrorQueue.cs">
<Link>Core\Components\ErrorQueue.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Components\ErrorReportSaveCompletedEventArgs.cs">
<Link>Core\Components\ErrorReportSaveCompletedEventArgs.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Components\FormErrorReportSerializer.cs">
<Link>Core\Components\FormErrorReportSerializer.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Components\IErrorDataProvider.cs">
<Link>Core\Components\IErrorDataProvider.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Components\IErrorHandler.cs">
<Link>Core\Components\IErrorHandler.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Components\IErrorQueue.cs">
<Link>Core\Components\IErrorQueue.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Components\IErrorReportSerializer.cs">
<Link>Core\Components\IErrorReportSerializer.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Components\IErrorReportStorage.cs">
<Link>Core\Components\IErrorReportStorage.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Components\Initializer.cs">
<Link>Core\Components\Initializer.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Components\IReportRequestBuilder.cs">
<Link>Core\Components\IReportRequestBuilder.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Components\LocalErrorReportStorage.cs">
<Link>Core\Components\LocalErrorReportStorage.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Components\PendingReport.cs">
<Link>Core\Components\PendingReport.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Components\RemoteErrorReportStorage.cs">
<Link>Core\Components\RemoteErrorReportStorage.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Components\ReportRequestBuildCompletedEventArgs.cs">
<Link>Core\Components\ReportRequestBuildCompletedEventArgs.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Components\ReportRequestBuilder.cs">
<Link>Core\Components\ReportRequestBuilder.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Components\SimpleServiceContainer.cs">
<Link>Core\Components\SimpleServiceContainer.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Components\WebRequestFactory.cs">
<Link>Core\Components\WebRequestFactory.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\ErrorReport.cs">
<Link>ErrorReport.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Framework\ExecutionContext.cs">
<Link>Core\Framework\ExecutionContext.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Framework\IResult.cs">
<Link>Core\Framework\IResult.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Framework\IServiceLocator.cs">
<Link>Core\Framework\IServiceLocator.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Framework\ResultCompletionEventArgs.cs">
<Link>Core\Framework\ResultCompletionEventArgs.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Framework\SequentialResult.cs">
<Link>Core\Framework\SequentialResult.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\GlobalConfig.cs">
<Link>GlobalConfig.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\IReportingService.cs">
<Link>IReportingService.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\ReportingService.cs">
<Link>ReportingService.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Results\ErrorReportSaveResult.cs">
<Link>Core\Results\ErrorReportSaveResult.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Results\RequestBuildResult.cs">
<Link>Core\Results\RequestBuildResult.cs</Link>
</Compile>
<Compile Include="..\Core\BugFreak\Results\RequestExecutionResult.cs">
<Link>Core\Results\RequestExecutionResult.cs</Link>
</Compile>
<Compile Include="BugFreak.cs" />
<Compile Include="Core\Components\RequestErrorDataProvider.cs" />
<Compile Include="Core\Components\SessionErrorDataProvider.cs" />
<Compile Include="Core\Components\UserErrorDataProvider.cs" />
<Compile Include="Components\RequestErrorDataProvider.cs" />
<Compile Include="Components\SessionErrorDataProvider.cs" />
<Compile Include="Components\UserErrorDataProvider.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ReportErrorAttribute.cs" />
<Compile Include="Infrastructure\ReportErrorAttribute.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
Expand Down
6 changes: 3 additions & 3 deletions Code/BugFreak.MVC3/BugFreak.MVC3.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<copyright>Copyright 2013</copyright>
<tags>error reporting exception handle mvc</tags>
</metadata>
<files>
<file src="readme.txt" target="" />
</files>
<files>
<file src="readme.txt" target="" />
</files>
</package>
7 changes: 3 additions & 4 deletions Code/BugFreak.MVC3/BugFreak.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
using BugFreak.Core.Components;
using BugFreak.MVC3;
using BugFreak.Components;
using BugFreak.Infrastructure;
using System.Web.Mvc;

namespace BugFreak
{
using System.Web.Mvc;

public class BugFreak
{
public static void Hook(string apiKey, string token)
Expand Down
37 changes: 37 additions & 0 deletions Code/BugFreak.MVC3/Components/RequestErrorDataProvider.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@

namespace BugFreak.Components
{
using System.Collections.Generic;
using System.Globalization;
using System.Web;

public class RequestErrorDataProvider : IErrorDataProvider
{
private HttpContext _httpContext;

public HttpContext HttpContext
{
get { return _httpContext ?? HttpContext.Current; }
set { _httpContext = value; }
}

public List<KeyValuePair<string, string>> GetData()
{
var result = new List<KeyValuePair<string, string>>();

if (HttpContext != null)
{
result.Add(new KeyValuePair<string, string>("Timestamp", HttpContext.Timestamp.ToString(CultureInfo.InvariantCulture)));
result.Add(new KeyValuePair<string, string>("URL", HttpContext.Request.Url.AbsoluteUri));
result.Add(new KeyValuePair<string, string>("Query", HttpContext.Request.QueryString.ToString()));
result.Add(new KeyValuePair<string, string>("HttpMethod", HttpContext.Request.HttpMethod));
result.Add(new KeyValuePair<string, string>("User Agent", HttpContext.Request.UserAgent));
result.Add(new KeyValuePair<string, string>("Accept", string.Join(", ", HttpContext.Request.AcceptTypes ?? new string[0])));
result.Add(new KeyValuePair<string, string>("Content-Length", HttpContext.Request.ContentLength.ToString(CultureInfo.InvariantCulture)));
result.Add(new KeyValuePair<string, string>("Content-Type", HttpContext.Request.ContentType));
}

return result;
}
}
}
31 changes: 31 additions & 0 deletions Code/BugFreak.MVC3/Components/SessionErrorDataProvider.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
namespace BugFreak.Components
{
using System.Collections.Generic;
using System.Globalization;
using System.Web;

public class SessionErrorDataProvider : IErrorDataProvider
{
private HttpContext _httpContext;

public HttpContext HttpContext
{
get { return _httpContext ?? HttpContext.Current; }
set { _httpContext = value; }
}

public List<KeyValuePair<string, string>> GetData()
{
var result = new List<KeyValuePair<string, string>>();

if (HttpContext != null && HttpContext.Session != null)
{
result.Add(new KeyValuePair<string, string>("SessionID", HttpContext.Session.SessionID));
result.Add(new KeyValuePair<string, string>("SessionTimeout", HttpContext.Session.Timeout.ToString(CultureInfo.InvariantCulture)));
result.Add(new KeyValuePair<string, string>("SessionIsNew", HttpContext.Session.IsNewSession.ToString()));
}

return result;
}
}
}
Original file line number Diff line number Diff line change
@@ -1,24 +1,28 @@
using System.Collections.Generic;
using System.Web;
using BugFreak.Components;

namespace BugFreak.Core.Components
namespace BugFreak.Components
{
using System.Collections.Generic;
using System.Web;

public class UserErrorDataProvider : IErrorDataProvider
{
private HttpContextBase _httpContext;

public HttpContextBase HttpContext
{
get { return _httpContext ?? new HttpContextWrapper(System.Web.HttpContext.Current); }
get
{
return _httpContext ?? (System.Web.HttpContext.Current != null
? new HttpContextWrapper(System.Web.HttpContext.Current)
: null);
}
set { _httpContext = value; }
}

public List<KeyValuePair<string, string>> GetData()
{
var result = new List<KeyValuePair<string, string>>();

if (HttpContext.Request.IsAuthenticated)
if (HttpContext != null && HttpContext.Request.IsAuthenticated)
{
result.Add(new KeyValuePair<string, string>("Username", HttpContext.User.Identity.Name));
result.Add(new KeyValuePair<string, string>("AuthenticationType", HttpContext.User.Identity.AuthenticationType));
Expand Down
35 changes: 0 additions & 35 deletions Code/BugFreak.MVC3/Core/Components/RequestErrorDataProvider.cs

This file was deleted.

Loading