public Antwort(double antwortzeit, string tageszeit, DayOfWeek wochentag) { Antwortzeit = antwortzeit; Wochentag = wochentag; Tageszeit = tageszeit; Synchronizität = Helper.GetAntwortzeit(Antwortzeit); }
public Antwort(double antwortzeit, DateTime zeitstempel_empfangene_mail, DateTime zeitstempel_gesendete_antwort) { Antwortzeit = antwortzeit; Wochentag = zeitstempel_empfangene_mail.DayOfWeek; Tageszeit = Tageszeitabhaengigkeit.GetTageszeit(zeitstempel_empfangene_mail.TimeOfDay.Hours); Synchronizität = Helper.GetAntwortzeit(Antwortzeit); this.zeitstempel_empfangene_mail = zeitstempel_empfangene_mail; this.zeitstempel_gesendete_antwort = zeitstempel_gesendete_antwort; }
public void Synchronizitaet_Setzen() { Synchronizität = Helper.GetAntwortzeit(Antwortzeit); }
/** * Wähle aus allen Antwortzeiten der Konversation den Median und setze diesen als Synchronizitätswert */ public void Konversation_Auswerten() { Laenge = Antwortzeiten.Count + 1; int laenge = Antwortzeiten.Count; int halfIndex = laenge / 2; int unteresQuartilIndex = (int)(laenge * 0.25); int oberesQuartilIndex = (int)(laenge * 0.75); // Alle Antwortzeiten absteigend sortieren, also von langsamen bis zu schnellen Antworten List <double> antwortzeiten_sortiert = (from antwort in Antwortzeiten orderby antwort descending select antwort).ToList(); double median = 0; double unteres_quartil = 0; double oberes_quartil = 0; if (laenge > 1) { // Median if ((laenge % 2) == 0) { // Median ist der Mittelwert der beiden Antwortzeiten in der Mitte der Liste (gibt nicht genau einen, da gerade Anzahl an Werten) median = (Antwortzeiten[halfIndex] + Antwortzeiten[halfIndex - 1] / 2); } else { // Median ist die Antwortzeit genau in der Mitte der Liste median = Antwortzeiten[halfIndex]; } // Quartile if ((laenge % 4) == 0) { // Unteres Quartil unteres_quartil = (Antwortzeiten[unteresQuartilIndex] + Antwortzeiten[unteresQuartilIndex - 1] / 2); // Oberes Quartil oberes_quartil = (Antwortzeiten[oberesQuartilIndex] + Antwortzeiten[oberesQuartilIndex - 1] / 2); } else { // Unteres Quartil unteres_quartil = (Antwortzeiten[unteresQuartilIndex]); // Oberes Quartil oberes_quartil = (Antwortzeiten[oberesQuartilIndex]); } } MedianAntwortzeit = Helper.GetAntwortzeit(median); Antwortzeit UnteresQuartilAntwortzeit = Helper.GetAntwortzeit(unteres_quartil); Antwortzeit OberesQuartilAntwortzeit = Helper.GetAntwortzeit(oberes_quartil); // Abhängig vom Median und Quartilen speziellere Auswertung vornehmen if (MedianAntwortzeit == Antwortzeit.SehrSchnell || MedianAntwortzeit == Antwortzeit.Schnell) { if (Helper.GetAntwortzeit(Antwortzeiten[(int)(laenge * 0.1)]) == Antwortzeit.Schnell || Helper.GetAntwortzeit(Antwortzeiten[(int)(laenge * 0.1)]) == Antwortzeit.SehrSchnell) { Synchronizitaet = Synchronizitaet.KomplettSynchron; } else if (UnteresQuartilAntwortzeit == Antwortzeit.Schnell || UnteresQuartilAntwortzeit == Antwortzeit.SehrSchnell) { Synchronizitaet = Synchronizitaet.GroesstenteilsSynchron; } else { // Median bei schnell: Gleichmäßig Synchron und Asynchron Synchronizitaet = Synchronizitaet.EherSynchron; } } // Median bei normal: Gleichmäßig Synchron und Asynchron else if (MedianAntwortzeit == Antwortzeit.Normal) { Synchronizitaet = Synchronizitaet.GleichmaeßigSynchronUndAsynchron; } else if (MedianAntwortzeit == Antwortzeit.Langsam || MedianAntwortzeit == Antwortzeit.SehrLangsam) { if (Helper.GetAntwortzeit(Antwortzeiten[(int)(laenge * 0.9)]) == Antwortzeit.Langsam || Helper.GetAntwortzeit(Antwortzeiten[(int)(laenge * 0.9)]) == Antwortzeit.SehrLangsam) { Synchronizitaet = Synchronizitaet.KomplettAsynchron; } else if (OberesQuartilAntwortzeit == Antwortzeit.Langsam || OberesQuartilAntwortzeit == Antwortzeit.SehrLangsam) { Synchronizitaet = Synchronizitaet.GroesstenteilsAsynchron; } else { Synchronizitaet = Synchronizitaet.EherAsynchron; } } else { Synchronizitaet = Synchronizitaet.Undefiniert; } }