public async Task<IHttpActionResult> PutTimeTableEntry(int id, TimeTableEntry timeTableEntry)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            if (id != timeTableEntry.Id)
            {
                return BadRequest();
            }

            db.Entry(timeTableEntry).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TimeTableEntryExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return StatusCode(HttpStatusCode.NoContent);
        }
        public async Task <IHttpActionResult> PutTimeTableEntry(int id, TimeTableEntry timeTableEntry)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != timeTableEntry.Id)
            {
                return(BadRequest());
            }

            db.Entry(timeTableEntry).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TimeTableEntryExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Example #3
0
        public ActionResult DeleteConfirmed(int id)
        {
            TimeTableEntry timetableentry = db.TimeTableEntries.GetById(id);

            db.TimeTableEntries.Remove(timetableentry);
            db.Commit();
            return(RedirectToAction("Index"));
        }
Example #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            TimeTableEntry timetableentry = db.TimeTableEntries.Find(id);

            db.TimeTableEntries.Remove(timetableentry);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #5
0
        TableRow generateStudentRow(Student student, List <SchoolDay> days)
        {
            TableRow newRow = new TableRow();

            TableCell cell_ID = new TableCell();

            cell_ID.CssClass = "datatable_row";
            cell_ID.Text     = student.getStudentID();
            newRow.Cells.Add(cell_ID);

            TableCell cell_FirstName = new TableCell();

            cell_FirstName.CssClass = "datatable_row";
            cell_FirstName.Text     = student.getFirstName();
            newRow.Cells.Add(cell_FirstName);

            TableCell cell_LastName = new TableCell();

            cell_LastName.CssClass = "datatable_row";
            cell_LastName.Text     = student.getLastName();
            newRow.Cells.Add(cell_LastName);

            foreach (SchoolDay day in days)
            {
                StringBuilder         timeTableInfo  = new StringBuilder();
                List <TimeTableEntry> thisDayClasses = new List <TimeTableEntry>();

                foreach (TimeTableEntry tte in student.TimeTable)
                {
                    if (tte.dayNum == day.dayNumber)
                    {
                        thisDayClasses.Add(tte);
                    }
                }
                thisDayClasses.Sort();


                if (thisDayClasses.Count > 0)
                {
                    TimeTableEntry firstClassOfTheDay = TimeTableEntry.getEarliest(thisDayClasses);
                    //timeTableInfo.Append(firstClassOfTheDay.schoolClass.name + " (Teacher: " + firstClassOfTheDay.schoolClass.teacherName + ", Room: " + firstClassOfTheDay.roomName + ", Period: " + firstClassOfTheDay.blockNum + ")");
                    timeTableInfo.Append(firstClassOfTheDay.ToStringFormatted());
                }
                else
                {
                    timeTableInfo.Append("No classes today");
                }

                TableCell cell_Day = new TableCell();
                cell_Day.VerticalAlign = VerticalAlign.Top;
                cell_Day.CssClass      = "datatable_row";
                cell_Day.Text          = timeTableInfo.ToString();
                newRow.Cells.Add(cell_Day);
            }

            return(newRow);
        }
Example #6
0
        //
        // GET: /TimeTableEntry/Details/5

        public ActionResult Details(int id = 0)
        {
            TimeTableEntry timetableentry = db.TimeTableEntries.Find(id);

            if (timetableentry == null)
            {
                return(HttpNotFound());
            }
            return(View(timetableentry));
        }
Example #7
0
        public ActionResult Create(TimeTableEntry timetableentry)
        {
            if (ModelState.IsValid)
            {
                db.TimeTableEntries.Add(timetableentry);
                db.Commit();
                return(RedirectToAction("Index"));
            }

            return(View(timetableentry));
        }
