using System;
using System.Collections.Generic;
using System.Linq;
using Telerik.ILS.Data.Common.Repositories;
using Telerik.ILS.Data.Models;
using Telerik.ILS.Services.Common.CodeExecutor;
public class RunThisCode
{
public void Execute(IRepository<KidsSchoolSeason> seasons, IWriter writer)
{
var seasonId = 143;
var season = seasons.All().FirstOrDefault(x => x.KidsSchoolSeasonId == seasonId);
var examParticipants = season.KidsCandidateExams.SelectMany(x => x.TestSchedule.TestParticipations);
writer.WriteLine("Username,Application Points,Exam Date Points,Different?,Higher Score,Student Email,Parent Email");
foreach (var candidate in season.KidsCandidates)
{
var user = candidate.User;
var participant = examParticipants.FirstOrDefault(x => x.User.UserId == user.UserId);
short? applicationPoints = candidate.CandidateExamPoints ?? 0;
short? examPoints = 0;
if (participant != null)
{
examPoints = participant.Result ?? 0;
}
var toPrint = new List<string>()
{
user.Username,
applicationPoints.ToString(),
examPoints.ToString(),
(applicationPoints != examPoints).ToString(),
Math.Max(applicationPoints.Value, examPoints.Value).ToString(),
user.Email,
user.ParentEmail
};
writer.WriteLine(string.Join(",", toPrint));
}
}
}