protected virtual void OnHamsterDayCareVisualInfo(int totalTicks, DateTime time) //Sends out event at every tick for visual updates { var ctx = new HamsterDBContext(); var hamsterlist = ctx.Hamsters.ToList(); var hamsterLog = new HamsterDayCareInfoEventArgs(hamsterlist, totalTicks, time); SendHamsterDayCareInfo?.Invoke(this, hamsterLog); }
protected async void ShowHamsterDayCareStatus(object sender, HamsterDayCareInfoEventArgs e) { await Task.Run(() => { int firstCageRow = 5; int counter = 0; if (e.DayTicker % 102 == 0) { days++; } int[] cageLeftPos = { 15, 35, 55, 75, 95 }; Console.SetCursorPosition(50, 1); Console.Write("Date: " + e.Date); Console.SetCursorPosition(50, 3); Console.Write("Day: " + days); for (int i = 4; i < 40; i++) { Console.SetCursorPosition(cageLeftPos[0], i); Console.Write(new string(' ', Console.WindowWidth)); } int num = 5; for (int j = 0; j < 5; j++) { Console.SetCursorPosition(cageLeftPos[j], firstCageRow); Console.ForegroundColor = ConsoleColor.DarkRed; Console.Write($"Cage {j + 1} "); Console.ForegroundColor = ConsoleColor.White; Console.SetCursorPosition(cageLeftPos[j], firstCageRow + 5); Console.ForegroundColor = ConsoleColor.DarkMagenta; Console.Write($"Cage {num + 1}" + " "); Console.ForegroundColor = ConsoleColor.White; num++; } #region Cage Area for (int i = 0; i < 10; i++) { var query = e.Hamsters.Where(h => h.CageId == i + 1).ToList(); if (query != null && query.Count != 0) { if (i < 5) { if (query.Count == 0) { Console.SetCursorPosition(cageLeftPos[i], 6); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[i], 7); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[i], 8); Console.Write(" "); } if (query.Count == 1) { Console.SetCursorPosition(cageLeftPos[i], 6); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[i], 7); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[i], 8); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[i], 6); Console.Write(query.ElementAt(0).Name + " "); Console.SetCursorPosition(cageLeftPos[i], 7); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[i], 8); Console.Write(" "); } if (query.Count == 2) { Console.SetCursorPosition(cageLeftPos[i], 6); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[i], 7); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[i], 8); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[i], 6); Console.Write(query.ElementAt(0).Name + " "); Console.SetCursorPosition(cageLeftPos[i], 7); Console.Write(query.ElementAt(1).Name + " "); Console.SetCursorPosition(cageLeftPos[i], 8); Console.Write(" "); } if (query.Count == 3) { Console.SetCursorPosition(cageLeftPos[i], 6); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[i], 7); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[i], 8); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[i], 6); Console.Write(query.ElementAt(0).Name + " "); Console.SetCursorPosition(cageLeftPos[i], 7); Console.Write(query.ElementAt(1).Name + " "); Console.SetCursorPosition(cageLeftPos[i], 8); Console.Write(query.ElementAt(2).Name + " "); } } else if (i > 4) { if (query.Count == 1) { Console.SetCursorPosition(cageLeftPos[counter], 11); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[counter], 12); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[counter], 13); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[counter], 11); Console.Write(query.ElementAt(0).Name + " "); Console.SetCursorPosition(cageLeftPos[counter], 12); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[counter], 13); Console.Write(" "); } if (query.Count == 2) { Console.SetCursorPosition(cageLeftPos[counter], 11); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[counter], 12); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[counter], 13); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[counter], 11); Console.Write(query.ElementAt(0).Name + " "); Console.SetCursorPosition(cageLeftPos[counter], 12); Console.Write(query.ElementAt(1).Name + " "); Console.SetCursorPosition(cageLeftPos[counter], 13); Console.Write(" "); } if (query.Count == 3) { Console.SetCursorPosition(cageLeftPos[counter], 11); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[counter], 12); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[counter], 13); Console.Write(" "); Console.SetCursorPosition(cageLeftPos[counter], 11); Console.Write(query.ElementAt(0).Name + " "); Console.SetCursorPosition(cageLeftPos[counter], 12); Console.Write(query.ElementAt(1).Name + " "); Console.SetCursorPosition(cageLeftPos[counter], 13); Console.Write(query.ElementAt(2).Name + " "); } counter++; } } } #endregion var hamsterInWellnessCenter = e.Hamsters.Where(h => h.WellnessCenterId == 1).ToList(); Console.SetCursorPosition(50, 17); Console.ForegroundColor = ConsoleColor.DarkYellow; Console.Write("Wellness Center"); Console.ForegroundColor = ConsoleColor.White; if (hamsterInWellnessCenter == null || hamsterInWellnessCenter.Count == 0) { Console.SetCursorPosition(45, 19); Console.Write(" "); Console.SetCursorPosition(62, 19); Console.Write(" "); Console.SetCursorPosition(45, 20); Console.Write(" "); Console.SetCursorPosition(62, 20); Console.Write(" "); Console.SetCursorPosition(45, 21); Console.Write(" "); Console.SetCursorPosition(62, 21); Console.Write(" "); } if (hamsterInWellnessCenter != null && hamsterInWellnessCenter.Count != 0 && hamsterInWellnessCenter.Count == 6) { Console.SetCursorPosition(45, 19); Console.Write(hamsterInWellnessCenter.ElementAt(0).Name + " "); Console.SetCursorPosition(62, 19); Console.Write(hamsterInWellnessCenter.ElementAt(3).Name + " "); Console.SetCursorPosition(45, 20); Console.Write(hamsterInWellnessCenter.ElementAt(1).Name + " "); Console.SetCursorPosition(62, 20); Console.Write(hamsterInWellnessCenter.ElementAt(4).Name + " "); Console.SetCursorPosition(45, 21); Console.Write(hamsterInWellnessCenter.ElementAt(2).Name + " "); Console.SetCursorPosition(62, 21); Console.Write(hamsterInWellnessCenter.ElementAt(5).Name + " "); } } ); }