Example #8
0
 public ActionResult Edit(TimeTableEntry timetableentry)
 {
     if (ModelState.IsValid)
     {
         db.Entry(timetableentry).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.TimeTableId = new SelectList(db.TimeTables, "Id", "Id", timetableentry.TimeTableId);
     return(View(timetableentry));
 }
        public async Task <IHttpActionResult> GetTimeTableEntry(int id)
        {
            TimeTableEntry timeTableEntry = await db.TimeTableEntries.FindAsync(id);

            if (timeTableEntry == null)
            {
                return(NotFound());
            }

            return(Ok(timeTableEntry));
        }
Example #10
0
        //
        // GET: /TimeTableEntry/Edit/5

        public ActionResult Edit(int id = 0)
        {
            TimeTableEntry timetableentry = db.TimeTableEntries.Find(id);

            if (timetableentry == null)
            {
                return(HttpNotFound());
            }
            ViewBag.TimeTableId = new SelectList(db.TimeTables, "Id", "Id", timetableentry.TimeTableId);
            return(View(timetableentry));
        }
        public async Task <IHttpActionResult> PostTimeTableEntry(TimeTableEntry timeTableEntry)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.TimeTableEntries.Add(timeTableEntry);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = timeTableEntry.Id }, timeTableEntry));
        }
        public async Task<IHttpActionResult> PostTimeTableEntry(TimeTableEntry timeTableEntry)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            db.TimeTableEntries.Add(timeTableEntry);
            await db.SaveChangesAsync();

            return CreatedAtRoute("DefaultApi", new { id = timeTableEntry.Id }, timeTableEntry);
        }
        public async Task <IHttpActionResult> DeleteTimeTableEntry(int id)
        {
            TimeTableEntry timeTableEntry = await db.TimeTableEntries.FindAsync(id);

            if (timeTableEntry == null)
            {
                return(NotFound());
            }

            db.TimeTableEntries.Remove(timeTableEntry);
            await db.SaveChangesAsync();

            return(Ok(timeTableEntry));
        }
Example #14
0
        protected void btnTerm_Click(object sender, EventArgs e)
        {
            List <Student>   schoolStudents = new List <Student>();
            Term             selectedTerm   = null;
            List <SchoolDay> schoolDays     = new List <SchoolDay>();

            using (SqlConnection connection = new SqlConnection(LSKYCommon.dbConnectionString_SchoolLogic))
            {
                int selectedTermID = -1;
                if (int.TryParse(drpTerm.SelectedValue, out selectedTermID))
                {
                    selectedTerm = Term.loadThisTerm(connection, selectedTermID);
                    if (selectedTerm != null)
                    {
                        Track selectedTrack = Track.loadThisTrack(connection, selectedTerm.trackID);

                        // Load school days for this school / track
                        schoolDays = SchoolDay.loadDaysFromThisTrack(connection, selectedTrack);

                        // Load students from the track
                        schoolStudents = Student.loadStudentsFromThisTrack(connection, selectedTrack.ID);

                        // Load timetables for the students that were loaded
                        foreach (Student student in schoolStudents)
                        {
                            student.TimeTable = TimeTableEntry.loadStudentTimeTable(connection, student, selectedTerm);
                        }
                    }
                }
            }

            tblCSVLink.Visible     = true;
            lnkCSVLink.NavigateUrl = "getCSV.aspx?schoolid=" + selectedTerm.schoolID + "&trackid=" + selectedTerm.trackID + "&termid=" + selectedTerm.ID;

            tblStudents.Rows.Clear();
            tblStudents.Visible = true;
            tblStudents.Rows.Add(generateStudentTableHeader(schoolDays));

            foreach (Student student in schoolStudents)
            {
                tblStudents.Rows.Add(generateStudentRow(student, schoolDays));
            }

            // Load the days from the specified track

            // Load all students

            // For each day, determine what their classes are
        }
