コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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));
                }
            }
        }
コード例 #5
0
        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();
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
            }
        }
コード例 #8
0
        public static CheckResult ValidateDelete(DSModel db, DriverMedicalModel model)
        {
            CheckResult res = new CheckResult(model);

            return(res);
        }