public IActionResult Load(string data = null) { var timeTable = TimeTableProvider.getTimeTable(); if (data != null) { timeTable.ClearTimeTable(); var dataObject = JObject.Parse(data); var rooms = dataObject["rooms"]; var groups = dataObject["groups"]; var classes = dataObject["classes"]; var teachers = dataObject["teachers"]; foreach (var value in rooms) { timeTable.rooms.Add(value.Value <string>()); } foreach (var value in groups) { timeTable.groups.Add(value.Value <string>()); } foreach (var value in classes) { timeTable.classes.Add(value.Value <string>()); } foreach (var value in teachers) { timeTable.teachers.Add(value.Value <string>()); } var activities = dataObject["activities"]; foreach (var value in activities) { var room = value["room"].Value <string>(); var slot = value["slot"].Value <int>(); var day = (DayOfWeek)value["day"].Value <int>(); var activity = new TimeTable.Activity(room, slot, day) { group = value["group"].Value <string>(), className = value["class"].Value <string>(), teacher = value["teacher"].Value <string>() }; timeTable.activities.Add(activity); } return(RedirectToAction("Index", "Room")); } else { return(View(timeTable)); } }
public ActionResult Append(string room, int slot, DayOfWeek day, string group, string @class, string teacher) { var timeTable = TimeTableProvider.getTimeTable(); var activity = timeTable.GetActivityByRoomSlotAndDay(room, slot, day); if (activity == null) { activity = new TimeTable.Activity(room, slot, day); activity.teacher = teacher; activity.className = @class; activity.group = group; timeTable.activities.Add(activity); TempData["Error"] = null; return(RedirectToAction("Index", "Room", new { room })); } else { TempData["Error"] = $"An activity already exists on {day}, {timeTable.GetSlotTimeValue(slot)}, in room '{room}'"; return(RedirectToAction("Index", "Room", new { room })); } }
public async Task <IActionResult> UploadFile(IFormFile file) { var timeTable = TimeTableProvider.getTimeTable(); if (file != null && file.Length > 0) { var data = new StringBuilder(); using (var reader = new StreamReader(file.OpenReadStream())) { while (reader.Peek() >= 0) { data.AppendLine(await reader.ReadLineAsync()); } } if (data != null) { var dataObject = JObject.Parse(data.ToString()); if (dataObject.ContainsKey("rooms") && dataObject.ContainsKey("groups") && dataObject.ContainsKey("classes") && dataObject.ContainsKey("teachers") && dataObject.ContainsKey("activities")) { timeTable.ClearTimeTable(); var rooms = dataObject["rooms"]; var groups = dataObject["groups"]; var classes = dataObject["classes"]; var teachers = dataObject["teachers"]; foreach (var value in rooms) { timeTable.rooms.Add(value.Value <string>()); } foreach (var value in groups) { timeTable.groups.Add(value.Value <string>()); } foreach (var value in classes) { timeTable.classes.Add(value.Value <string>()); } foreach (var value in teachers) { timeTable.teachers.Add(value.Value <string>()); } var activities = dataObject["activities"]; foreach (var value in activities) { var room = value["room"].Value <string>(); var slot = value["slot"].Value <int>(); var day = (DayOfWeek)value["day"].Value <int>(); var activity = new TimeTable.Activity(room, slot, day) { group = value["group"].Value <string>(), className = value["className"].Value <string>(), teacher = value["teacher"].Value <string>() }; timeTable.activities.Add(activity); } return(RedirectToAction("Index", "Room")); } } } return(View(timeTable)); }