Example #15
0
        public ActionResult Create(TimeTableEntry timetableentry, DateTime TimeTableDate)
        {
            int v = (from s in db.TimeTables
                     where s.Date == TimeTableDate
                     select s.Id).First();

            timetableentry.TimeTableId = Convert.ToInt32(v);

            if (ModelState.IsValid)
            {
                db.TimeTableEntries.Add(timetableentry);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.TimeTableId = new SelectList(db.TimeTables, "Id", "Id", timetableentry.TimeTableId);
            return(View(timetableentry));
        }
Example #16
0
 public ActionResult Edit(TimeTableEntry timetableentry)
 {
     if (ModelState.IsValid)
     {
         //db.Entry(timetableentry).State = EntityState.Modified;
         db.TimeTableEntries.GetById(timetableentry.Id).EndTime     = timetableentry.EndTime;
         db.TimeTableEntries.GetById(timetableentry.Id).Description = timetableentry.Description;
         db.TimeTableEntries.GetById(timetableentry.Id).Location    = timetableentry.Location;
         db.TimeTableEntries.GetById(timetableentry.Id).StartTime   = timetableentry.StartTime;
         db.TimeTableEntries.GetById(timetableentry.Id).TimeTable   = timetableentry.TimeTable;
         db.TimeTableEntries.GetById(timetableentry.Id).TimeTableId = timetableentry.TimeTableId;
         db.TimeTableEntries.GetById(timetableentry.Id).Title       = timetableentry.Title;
         db.Commit();
         return(RedirectToAction("Index"));
     }
     //ViewBag.TimeTableId = new SelectList(db.TimeTables, "Id", "Id", timetableentry.TimeTableId);
     return(View(timetableentry));
 }
Example #17
0
 public void AddTimeTableEntry(TimeTableEntry Entry)
 {
     TimeTable.AddEntry(Entry);
 }
Example #18
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!String.IsNullOrEmpty(Request.QueryString["termid"]))
            {
                if (!String.IsNullOrEmpty(Request.QueryString["schoolid"]))
                {
                    if (!String.IsNullOrEmpty(Request.QueryString["trackid"]))
                    {
                        int termID   = -1;
                        int trackID  = -1;
                        int schoolID = -1;

                        if (int.TryParse(Request.QueryString["schoolid"], out schoolID))
                        {
                            if (int.TryParse(Request.QueryString["termid"], out termID))
                            {
                                if (int.TryParse(Request.QueryString["trackid"], out trackID))
                                {
                                    using (SqlConnection connection = new SqlConnection(LSKYCommon.dbConnectionString_SchoolLogic))
                                    {
                                        // Load school
                                        School selectedSchool = School.loadThisSchool(connection, schoolID);

                                        if (selectedSchool != null)
                                        {
                                            // Load term
                                            Term selectedTerm = Term.loadThisTerm(connection, termID);

                                            // Load track
                                            if (selectedTerm != null)
                                            {
                                                Track selectedTrack = Track.loadThisTrack(connection, trackID);

                                                // Load students
                                                if (selectedTrack != null)
                                                {
                                                    List <Student> selectedStudents = Student.loadStudentsFromThisTrack(connection, selectedTrack.ID);

                                                    // Load timetable data

                                                    List <SchoolDay> schoolDays = SchoolDay.loadDaysFromThisTrack(connection, selectedTrack);

                                                    foreach (Student student in selectedStudents)
                                                    {
                                                        student.TimeTable = TimeTableEntry.loadStudentTimeTable(connection, student, selectedTerm);
                                                    }

                                                    string filename = "FirstClassOfDay_" + LSKYCommon.removeSpaces(selectedSchool.getName()) + "_" + LSKYCommon.removeSpaces(selectedTerm.name);
                                                    sendCSV(GenerateCSV(selectedStudents, schoolDays), filename);
                                                }
                                                else
                                                {
                                                    DisplayError("Track not found");
                                                }
                                            }
                                            else
                                            {
                                                DisplayError("Term not found");
                                            }
                                        }
                                        else
                                        {
                                            DisplayError("School not found");
                                        }
                                    }
                                }
                                else
                                {
                                    DisplayError("Invalid track");
                                }
                            }
                            else
                            {
                                DisplayError("Invalid term");
                            }
                        }
                        else
                        {
                            DisplayError("Invalid school");
                        }
                    }
                    else
                    {
                        DisplayError("Track must be specified");
                    }
                }
                else
                {
                    DisplayError("School must be specified");
                }
            }
            else
            {
                DisplayError("Term must be specified");
            }
        }
