Exemplo n.º 1
0
        public async Task <HttpResponseMessage> Post([FromBody] CrashReport report)
        {
            var ip = WebApiApplication.GetClientIp();

            if (!RequestProtection.AddRequest(ip, RequestType.CrashReport))
            {
                return(Request.CreateResponse(HttpStatusCode.Forbidden, "Usage limit exceeded"));
            }

            var issueId = await GitHubReporter.CreateIssue(ip, report);

            return(MailReporter.SendMail(ip, report, issueId) ? Request.CreateResponse(HttpStatusCode.OK, "Success") : Request.CreateResponse(HttpStatusCode.InternalServerError, "Error sending message"));
        }
        public void Setup()
        {
            var logger = Substitute.For <ILogger <GitHubReporter> >();

            _mockClient       = Substitute.For <IGitHubClient>();
            _mockIssuesClient = Substitute.For <IIssuesClient>();
            _mockClient.Issue.Returns(_mockIssuesClient);
            _mockUsersClient = Substitute.For <IUsersClient>();
            _mockClient.User.Returns(_mockUsersClient);
            _mockRepositoryClient = Substitute.For <IRepositoriesClient>();
            _mockClient.Repository.Returns(_mockRepositoryClient);

            var user = new User(null, null, null, 0, null, DateTime.UtcNow, DateTime.UtcNow, 0, null, 0, 0, false, null, 0, 0, null, "LOGIN", null, null, 0, null, 0, 0, 0, null, new RepositoryPermissions(), false, null, null);

            _mockUsersClient.Current().Returns(Task.FromResult(user));

            _mockRepositoryClient.Get(Arg.Any <string>(), Arg.Any <string>()).Returns((args) => Task.FromResult(CreateRepository((string)args[0], (string)args[1], true, false)));

            _reporter = new GitHubReporter(logger, _mockClient, _config);
        }
Exemplo n.º 3
0
 private static async Task ReportToGitHub(IGitHubClient client, GitHubReportConfig config, ILogger <GitHubReporter> logger, IEnumerable <ValidationReport> reports)
 {
     var reporter = new GitHubReporter(logger, client, config);
     await reporter.Report(reports);
 }