/// <summary> /// Constructor. /// </summary> public GradeSubmissionViewModel( Checkpoint checkpoint, GradeSubmissionResult result, Func <TestResult, string> testUrlBuilder, Func <int, string> buildUrlBuilder, Func <Commit, int, string> pullRequestUrlBuilder, ITimeZoneProvider timeZoneProvider) { LastName = result.LastName; FirstName = result.FirstName; SubmissionId = result.SubmissionId; Committed = GetStatus ( result.CommitDate, result.CommitDaysLate, buildUrlBuilder(result.Build.Id), timeZoneProvider ); Submitted = GetStatus ( result.SubmissionDate, result.SubmissionDaysLate, null /*buildUrl*/, timeZoneProvider ); PullRequest = GetLink ( pullRequestUrlBuilder(result.Build.Commit, result.PullRequestNumber.Value), "See Submission", preventWrapping: true ); RequiredTests = result.RequiredTestsPassed ? GetColoredText("green", "Passed", bold: false, preventWrapping: true) : GetColoredText("red", "Failed", bold: true, preventWrapping: true); Feedback = result.Feedback; FeedbackSent = result.FeedbackSent; TestClassResults = TestClassTableEntry.GetTestClassResults ( checkpoint, result.Build, testUrlBuilder ); PastSubmissions = result.PastSubmissions.Select ( pastSubmission => new PastSubmissionTableEntry ( pastSubmission, buildUrlBuilder, pullRequestUrlBuilder, timeZoneProvider ) ).ToList(); }
/// <summary> /// Constructor. /// </summary> public AssignmentDisplayProviderFactory( ITimeZoneProvider timeZoneProvider, IAssignmentUrlProvider assignmentUrlProvider) { _timeZoneProvider = timeZoneProvider; _assignmentUrlProvider = assignmentUrlProvider; }
public BlogPostViewModelCreator(IBlogManager blogManager, IMapper mapper ,ITimeZoneProvider timeZoneProvider) { this.blogManager = blogManager; this.mapper = mapper; this.timeZoneProvider = timeZoneProvider; }
public LocalDateTimeProvider( ITimeZoneProvider timeZoneProvider, ILogger <LocalDateTimeProvider> logger) { _timeZoneProvider = timeZoneProvider; _logger = logger; }
/// <summary> /// Constructor. /// </summary> public SubmissionCandidatesViewModel( User user, IList <Commit> commits, Func <Commit, string> commitUrlBuilder, Checkpoint checkpoint, Model.Projects.Submission latestSubmission, ITimeZoneProvider timeZoneProvider) { User = user; Checkpoint = checkpoint; Candidates = commits .OrderByDescending(commit => commit.PushDate) .ThenByDescending(commit => commit.CommitDate) .Select ( commit => new SubmissionCandidateViewModel ( commit, commitUrlBuilder(commit), latestSubmission?.CommitId == commit.Id, commit == commits.First(), timeZoneProvider ) ).ToList(); }
public BlogPostViewModelCreateorTest() { var blogManagerMock = new Mock <IBlogManager>(); blogManagerMock.Setup(bm => bm.GetCategories()) .Returns(new CategoryCacheEntryCollection()); this.blogManager = blogManagerMock.Object; var mapperMock = new Mock <IMapper>(); mapperMock.Setup(m => m.Map <List <CategoryViewModel> >(new CategoryCacheEntryCollection())) .Returns(new List <CategoryViewModel> { new CategoryViewModel() }); this.mapper = mapperMock.Object; var opt = new TimeZoneProviderOptions { AdjustDisplayTimeZone = false, DisplayTimeZoneIndex = decimal.Zero }; var optAccessor = new OptionsAccessor <TimeZoneProviderOptions> { Value = opt }; timeZoneProvider = new TimeZoneProvider(optAccessor); }
/// <summary> /// Constructor. /// </summary> public UpdatedSectionAssignmentsViewModel( UpdatedSectionAssignmentResults results, DateTime submissionsRetrievedDate, SelectAssignmentReport markAssignmentsGraded, ITimeZoneProvider timeZoneProvider) { SectionName = results.SectionName; GradebookName = results.GradebookName; StartDate = results.AssignmentsLastGradedDate != DateTime.MinValue ? results.AssignmentsLastGradedDate .FormatLongDateTime(timeZoneProvider) : "The beginning"; EndDate = submissionsRetrievedDate.FormatLongDateTime(timeZoneProvider); AssignmentResults = results.AssignmentResults.Select ( result => new AssignmentUpdatesViewModel(result) ).ToList(); MarkAssignmentsGraded = markAssignmentsGraded; }
/// <summary> /// Création d'un nouveau ViewModel de thème /// </summary> public NatalChartViewModel( IFileService fileService, ITimeZoneProvider tzProvider, IAstroService astroService ) { //DateUT = new DateUT(DateTime.Now); //Longitude = new SweNet.Longitude(5, 20, 0, LongitudePolarity.East); //Latitude = new SweNet.Latitude(47, 52, 0, LatitudePolarity.North); //HouseSystem = HouseSystem.Placidus; //Planets.AddRange(new Planet[] { // Planet.Sun, Planet.Moon, Planet.Mercury, Planet.Venus, Planet.Mars, Planet.Jupiter, // Planet.Saturn, Planet.Uranus, Planet.Neptune, Planet.Pluto, // Planet.MeanNode, Planet.TrueNode, // Planet.MeanApog, Planet.OscuApog, Planet.Earth //}); //Planets.AddRange(new Planet[] { Planet.AsAsteroid(433), Planet.AsAsteroid(3045), Planet.AsAsteroid(7066) }); this.AstroService = astroService; _FileService = fileService; _TimeZoneProvider = tzProvider; FileName = null; IsDirty = false; Definition = new NatalChartDefinitionViewModel(_TimeZoneProvider); Definition.PropertyChanged += Definition_PropertyChanged; }
/// <summary> /// Constructor. /// </summary> public PastSubmissionTableEntry( PastSubmissionResult result, Func<int, string> buildUrlBuilder, Func<Commit, int, string> pullRequestUrlBuilder, ITimeZoneProvider timeZoneProvider) { CheckpointName = result.CheckpointDisplayName; DateCommitted = GetLink ( buildUrlBuilder(result.Build.Id), result.CommitDate.FormatShortDateTime(timeZoneProvider), preventWrapping: true ); SubmissionStatus = GetSubmissionStatus(result.DaysLate); PullRequest = GetLink ( pullRequestUrlBuilder(result.Build.Commit, result.PullRequestNumber.Value), "Pull Request", preventWrapping: true ); PastSubmissionFeedback = new List<PastSubmissionFeedback>() { new PastSubmissionFeedback(result.Feedback) }; }
/// <summary> /// Constructor. /// </summary> public SubmissionCandidatesViewModel( User user, IList<Commit> commits, Func<Commit, string> commitUrlBuilder, Checkpoint checkpoint, Model.Projects.Submission latestSubmission, ITimeZoneProvider timeZoneProvider) { User = user; Checkpoint = checkpoint; Candidates = commits .OrderByDescending(commit => commit.PushDate) .ThenByDescending(commit => commit.CommitDate) .Select ( commit => new SubmissionCandidateViewModel ( commit, commitUrlBuilder(commit), latestSubmission?.CommitId == commit.Id, commit == commits.First(), timeZoneProvider ) ).ToList(); }
/// <summary> /// Constructor. /// </summary> public AssignmentResultViewModel( StudentAssignmentResult result, Func<int, string> getQuestionUrl, ITimeZoneProvider timeZoneProvider) { AssignmentName = result.AssignmentName; DueDate = result.AssignmentDueDate.FormatLongDateTime(timeZoneProvider); Score = $"{result.Score} / {result.QuestionResults.Sum(qr => qr.QuestionPoints)}"; Status = GetColoredText ( result.Status.GetColor(), result.Status.GetText(), result.Status.GetBold(), preventWrapping: true ); QuestionResults = result.QuestionResults .Select ( qr => new StudentQuestionResultViewModel ( qr, getQuestionUrl ) ).ToList(); }
/// <summary> /// Constructor. /// </summary> public QuestionSubmissionViewModel( QuestionSubmissionResult result, IAssignmentUrlProvider urlProvider, ITimeZoneProvider timeZoneProvider) { var submissionUrl = urlProvider.GetQuestionSubmissionUrl( result.AssignmentId, result.QuestionId, result.SubmissionDate, result.UserId); SubmissionDate = GetLink ( submissionUrl, result.SubmissionDate.FormatShortDateTime(timeZoneProvider), preventWrapping: true ); Score = GetColoredText ( "black", $"{result.Score} / {result.QuestionPoints}", bold: false, preventWrapping: true ); Status = GetColoredText ( result.Status.GetColor(), result.Status.GetText(), result.Status.GetBold(), preventWrapping: true ); }
/// <summary> /// Constructor. /// </summary> public UpdatedSectionAssignmentsViewModel( UpdatedSectionAssignmentResults results, SelectAssignmentReport markAssignmentsGraded, ITimeZoneProvider timeZoneProvider, IAssignmentDisplayProviderFactory displayProviderFactory) { SectionName = results.SectionName; GradebookName = results.GradebookName; StartDate = results.AssignmentsLastGradedDate != DateTime.MinValue ? results.AssignmentsLastGradedDate .FormatLongDateTime(timeZoneProvider) : "The beginning"; EndDate = results.ResultsRetrievedDate.FormatLongDateTime(timeZoneProvider); AssignmentResults = results.AssignmentResults.Select ( result => new AssignmentUpdatesViewModel ( result, displayProviderFactory ) ).ToList(); MarkAssignmentsGraded = markAssignmentsGraded; }
/// <summary> /// Constructor. /// </summary> protected AssignmentDisplayProvider( ITimeZoneProvider timeZoneProvider, IAssignmentUrlProvider assignmentUrlProvider) { TimeZoneProvider = timeZoneProvider; AssignmentUrlProvider = assignmentUrlProvider; }
/// <summary> /// Formats the given date time, in the correct timezone. /// </summary> public static string FormatShortDateTime( this DateTime dateTime, ITimeZoneProvider timeZoneProvider) { var userTime = timeZoneProvider.ToUserLocalTime(dateTime); return userTime.ToString("M/d/yyyy h:mm tt"); }
/// <summary> /// Constructor. /// </summary> public SeparateSubmissionsDisplayProvider( ITimeZoneProvider timeZoneProvider, IAssignmentUrlProvider assignmentUrlProvider, SeparateSubmissionsAssignmentResult result) : base(timeZoneProvider, assignmentUrlProvider) { _result = result; }
/// <summary> /// Constructor. /// </summary> public CombinedSubmissionsDisplayProvider( ITimeZoneProvider timeZoneProvider, IAssignmentUrlProvider assignmentUrlProvider, CombinedSubmissionsAssignmentResult result) : base(timeZoneProvider, assignmentUrlProvider) { _result = result; }
/// <summary> /// Formats the given date time, in the correct timezone. /// </summary> public static string FormatLongDateTime( this DateTime dateTime, ITimeZoneProvider timeZoneProvider) { var userTime = timeZoneProvider.ToUserLocalTime(dateTime); return $"{userTime.ToString("M/d/yyyy")} at {userTime.ToString("h:mm tt")}"; }
public void GetConfiguredTimeZone_Respects_ConfigSettings( bool adjustDisplayTimeZone, decimal displayTimeZoneIndex, DateTimeZone expected) { ITimeZoneProvider tzp = CreateTimeZoneProvider(adjustDisplayTimeZone, displayTimeZoneIndex); var tz = tzp.GetConfiguredTimeZone(); Assert.Equal(expected, tz); }
/// <summary> /// Formats the given date, in the correct timezone. /// </summary> public static string FormatShortDate( this DateTime dateTime, ITimeZoneProvider timeZoneProvider) { var userTime = timeZoneProvider.ToUserLocalTime(dateTime); return(userTime.ToString("M/d")); }
/// <summary> /// Formats the given date time, in the correct timezone. /// </summary> public static string FormatLongDateTime( this DateTime dateTime, ITimeZoneProvider timeZoneProvider) { var userTime = timeZoneProvider.ToUserLocalTime(dateTime); return($"{userTime.ToString("M/d/yyyy")} at {userTime.ToString("h:mm tt")}"); }
/// <summary> /// Constructor. /// </summary> public PastSubmissionTableEntry( PastSubmissionResult result, Func <int, string> buildUrlBuilder, Func <Commit, int, string> pullRequestUrlBuilder, ITimeZoneProvider timeZoneProvider) { CheckpointName = GetColoredText ( "black", result.CheckpointDisplayName, bold: false, preventWrapping: true ); Committed = GetStatus ( result.CommitDate, result.CommitDaysLate, buildUrlBuilder(result.Build.Id), timeZoneProvider ); Submitted = GetStatus ( result.SubmitDate, result.SubmitDaysLate, null /*buildUrl*/, timeZoneProvider ); RequiredTestsPassed = result.RequiredTestsPassed ? GetColoredText ( "green", "Passed", bold: false, preventWrapping: true ) : GetColoredText ( "red", "Failed", bold: true, preventWrapping: true ); PullRequest = GetLink ( pullRequestUrlBuilder(result.Build.Commit, result.PullRequestNumber.Value), "Pull Request", preventWrapping: true ); PastSubmissionFeedback = new List <PastSubmissionFeedback>() { new PastSubmissionFeedback(result.Feedback) }; }
/// <summary> /// Constructor. /// </summary> public BaseControllerArgs( ILogContext logContext, IUserProvider userProvider, ITimeZoneProvider timeZoneProvider) { LogContext = logContext; UserProvider = userProvider; TimeZoneProvider = timeZoneProvider; }
protected override TimeZoneInfo GetTimeZone(Guid entityRecordId) { ITimeZoneProvider <Case> provider = ClassFactory.Get <CaseTimeZoneProvider>( new ConstructorArgument("userConnection", UserConnection), new ConstructorArgument("caseId", entityRecordId) ); return(provider.GetTimeZone()); }
/// <summary> /// Constructor. /// </summary> public UnreadFeedbackViewModel( UnreadFeedbackResult result, Func <string, string, int, string> feedbackUrlBuilder, ITimeZoneProvider timeZoneProvider) { ProjectName = result.ProjectName; CheckpointDisplayName = result.CheckpointDisplayName; CommitDate = result.CommitDate.FormatLongDateTime(timeZoneProvider); FeedbackUrl = feedbackUrlBuilder(result.ProjectName, result.CheckpointName, result.SubmissionId); }
/// <summary> /// Constructor. /// </summary> public UnreadFeedbackViewModel( UnreadFeedbackResult result, Func<string, string, int, string> feedbackUrlBuilder, ITimeZoneProvider timeZoneProvider) { ProjectName = result.ProjectName; CheckpointDisplayName = result.CheckpointDisplayName; CommitDate = result.CommitDate.FormatLongDateTime(timeZoneProvider); FeedbackUrl = feedbackUrlBuilder(result.ProjectName, result.CheckpointName, result.SubmissionId); }
/// <summary> /// Constructor. /// </summary> public BaseControllerArgs( ILogContext logContext, IIdentityProvider identityProvider, IUserProvider userProvider, ITimeZoneProvider timeZoneProvider) { LogContext = logContext; IdentityProvider = identityProvider; UserProvider = userProvider; TimeZoneProvider = timeZoneProvider; }
/// <summary> /// Constructor. /// </summary> public GradeSubmissionViewModel( Checkpoint checkpoint, GradeSubmissionResult result, Func<TestResult, string> testUrlBuilder, Func<int, string> buildUrlBuilder, Func<Commit, int, string> pullRequestUrlBuilder, ITimeZoneProvider timeZoneProvider) { LastName = result.LastName; FirstName = result.FirstName; SubmissionId = result.SubmissionId; CommitDate = GetLink ( buildUrlBuilder(result.Build.Id), result.CommitDate.FormatShortDateTime(timeZoneProvider), preventWrapping: true ); SubmissionStatus = GetSubmissionStatus(result.DaysLate); PullRequest = GetLink ( pullRequestUrlBuilder(result.Build.Commit, result.PullRequestNumber.Value), "See Submission", preventWrapping: true ); RequiredTests = result.RequiredTestsPassed ? GetColoredText("green", "Passed", bold: false, preventWrapping: true) : GetColoredText("red", "Failed", bold: true, preventWrapping: true); Feedback = result.Feedback; FeedbackSent = result.FeedbackSent; TestClassResults = TestClassTableEntry.GetTestClassResults ( checkpoint, result.Build, testUrlBuilder ); PastSubmissions = result.PastSubmissions.Select ( pastSubmission => new PastSubmissionTableEntry ( pastSubmission, buildUrlBuilder, pullRequestUrlBuilder, timeZoneProvider ) ).ToList(); }
/// <summary> /// Constructor. /// </summary> public BuildViewModel( BuildResult buildResult, IList <UnreadFeedbackResult> unreadFeedback, Func <Model.Projects.Build, string> commitUrlBuilder, Func <TestResult, string> testUrlBuilder, Func <string, string, int, string> feedbackUrlBuilder, ITimeZoneProvider timeZoneProvider) { User = buildResult.Build.Commit.User; Submissions = new CheckpointSubmissionsViewModel ( buildResult.Submissions, timeZoneProvider ); PushDateLong = buildResult.Build.Commit.PushDate.FormatLongDateTime(timeZoneProvider); PushDateShort = buildResult.Build.Commit.PushDate.FormatShortDateTime(timeZoneProvider); CommitMessage = buildResult.Build.Commit.Message; CommitSha = buildResult.Build.Commit.Sha; CommitUrl = commitUrlBuilder(buildResult.Build); BuildStatus = buildResult.Build.Status; BuildDuration = buildResult.Build.DateCompleted - buildResult.Build.DateStarted; BuildOutput = buildResult.Build.Output; TestClassResults = TestClassTableEntry.GetTestClassResults ( null /*checkpoint*/, buildResult.Build, testUrlBuilder ); IsLatestBuild = buildResult.LatestBuild; TestTrend = buildResult.Build.Status == BuildStatus.Completed ? new TestTrendViewModel ( buildResult.AllBuildTestCounts, buildResult.Build.Commit.Project.Name, buildResult.Build, false /*thumbnail*/, timeZoneProvider ) : null; UnreadFeedback = unreadFeedback.Select ( uf => new UnreadFeedbackViewModel ( uf, feedbackUrlBuilder, timeZoneProvider ) ).ToList(); }
/// <summary> /// Constructor. /// </summary> public CheckpointSubmissionsViewModel( UserSubmissionResults submissions, ITimeZoneProvider timeZoneProvider) { User = submissions.User; Checkpoints = submissions.SubmissionResults .Select ( submission => new CheckpointSubmissionViewModel ( submission, timeZoneProvider ) ).ToList(); }
/// <summary> /// Returns the submission status HTML for a given submission. /// </summary> public string GetStatus( DateTime?date, int?daysLate, string buildUrl, ITimeZoneProvider timeZoneProvider) { if (date == null || daysLate == null) { return("No Submission"); } var dateStr = GetDate(date, buildUrl, timeZoneProvider); var lateStr = GetLate(daysLate); return($"<div style=\"white-space: nowrap\">{dateStr}: {lateStr}</div>"); }
/// <summary> /// Constructor. /// </summary> public BuildViewModel( BuildResult buildResult, IList<UnreadFeedbackResult> unreadFeedback, Func<Model.Projects.Build, string> commitUrlBuilder, Func<TestResult, string> testUrlBuilder, Func<string, string, int, string> feedbackUrlBuilder, ITimeZoneProvider timeZoneProvider) { User = buildResult.Build.Commit.User; Submissions = new CheckpointSubmissionsViewModel ( buildResult.Submissions, timeZoneProvider ); PushDate = buildResult.Build.Commit.PushDate; CommitMessage = buildResult.Build.Commit.Message; CommitSha = buildResult.Build.Commit.Sha; CommitUrl = commitUrlBuilder(buildResult.Build); BuildStatus = buildResult.Build.Status; BuildDuration = buildResult.Build.DateCompleted - buildResult.Build.DateStarted; BuildOutput = buildResult.Build.Output; TestClassResults = TestClassTableEntry.GetTestClassResults ( null /*checkpoint*/, buildResult.Build, testUrlBuilder ); IsLatestBuild = buildResult.LatestBuild; TestTrend = buildResult.Build.Status == BuildStatus.Completed ? new TestTrendViewModel ( buildResult.AllBuildTestCounts, buildResult.Build.Commit.Project.Name, buildResult.Build, thumbnail: false ) : null; UnreadFeedback = unreadFeedback.Select ( uf => new UnreadFeedbackViewModel ( uf, feedbackUrlBuilder, timeZoneProvider ) ).ToList(); }
/// <summary> /// Constructor. /// </summary> public SubmissionCandidateViewModel( Commit commit, string commitUrl, bool previousSubmission, bool defaultChoice, ITimeZoneProvider timeZoneProvider) { CommitId = commit.Id; Sha = commit.Sha; DateCommitted = commit.PushDate.FormatLongDateTime(timeZoneProvider); GitHubUrl = commitUrl; BuildId = commit.Build.Id; PassingTests = commit.Build.TestResults.Count(t => t.Succeeded); CommitMessage = commit.Message; PreviousSubmission = previousSubmission; DefaultChoice = defaultChoice; }
/// <summary> /// Constructor. /// </summary> public ProjectStatusResultsViewModel( ProjectStatusResults projectStatusResults, ITimeZoneProvider timeZoneProvider) { LastName = projectStatusResults.LastName; FirstName = projectStatusResults.FirstName; UserId = projectStatusResults.UserId; ProjectStatus = projectStatusResults.ProjectStatus .Select ( projectStatus => new ProjectStatusViewModel ( projectStatus, timeZoneProvider ) ).ToList(); }
/// <summary> /// Constructor. /// </summary> public ProjectStatusViewModel( ProjectStatus projectStatus, ITimeZoneProvider timeZoneProvider) { ProjectName = projectStatus.ProjectName; RepoName = projectStatus.RepoName; LastCommitDate = projectStatus.LastCommitDate.FormatLongDateTime(timeZoneProvider); LastBuildSucceeded = projectStatus.LastBuildSucceeded; TestTrend = new TestTrendViewModel ( projectStatus.BuildTestCounts, projectStatus.ProjectName, null /*currentBuild*/, true /*thumbnail*/, timeZoneProvider ); }
/// <summary> /// Constructor. /// </summary> public SubmittedViewModel( Commit commit, string commitUrl, Checkpoint checkpoint, ITimeZoneProvider timeZoneProvider) { User = commit.User; Checkpoint = checkpoint; Submission = new SubmissionCandidateViewModel ( commit, commitUrl, true /*previousSubmission*/, true /*defaultChoice*/, timeZoneProvider ); }
/// <summary> /// Constructor. /// </summary> public StudentAssignmentsViewModel( StudentAssignmentResults results, Func<int, string> getQuestionUrl, ITimeZoneProvider timeZoneProvider) { LastName = results.LastName; FirstName = results.FirstName; SectionName = results.SectionName; AssignmentResults = results.AssignmentResults.Select ( result => new AssignmentResultViewModel ( result, getQuestionUrl, timeZoneProvider ) ).ToList(); }
/// <summary> /// Constructor. /// </summary> public AssignmentSubmissionViewModel( AssignmentSubmissionResult result, IAssignmentUrlProvider urlProvider, ITimeZoneProvider timeZoneProvider) { var submissionUrl = urlProvider.GetAssignmentSubmissionUrl( result.AssignmentId, result.SubmissionDate, result.UserId); SubmissionDate = GetLink ( submissionUrl, result.SubmissionDate.FormatShortDateTime(timeZoneProvider), preventWrapping: true ); Score = GetColoredText ( "black", $"{result.Score} / {result.AssignmentPoints}", bold: false, preventWrapping: true ); Status = GetColoredText ( result.Status.GetColor(), result.Status.GetText(), result.Status.GetBold(), preventWrapping: true ); QuestionResults = result.QuestionResults .Select ( qr => new StudentQuestionResultViewModel ( qr, urlProvider, timeZoneProvider ) ).ToList(); }
/// <summary> /// Constructor. /// </summary> public TestTrendViewModel( IList <BuildTestCount> allBuildTestCounts, string projectName, Model.Projects.Build currentBuild, bool thumbnail, ITimeZoneProvider timeZoneProvider) { AllBuildTestCounts = GetTestCounts(allBuildTestCounts); ProjectName = projectName; CurrentBuildIndex = currentBuild != null ? GetCurrentBuildIndex(AllBuildTestCounts, currentBuild) : (int?)null; Thumbnail = thumbnail; _timeZoneProvider = timeZoneProvider; }
/// <summary> /// Constructor. /// </summary> public StudentQuestionResultViewModel( StudentQuestionResult questionResult, IAssignmentUrlProvider urlProvider, ITimeZoneProvider timeZoneProvider) { var name = questionResult.QuestionName; QuestionName = GetColoredText ( "black", name, bold: false, preventWrapping: true ); ScoreText = GetColoredText ( "black", $"{questionResult.Score} / {questionResult.QuestionPoints}", bold: false, preventWrapping: true ); Status = GetColoredText ( questionResult.Status.GetColor(), questionResult.Status.GetText(), questionResult.Status.GetBold(), preventWrapping: true ); Submissions = questionResult .SubmissionResults ?.Select ( qsr => new QuestionSubmissionViewModel ( qsr, urlProvider, timeZoneProvider ) ).ToList(); }
/// <summary> /// Returns a string with the given date. If a build URL is included, /// the string will be a link to the build result. /// </summary> private string GetDate( DateTime?date, string buildUrl, ITimeZoneProvider timeZoneProvider) { return(buildUrl != null ? GetLink ( buildUrl, date.Value.FormatShortDateTime(timeZoneProvider), preventWrapping : true ) : GetColoredText ( "black", date.Value.FormatShortDateTime(timeZoneProvider), bold: false, preventWrapping: true )); }
/// <summary> /// Constructor. /// </summary> public CheckpointSubmissionViewModel( UserSubmissionResult submissionResult, ITimeZoneProvider timeZoneProvider) { CheckpointName = submissionResult.CheckpointName; CheckpointDisplayName = submissionResult.CheckpointDisplayName; CheckpointDueDate = submissionResult.CheckpointDueDate .FormatLongDateTime(timeZoneProvider); SubmissionId = submissionResult.Submission?.Id; if (submissionResult.Submission?.Commit?.CommitDate != null) { SubmissionCommitDate = submissionResult.Submission .Commit .CommitDate .FormatLongDateTime(timeZoneProvider); } PastDue = submissionResult.Submission == null && submissionResult.CheckpointDueDate < DateTime.UtcNow; FeedbackAvailable = submissionResult.Submission?.FeedbackSent ?? false; }
/// <summary> /// Constructor. /// </summary> public DynamicTableViewComponent(ITimeZoneProvider timeZoneProvider) { _timeZoneProvider = timeZoneProvider; }
/// <summary> /// Constructor. /// </summary> public DateTimeModelBinderProvider(ITimeZoneProvider timeZoneProvider) { _timeZoneProvider = timeZoneProvider; }