private static void UpdateMedical(DSModel db, KeyBinder key, DriverMedicalModel model) { var poco = db.DriversMedicals .Where(m => m.DriverMedicalID == model.DriverMedicalID) .FirstOrDefault(); model.Map(poco); db.FlushChanges(); SaveReminders(db, key, model, poco); }
private static void InsertMedical(DSModel db, KeyBinder key, DriverMedicalModel model) { DriversMedical poco = new DriversMedical(); model.Map(poco); db.Add(poco); key.AddKey(poco, model, model.GetName(p => p.DriverMedicalID)); db.FlushChanges(); SaveReminders(db, key, model, poco); }
public static void DeleteMedical(DSModel db, DriverMedicalModel model) { if (db == null) throw new ArgumentNullException("db"); if (model == null) throw new ArgumentNullException("model"); db.DriversMedicals .Where(m => m.DriverMedicalID == model.DriverMedicalID) .DeleteAll(); }
private static void SaveReminders(DSModel db, KeyBinder key, DriverMedicalModel model, DriversMedical poco) { string sqlDelete = @"DELETE FROM drivers_medicals_reminders WHERE DriverMedicalID = @DriverMedicalID AND DriverMedicalReminderID NOT IN (@DriverMedicalReminderID);"; string ids = "0"; if (model.Reminders.Count > 0) ids = string.Join<uint>(",", model.Reminders.Select(r => r.DriverMedicalReminderID)); sqlDelete = sqlDelete.Replace("@DriverMedicalReminderID", ids); db.ExecuteNonQuery(sqlDelete, new MySqlParameter("DriverMedicalID", poco.DriverMedicalID)); string sqlInsert = @" INSERT INTO drivers_medicals_reminders (DriverMedicalID, ReminderID, ReminderType, ShouldRemind) VALUES (@DriverMedicalID, @ReminderID, @ReminderType, @ShouldRemind); SELECT LAST_INSERT_ID();"; string sqlUpdate = @" UPDATE drivers_medicals_reminders SET DriverMedicalID = @DriverMedicalID, ReminderID = @ReminderID, ReminderType = @ReminderType, ShouldRemind = @ShouldRemind WHERE DriverMedicalReminderID = @DriverMedicalReminderID;"; foreach (var rem in model.Reminders) { if (rem.DriverMedicalReminderID == 0) { rem.DriverMedicalID = poco.DriverMedicalID; UtilityModel<uint> temp = new UtilityModel<uint>(); temp.Value = db.ExecuteQuery<uint>(sqlInsert, new MySqlParameter("DriverMedicalID", rem.DriverMedicalID), new MySqlParameter("ReminderID", rem.ReminderID), new MySqlParameter("ReminderType", rem.ReminderType), new MySqlParameter("ShouldRemind", rem.ShouldRemind)) .First(); key.AddKey(temp, rem, "Value", rem.GetName(p => p.DriverMedicalReminderID)); } else { rem.DriverMedicalID = poco.DriverMedicalID; db.ExecuteNonQuery(sqlUpdate, new MySqlParameter("DriverMedicalReminderID", rem.DriverMedicalReminderID), new MySqlParameter("DriverMedicalID", rem.DriverMedicalID), new MySqlParameter("ReminderID", rem.ReminderID), new MySqlParameter("ReminderType", rem.ReminderType), new MySqlParameter("ShouldRemind", rem.ShouldRemind)); } } }
public static void SaveMedical(DSModel db, KeyBinder key, DriverMedicalModel model) { if (db == null) throw new ArgumentNullException("db"); if (key == null) throw new ArgumentNullException("key"); if (model == null) throw new ArgumentNullException("model"); if (model.DriverMedicalID == 0) InsertMedical(db, key, model); else UpdateMedical(db, key, model); }
public static DriverMedicalModel GetMedical(DSModel db, uint driverMedicalID) { if (db == null) throw new ArgumentNullException("db"); var poco = db.DriversMedicals.Where(m => m.DriverMedicalID == driverMedicalID).FirstOrDefault(); var med = new DriverMedicalModel(poco); var reminders = DriverMedicalRepository.GetReminders(db, driverMedicalID); foreach (var r in reminders) med.Reminders.Add(r); med.IsChanged = false; return med; }
public static CheckResult ValidateSave(DSModel db, DriverMedicalModel model) { CheckResult res = new CheckResult(model); if (model.DriverID == 0) res.AddError("Driver cannot be empty!", model.GetName(p => p.DriverID)); if (model.MedTypeID == 0) res.AddError("Medical type cannot be empty!", model.GetName(p => p.MedTypeID)); if (model.ExaminationDate == DateTime.MinValue) res.AddError("Examination date cannot be empty!", model.GetName(p => p.ExaminationDate)); if (model.ValidityDate == DateTime.MinValue) res.AddError("Validity date cannot be empty!", model.GetName(p => p.ValidityDate)); if (model.ValidityDate.Date <= model.ExaminationDate.Date) res.AddError("Validity date cannot be earlier than Examination date!", model.GetName(p => p.ValidityDate)); return res; }
public static CheckResult ValidateDelete(DSModel db, DriverMedicalModel model) { CheckResult res = new CheckResult(model); return res; }