Example #19
0
        protected MemoryStream GenerateCSV(List <Student> students, List <SchoolDay> days)
        {
            MemoryStream csvFile = new MemoryStream();
            StreamWriter writer  = new StreamWriter(csvFile, Encoding.UTF8);

            // CSV Headings
            StringBuilder headingLine = new StringBuilder();

            headingLine.Append("StudentNumber, FirstName, LastName, DateOfBirth, Telephone, Apartment, House, Street, City, Province, PostalCode, ");

            for (int x = 0; x < days.Count; x++)
            {
                headingLine.Append(days[x].name + "Teacher,");
                headingLine.Append(days[x].name + "Room,");
                headingLine.Append(days[x].name + "Class,");
                headingLine.Append(days[x].name + "Period");
                if ((x + 1) < days.Count)
                {
                    headingLine.Append(",");
                }
            }
            writer.WriteLine(headingLine.ToString());

            // CSV Data
            foreach (Student student in students)
            {
                StringBuilder studentLine = new StringBuilder();
                studentLine.Append(student.getStudentID());
                studentLine.Append(",");

                studentLine.Append(student.getFirstName());
                studentLine.Append(",");

                studentLine.Append(student.getLastName());
                studentLine.Append(",");

                studentLine.Append(student.getDateOfBirth().ToShortDateString());
                studentLine.Append(",");

                studentLine.Append("\"" + student.getTelephone() + "\"");
                studentLine.Append(",");

                studentLine.Append("\"" + student.getApartmentNo() + "\"");
                studentLine.Append(",");

                studentLine.Append("\"" + student.getHouseNo() + "\"");
                studentLine.Append(",");

                studentLine.Append("\"" + student.getStreet() + "\"");
                studentLine.Append(",");

                studentLine.Append("\"" + student.getCity() + "\"");
                studentLine.Append(",");

                studentLine.Append("\"" + student.getRegion() + "\"");
                studentLine.Append(",");

                studentLine.Append("\"" + student.getPostalCode() + "\"");
                studentLine.Append(",");

                for (int x = 0; x < days.Count; x++)
                {
                    List <TimeTableEntry> thisDayClasses = new List <TimeTableEntry>();

                    foreach (TimeTableEntry tte in student.TimeTable)
                    {
                        if (tte.dayNum == days[x].dayNumber)
                        {
                            thisDayClasses.Add(tte);
                        }
                    }

                    if (thisDayClasses.Count > 0)
                    {
                        TimeTableEntry firstClassOfTheDay = TimeTableEntry.getEarliest(thisDayClasses);

                        studentLine.Append("\"" + firstClassOfTheDay.schoolClass.teacherName + "\",");
                        studentLine.Append("\"" + firstClassOfTheDay.roomName + "\",");
                        studentLine.Append("\"" + firstClassOfTheDay.schoolClass.name + "\",");
                        studentLine.Append("" + firstClassOfTheDay.blockNum + "");
                    }
                    else
                    {
                        studentLine.Append("\"\",");
                        studentLine.Append("\"\",");
                        studentLine.Append("\"\"");
                        studentLine.Append("\"\"");
                    }


                    if ((x + 1) < days.Count)
                    {
                        studentLine.Append(",");
                    }
                }

                writer.WriteLine(studentLine.ToString());
            }
            writer.Flush();
            csvFile.Flush();
            return(csvFile);
        }
Example #20
0
        /* TConnection */
        public override double GetTravelTime(string date, double arrivalTime, TravelMode Mode)
        {
            double time         = 0;
            double trafficDelay = 0;

            if (!CanBeTraversedUsingMode(Mode))
            {
                return(double.PositiveInfinity);
            }

            if (Mode.HasFlag(Routing.TravelMode.Bus))
            {
                List <TimeTableEntry> Trips = TimeTable.GetFeasibleTrips(arrivalTime);

                if (Trips.Count == 0)
                {
                    return(double.PositiveInfinity);
                }

                TimeTableEntry Trip = Trips.First();

                /* The "false" condition is added only for TEST A, in order to ignore the feed validity !!!REMEMBER TO REMOVE FOR TEST C!!! */
                if (/*(false) &&*/ (!Trip.IsValidDate(date)))
                {
                    return(double.PositiveInfinity);
                }
                else
                {
                    time = (Trip.DestinationArrivalTime - Trip.SourceDepartureTime);

                    /* For Bus, the time is traffic dependent */
                    if ((TrafficReport != null) && (TimeTable.Entries.First().RouteType == RouteType.Bus))
                    {
                        double minDistanceFromTraffic;
                        minDistanceFromTraffic = Math.Min(this.TrafficDistanceFromSource, this.TrafficDistanceFromDestination);
                        trafficDelay           = addTrafficDelay(time, minDistanceFromTraffic, TrafficReport);
                    }

                    /* Waiting time */
                    WaitingTime = (Trip.SourceDepartureTime - arrivalTime);

                    time += WaitingTime + trafficDelay;

                    DepartureTime     = Trip.SourceDepartureTime;
                    ArrivalTime       = Trip.SourceArrivalTime;
                    DestArrivalTime   = Trip.DestinationArrivalTime;
                    DestDepartureTime = Trip.DestinationDepartureTime;

                    if (time < 0 || WaitingTime < 0)
                    {
                        throw new Exception("negative time value");
                    }
                }
            }
            else
            {
                time = double.PositiveInfinity;
            }


            return(time);
        }