/// <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();
        }
Esempio n. 2
0
 /// <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;
		}
Esempio n. 4
0
 public LocalDateTimeProvider(
     ITimeZoneProvider timeZoneProvider,
     ILogger <LocalDateTimeProvider> logger)
 {
     _timeZoneProvider = timeZoneProvider;
     _logger           = logger;
 }
Esempio n. 5
0
 /// <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();
 }
Esempio n. 6
0
        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
                     );
        }
Esempio n. 13
0
        /// <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");
        }
Esempio n. 16
0
 /// <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")}";
        }
Esempio n. 19
0
        public void GetConfiguredTimeZone_Respects_ConfigSettings(
            bool adjustDisplayTimeZone, decimal displayTimeZoneIndex, DateTimeZone expected)
        {
            ITimeZoneProvider tzp = CreateTimeZoneProvider(adjustDisplayTimeZone, displayTimeZoneIndex);
            var tz = tzp.GetConfiguredTimeZone();

            Assert.Equal(expected, tz);
        }
Esempio n. 20
0
        /// <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"));
        }
Esempio n. 21
0
        /// <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)
            };
        }
Esempio n. 23
0
 /// <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());
        }
Esempio n. 25
0
 /// <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);
 }
Esempio n. 27
0
		/// <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();
        }
Esempio n. 29
0
 /// <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();
 }
Esempio n. 30
0
 /// <summary>
 /// Constructor.
 /// </summary>
 public CheckpointSubmissionsViewModel(
     UserSubmissionResults submissions,
     ITimeZoneProvider timeZoneProvider)
 {
     User        = submissions.User;
     Checkpoints = submissions.SubmissionResults
                   .Select
                   (
         submission => new CheckpointSubmissionViewModel
         (
             submission,
             timeZoneProvider
         )
                   ).ToList();
 }
 /// <summary>
 /// Constructor.
 /// </summary>
 public CheckpointSubmissionsViewModel(
     UserSubmissionResults submissions,
     ITimeZoneProvider timeZoneProvider)
 {
     User = submissions.User;
     Checkpoints = submissions.SubmissionResults
         .Select
         (
             submission => new CheckpointSubmissionViewModel
             (
                 submission,
                 timeZoneProvider
             )
         ).ToList();
 }
Esempio n. 32
0
        /// <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>");
        }
Esempio n. 33
0
 /// <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;
 }
Esempio n. 35
0
 /// <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 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;
 }
Esempio n. 38
0
 /// <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 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();
        }
Esempio n. 42
0
        /// <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();
        }
Esempio n. 44
0
 /// <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;
 }