/// <summary> /// Renders public event timetable component /// </summary> /// <param name="db">Database context</param> /// <param name="weeks">Weeks</param> /// <returns>Html component</returns> public HtmlString RenderEvents(SscisContext db, int userID, int weeks = 0) { DateTime now = DateTime.Now; now.AddDays(7 * weeks); DateTime start = _startOfWeek(now, DayOfWeek.Monday); DateTime end = start.AddDays(7); DateTime endTime = now.AddDays(7); List <Event> myEvents = db.Event.Where(e => e.IdTutor == userID && e.IsAccepted == true).ToList(); List <Event> myExtraEvents = db.Event.Where(e => e.IdApplicant == userID).ToList(); List <Event> myEventsWithoutAttendance = db.Event.Where(e => (e.IdTutor == userID && e.IsAccepted == true && e.Attendance == null && e.IsCancelled == false && e.TimeTo <= DateTime.Now)).ToList(); return(Render(myEvents, myExtraEvents, myEventsWithoutAttendance, userID)); }
/// <summary> /// Converts list of feedbacks to CSV string /// </summary> /// <param name="feedbacks">List of feedbacks</param> /// <param name="db">Database context</param> /// <returns>String with CSV content</returns> public string Convert(List <Feedback> feedbacks, SscisContext db) { StringBuilder builder = new StringBuilder(); builder.Append(CSV_HEADER); builder.Append("\n"); foreach (Feedback feedback in feedbacks) { Participation participation = db.Participation.Find(feedback.IdParticipation); Event @event = db.Event.Find(participation.IdEvent); builder.Append(FeedbackToString(feedback, @event)); builder.Append("\n"); } return(builder.ToString()); }
/// <summary> /// Resolves list of subjects of application /// </summary> /// <param name="data">String with subjects ids and degrees</param> /// <param name="db">Db context</param> /// <returns>List of subjects</returns> public List <TutorApplicationSubject> ResolveSubjects(string data, SscisContext db) { List <TutorApplicationSubject> result = new List <TutorApplicationSubject>(); string subjectsStr = data.Split(';')[0]; string degreesStr = data.Split(';')[1]; string[] subjectsArr = subjectsStr.Split(' '); string[] degreesArr = degreesStr.Split(' '); for (int i = 0; i < degreesArr.Length; i++) { if (subjectsArr[i].Length > 0 && degreesArr[i].Length > 0) { result.Add(new TutorApplicationSubject() { IdSubjectNavigation = db.EnumSubject.Find(int.Parse(subjectsArr[i])), Degree = byte.Parse(degreesArr[i]) }); } } return(result); }
/// <summary> /// Renders public event timetable component /// </summary> /// <param name="db">Database context</param> /// <param name="weeks">Weeks</param> /// <returns>Html component</returns> public HtmlString RenderPublic(SscisContext db, int weeks = 0) { DateTime now = DateTime.Now; now.AddDays(7 * weeks); DateTime start = _startOfWeek(now, DayOfWeek.Monday); DateTime end = start.AddDays(7); int month = 1; int dbMonth = Convert.ToInt32(db.SscisParam.Where(p => p.ParamKey.Equals(SSCISParameters.TIMETABLEMONTHRANGE)).Single().ParamValue); if (dbMonth > month) { month = dbMonth; } DateTime endTime = now.AddMonths(month); List <Event> events = db.Event.Where(e => e.TimeFrom >= now && e.TimeFrom <= endTime && e.IsAccepted != null && e.IsAccepted.Value).OrderBy(e => e.TimeFrom).ToList(); return(Render(events, "public-timetable")); }
public EmailService(SscisContext context, IEmailConfiguration emailConfiguration) { Db = context; _emailConfiguration = emailConfiguration; }
public SSCISSessionManager(SscisContext dbContext = null) { this.db = dbContext ?? new SscisContext(); }
public HomeController(SscisContext context, IEmailService emailService, IConfiguration configuration) { Db = context; _emailService = emailService; _configuration = configuration; }
/// <summary> /// Renders attendance component /// </summary> /// <param name="db">Database context</param> /// <param name="userID">Logged user ID</param> /// <param name="weeks">Number of weeks</param> /// <returns>Html component</returns> public HtmlString RenderAttendance(SscisContext db, int userID, int weeks = 0) { List <Event> myEventsWithoutAttendance = db.Event.Where(e => (e.IdTutor == userID && e.IsAccepted == true && e.Attendance == null && e.IsCancelled == false && e.TimeTo <= DateTime.Now)).ToList(); return(RenderAttendance(myEventsWithoutAttendance)); }