public async Task LoadContributorStats(string contributorId, string dateRange = DateRangesConsts.All) { IsLoading = true; DateTime contributorStatsDateTo = DateTimeConsts.Today; DateTime contributorStatsDateFrom = DateRangeHelper.GetStartRangeDateTime(dateRange); var contributorStatsDateToString = (contributorStatsDateTo).ToString(DateTimeConsts.DateTimeFormat); var contributorStatsDateFromString = (contributorStatsDateFrom).ToString(DateTimeConsts.DateTimeFormat); ContributorStatsDateRange = string.Format(ContributorStatsDateRangeStringFormat, contributorStatsDateFromString, contributorStatsDateToString); ContributorStats = await _contributorService.GetContributorStats(contributorId, contributorStatsDateFrom, contributorStatsDateTo); if (dateRange == DateRangesConsts.All) { var previousContributorStats = await _contributorService.GetContributorStats(contributorId, DateTimeConsts.UnixEpoch, DateTimeConsts.Yesterday); ContributorStatsIncrement = new ContributorStatsDto { Commits = contributorStats.Commits - previousContributorStats.Commits, Merges = contributorStats.Merges - previousContributorStats.Merges, LinesOfCode = contributorStats.LinesOfCode - previousContributorStats.LinesOfCode, ContribToProject = contributorStats.ContribToProject - previousContributorStats.ContribToProject }; } else { ContributorStatsIncrement = new ContributorStatsDto { Commits = int.MinValue, Merges = int.MinValue, LinesOfCode = int.MinValue, ContribToProject = double.MinValue }; } IsLoading = false; }
public ContributorServiceTestsFixture() { UnlimitedDateContributorId = "U1d4c2RYTjBjbUYwYVc5dUxYZGxZZz09OktyeXN0aWFuIEN6YXBsaWNraTprcnlzdGlhbi5jemFwbGlja2lAaW50aXZlLmNvbQ=="; UnlimitedDateContributorRepositoryId = "SWxsdXN0cmF0aW9uLXdlYg=="; UnlimitedDateContributorName = "Krystian Czaplicki"; UnlimitedDateContributorEmail = "*****@*****.**"; UnlimitedDateContributorCommits = 5; UnlimitedDateContributorMerges = 1; UnlimitedDateContributorLinesOfCode = 103; UnlimitedDateContributorContribToProject = 0.321; LimitedDateContributorId = "U1d4c2RYTjBjbUYwYVc5dUxYZGxZZz09OktyeXN0aWFuIEN6YXBsaWNraTprcnlzdGlhbi5jemFwbGlja2lAaW50aXZlLmNvbQ=="; LimitedDateContributorRepositoryId = "SWxsdXN0cmF0aW9uLXdlYg=="; LimitedDateContributorName = "Krystian Czaplicki"; LimitedDateContributorEmail = "*****@*****.**"; LimitedDateContributorCommits = 15; LimitedDateContributorMerges = 3; LimitedDateContributorLinesOfCode = 303; LimitedDateContributorContribToProject = 0.432; UnlimitedDateContributor = new ContributorStatsDto { Id = UnlimitedDateContributorId, RepositoryId = UnlimitedDateContributorRepositoryId, Name = UnlimitedDateContributorName, Email = UnlimitedDateContributorEmail, Commits = UnlimitedDateContributorCommits, Merges = UnlimitedDateContributorMerges, LinesOfCode = UnlimitedDateContributorLinesOfCode, ContribToProject = UnlimitedDateContributorContribToProject }; LimitedDateContributor = new ContributorStatsDto { Id = LimitedDateContributorId, RepositoryId = LimitedDateContributorRepositoryId, Name = LimitedDateContributorName, Email = LimitedDateContributorEmail, Commits = LimitedDateContributorCommits, Merges = LimitedDateContributorMerges, LinesOfCode = LimitedDateContributorLinesOfCode, ContribToProject = LimitedDateContributorContribToProject }; LimitedDateContributorFrom = new DateTime(2010, 1, 1, 8, 0, 0, DateTimeKind.Utc); LimitedDateContributorTo = new DateTime(2015, 1, 1, 8, 0, 0, DateTimeKind.Utc); HttpMessageHandler = new MockHttpMessageHandler(); HttpMessageHandler.When(string.Format(RestApiUrlsConsts.GetContributorStatsUrl, UnlimitedDateContributorId)) .Respond("application/json", JsonConvert.SerializeObject(UnlimitedDateContributor)); HttpMessageHandler.When(string.Format(RestApiUrlsConsts.GetContributorStatsWithRangeUrl, LimitedDateContributorId, LimitedDateContributorFrom.ToUnixTimestamp(), LimitedDateContributorTo.ToUnixTimestamp())) .Respond("application/json", JsonConvert.SerializeObject(LimitedDateContributor)); HttpMessageHandler.When(string.Format(RestApiUrlsConsts.GetContributorStatsWithRangeUrl, LimitedDateContributorId, LimitedDateContributorFrom.ToUnixTimestamp(), "*")) .Respond("application/json", JsonConvert.SerializeObject(LimitedDateContributor)); EmptyResultsHttpMessageHandler = new MockHttpMessageHandler(); EmptyResultsHttpMessageHandler.When(string.Format(RestApiUrlsConsts.GetContributorStatsUrl, UnlimitedDateContributorId)) .Respond("application/json", "[]"); EmptyResultsHttpMessageHandler.When(string.Format(RestApiUrlsConsts.GetContributorStatsWithRangeUrl, LimitedDateContributorId, LimitedDateContributorFrom.ToUnixTimestamp(), LimitedDateContributorTo.ToUnixTimestamp())) .Respond("application/json", "[]"); EmptyResultsHttpMessageHandler.When(string.Format(RestApiUrlsConsts.GetContributorStatsWithRangeUrl, LimitedDateContributorId, LimitedDateContributorFrom.ToUnixTimestamp(), "*")) .Respond("application/json", "[]"); ErrorStatusCodeHttpMessageHandler = new MockHttpMessageHandler(); ErrorStatusCodeHttpMessageHandler.When(string.Format(RestApiUrlsConsts.GetContributorStatsUrl, UnlimitedDateContributorId)) .Respond(HttpStatusCode.BadRequest); ErrorStatusCodeHttpMessageHandler.When(string.Format(RestApiUrlsConsts.GetContributorStatsWithRangeUrl, LimitedDateContributorId, LimitedDateContributorFrom.ToUnixTimestamp(), LimitedDateContributorTo.ToUnixTimestamp())) .Respond(HttpStatusCode.BadRequest); ErrorStatusCodeHttpMessageHandler.When(string.Format(RestApiUrlsConsts.GetContributorStatsWithRangeUrl, LimitedDateContributorId, LimitedDateContributorFrom.ToUnixTimestamp(), LimitedDateContributorTo.ToUnixTimestamp())) .Respond(HttpStatusCode.BadRequest); }