public void Map(DriversLicense poco)
 {
     poco.DriverID = this.DriverID;
     poco.LicenseID = this.LicenseID;
     poco.IssueDate = this.IssueDate;
     poco.ExpirationDate = this.ExpirationDate;
     poco.MVRReviewDate = this.MVRReviewDate;
 }
 public DriverLicenseModel(DriversLicense poco)
     : this()
 {
     this.DriverLicenseID = poco.DriverLicenseID;
     this.DriverID = poco.DriverID;
     this.LicenseID = poco.LicenseID;
     this.IssueDate = poco.IssueDate;
     this.ExpirationDate = poco.ExpirationDate;
     this.MVRReviewDate = poco.MVRReviewDate;
     this.IsChanged = false;
 }
        private static void InsertDriverLicense(DSModel db, KeyBinder key, DriverLicenseModel model)
        {
            var poco = new DriversLicense();
            model.Map(poco);
            db.Add(poco);
            key.AddKey(poco, model, model.GetName(p => p.DriverLicenseID));
            db.FlushChanges();

            SaveDriverLicensePermits(db, key, poco, model);
            SaveDriverLicenseReminders(db, key, poco, model);
        }
        private static void SaveDriverLicensePermits(DSModel db, KeyBinder key, DriversLicense poco, DriverLicenseModel model)
        {
            db.ExecuteNonQuery("DELETE FROM drivers_licenses_permits WHERE DriverLicenseID = @DriverLicenseID;",
                new MySqlParameter("DriverLicenseID", poco.DriverLicenseID));

            string sql = @"
                INSERT INTO drivers_licenses_permits (DriverLicenseID, PermitID) VALUES (@DriverLicenseID, @PermitID);
                SELECT LAST_INSERT_ID();";
            foreach (var per in model.Permits)
            {
                per.DriverLicenseID = poco.DriverLicenseID;
                per.DriverLicensePermitID = (uint)db.ExecuteScalar<ulong>(sql,
                    new MySqlParameter("DriverLicenseID", per.DriverLicenseID),
                    new MySqlParameter("PermitID", per.PermitID));
            }
        }
        private static void SaveDriverLicenseReminders(DSModel db, KeyBinder key, DriversLicense poco, DriverLicenseModel model)
        {
            db.ExecuteNonQuery("delete from drivers_licenses_reminders where DriverLicenseID = @DriverLicenseID;",
                new MySqlParameter("DriverLicenseID", poco.DriverLicenseID));

            string sql = @"
                INSERT INTO drivers_licenses_reminders 
                  (DriverLicenseID, ReminderID, ReminderType, ShouldRemind) 
                  VALUES 
                  (@DriverLicenseID, @ReminderID, @ReminderType, @ShouldRemind);
                SELECT LAST_INSERT_ID();";

            foreach (var rem in model.Reminders)
            {
                rem.DriverLicenseID = poco.DriverLicenseID;
                rem.DriverLicenseReminderID = (uint)db.ExecuteScalar<ulong>(sql,
                    new MySqlParameter("DriverLicenseID", rem.DriverLicenseID),
                    new MySqlParameter("ReminderID", rem.ReminderID),
                    new MySqlParameter("ReminderType", rem.ReminderType),
                    new MySqlParameter("ShouldRemind", rem.ShouldRemind));
            }
        }