Skip to content

Instantly share code, notes, and snippets.

View MichaelStett's full-sized avatar

Michał Tymejczyk MichaelStett

  • Kongsberg
  • Szczecin
  • 23:05 (UTC +02:00)
View GitHub Profile
@MichaelStett
MichaelStett / RecordInput.cs
Created October 27, 2020 08:39
RecordInput.cs
public class RecordInput
{
public string FullName { get; set; }
public string Action { get; set; }
public DateTime Time { get; set; }
public void Deconstruct(out string name, out string action, out DateTime time)
=> (name, action, time) = (FullName, Action, Time);
public override string ToString()
@MichaelStett
MichaelStett / Program-1.cs
Created October 27, 2020 08:49
Program-1.cs
static void Main(string[] args)
{
ArgsValidation.Run(args);
var inputFile = args[0];
var attendanceFile = args[1];
var lectureNumber = int.Parse(args[2]);
var startTime = args[3];
@MichaelStett
MichaelStett / Program-2.cs
Created October 27, 2020 09:07
Program-2.cs
// Reading meeting file
var CsvInputRecords = CsvHelperExtension.GetInputRecords(inputFile);
var usersWithDates = new Dictionary<string, List<DateTime>>();
foreach (var (name, _, time) in CsvInputRecords)
{
if (usersWithDates.ContainsKey(name))
usersWithDates[name].Add(time);
else
@MichaelStett
MichaelStett / RecordOutput.cs
Created October 27, 2020 09:16
RecordOutput.cs
public class RecordOutput
{
public string FullName { get; set; }
public int AttendanceCount { get; set; }
public string AttendanceLength { get; set; }
}
public class RecordOutputMap : ClassMap<RecordOutput>
{
public RecordOutputMap()
@MichaelStett
MichaelStett / CsvHelperExtension-2.cs
Created October 27, 2020 09:19
CsvHelperExtension-2.cs
public static List<RecordOutput> GetOutputRecords(string file)
{
using var reader = new StreamReader(file, Encoding.UTF8);
using var csv = new CsvReader(reader, CultureInfo.InvariantCulture);
csv.Configuration.RegisterClassMap<RecordOutputMap>();
var records = csv.GetRecords<RecordOutput>();
@MichaelStett
MichaelStett / CsvHelperExtension-3.cs
Last active October 27, 2020 09:30
CsvHelperExtension-3.cs
public static void PostOutputRecords(string file, List<RecordOutput> records)
{
using var writer = new StreamWriter(file, false, Encoding.UTF8);
using var csv = new CsvWriter(writer, CultureInfo.InvariantCulture);
csv.WriteRecords(records);
}
@MichaelStett
MichaelStett / Program-3.cs
Last active October 27, 2020 09:58
Program-3.cs
// Reading last attendance file
var LastAttendanceRecords = CsvHelperExtension.GetOutputRecords(attendanceFile);
var CsvOutputRecords = usersWithMinutes.Select(x =>
{
var fullName = string.Join(" ", x.Key.Split(' ').Reverse()).Trim();
var lastRecord = LastAttendanceRecords.FirstOrDefault(f => f.FullName == fullName);
var count = lastRecord?.AttendanceCount ?? 0;
@MichaelStett
MichaelStett / Program-4.cs
Last active October 27, 2020 09:58
Program-4.cs
// Writing updated attendance to new file
CsvHelperExtension.PostOutputRecords(OUTPUT_FILE, CsvOutputRecords.OrderBy(r => r.FullName).ToList());
WriteLine($"Created new file {OUTPUT_FILE}.");
@MichaelStett
MichaelStett / index.html
Created October 27, 2020 20:34
AI1 Lab4
<!doctype html>
<html lang="en">
<head>
<title>Todo List</title>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css" integrity="sha512-+4zCK9k+qNFUR5X+cKL9EIR+ZOhtIloNl9GIKS57V1MyNsYpYcUrUeQc9vNfzsWfV28IaLL3i96P9sdNyeRssA==" crossorigin="anonymous" />
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="an
@MichaelStett
MichaelStett / CsvHelperExtension.cs
Created October 27, 2020 08:38
CsvHelperExtension.cs
public static List<RecordInput> GetInputRecords(string file)
{
using var reader = new StreamReader(file, Encoding.UTF8);
using var csv = new CsvReader(reader, CultureInfo.InvariantCulture);
csv.Configuration.RegisterClassMap<RecordInputMap>();
var records = csv.GetRecords<RecordInput>();