/// <summary> /// Updates the appointment by saving the appt passed in. /// </summary> /// <param name="appt"> The appt that is being updated. </param> public static void UpdateAppointment(Appointment appt) { if (VerifyAppointmentStatus(appt)) { using (RTDbContext Context = InitializeDatabaseContext()) { // Add appointment Context.Appointments.AddOrUpdate(appt); // Retrieve all coordinates for appointment var coordsForAppt = Context.Coordinates.ToList <Coordinate>().Where(coord => coord.apptId == appt.Id); // Delete coordinates foreach (Coordinate c in coordsForAppt) { if (!appt.Coordinates.Any(co => co.Id == c.Id)) { Context.Coordinates.Remove(c); Context.SaveChangesAsync(); } } // Add coordinates foreach (Coordinate c in appt.Coordinates) { c.apptId = appt.Id; Context.Coordinates.AddOrUpdate(c); } Context.SaveChangesAsync(); } } }
/// <summary> /// Updates the current override to whatever is provided /// </summary> public static void SetOverrideForSensor(SensorItemEnum item, bool doOverride) { using (RTDbContext Context = InitializeDatabaseContext()) { var overrides = Context.Override.Where <Override>(t => t.sensor_name == item.ToString()).ToList <Override>(); if (overrides.Count() != 1) { throw new InvalidOperationException(); } Override current = overrides[0]; current.Overridden = Convert.ToSByte(doOverride); Context.Override.AddOrUpdate(current); Context.SaveChangesAsync(); } }