private static void InsertDriver(DSModel db, KeyBinder key, DriverModel model) { Driver poco = new Driver(); if (model.DriverCode == string.Empty) poco.DriverCode = "D" + DriverRepository.PeekDriverCode(db, "D"); else poco.DriverCode = model.DriverCode; poco.FirstName = model.FirstName; poco.SecondName = model.SecondName; poco.LastName = model.LastName; poco.DateOfBirth = model.DateOfBirth; poco.DateOfHire = model.DateOfHire; poco.CellPhone = model.CellPhone; poco.EmergencyPhone = model.EmergencyPhone; poco.Email = model.Email; poco.PayRateOverride = model.PayRateOverride; poco.IsEnabled = model.IsEnabled; foreach (var l in model.Locations) { poco.LocationsDrivers.Add( new LocationsDriver() { LocationID = l.LocationID, Driver = poco, TravelPay = l.TravelPay }); key.AddKey(poco, l, poco.GetName(p => p.DriverID)); } db.Add(poco); key.AddKey(poco, model, poco.GetName(p => p.DriverID)); }
public static CheckResult ValidateSave(DSModel db, DriverModel model) { CheckResult res = new CheckResult(model); if (string.IsNullOrWhiteSpace(model.FirstName)) res.AddError("Please enter a First Name of the driver!", model.GetName(p => p.FirstName)); if (string.IsNullOrWhiteSpace(model.SecondName)) res.AddWarning("Missing Second Name of the driver!", model.GetName(p => p.SecondName)); if (string.IsNullOrWhiteSpace(model.LastName)) res.AddError("Please enter a Last Name of the driver!", model.GetName(p => p.LastName)); //if (model.LicenseID == 0) // res.AddError("Please select a license!", model.GetName(p => p.LicenseID)); //if (!model.LicenseExpirationDate.HasValue) // res.AddError("Please enter a license expiration date", model.GetName(p => p.LicenseExpirationDate)); if (model.PayRateOverride < 0.0m) res.AddError("Please enter a positive number for Pay Rate Override!", model.GetName(p => p.PayRateOverride)); if (model.DriverCode != string.Empty) { var check = db.Drivers.Where(d => d.DriverCode == model.DriverCode && d.DriverID != model.DriverID).FirstOrDefault(); if (check != null) res.AddError("Another driver already uses this Driver Code! Use Peek or leave blank to autogenerate!", model.GetName(p => p.DriverCode)); } foreach (var l in model.Locations) { if (l.LocationID == 0) res.AddError("Please choose a Location for hte travel pay!", "LocationID"); if (l.TravelPay == 0.0m) res.AddError("Please enter a positive non-zero number for Travel Pay!", "TravelPay"); } return res; }
public static DriverModel GetDriver(DSModel db, uint driverID) { if (db == null) throw new ArgumentNullException("db"); var poco = db.Drivers.Where(d => d.DriverID == driverID).FirstOrDefault(); if (poco == null) return null; DriverModel mod = new DriverModel(); mod.DriverID = poco.DriverID; mod.DriverCode = poco.DriverCode; mod.FirstName = poco.FirstName; mod.SecondName = poco.SecondName; mod.LastName = poco.LastName; mod.DateOfBirth = poco.DateOfBirth; mod.DateOfHire = poco.DateOfHire; mod.CellPhone = poco.CellPhone; mod.EmergencyPhone = poco.EmergencyPhone; mod.Email = poco.Email; mod.PayRateOverride = poco.PayRateOverride; mod.IsEnabled = poco.IsEnabled; mod.IsChanged = false; mod.Locations = poco.LocationsDrivers.Select(q => new LocationDriverModel() { LocationDriverID = q.LocationDriverID, CompanyID = q.Location.CompanyID, DriverID = q.DriverID, LocationID = q.LocationID, TravelPay = q.TravelPay, IsChanged = false }).ToList(); return mod; }
private void BindModel(DriverModel mod) { BindingSource bsModel = new BindingSource(); bsModel.DataSource = mod; DriverCode.DataBindings.Add("EditValue", bsModel, mod.GetName(p => p.DriverCode), true, DataSourceUpdateMode.OnPropertyChanged); FirstName.DataBindings.Add("EditValue", bsModel, mod.GetName(p => p.FirstName), true, DataSourceUpdateMode.OnPropertyChanged); SecondName.DataBindings.Add("EditValue", bsModel, mod.GetName(p => p.SecondName), true, DataSourceUpdateMode.OnPropertyChanged); LastName.DataBindings.Add("EditValue", bsModel, mod.GetName(p => p.LastName), true, DataSourceUpdateMode.OnPropertyChanged); DateOfBirth.DataBindings.Add("EditValue", bsModel, mod.GetName(p => p.DateOfBirth), true, DataSourceUpdateMode.OnPropertyChanged); DateOfHire.DataBindings.Add("EditValue", bsModel, mod.GetName(p => p.DateOfHire), true, DataSourceUpdateMode.OnPropertyChanged); CellPhone.DataBindings.Add("EditValue", bsModel, mod.GetName(p => p.CellPhone), true, DataSourceUpdateMode.OnPropertyChanged); EmergencyPhone.DataBindings.Add("EditValue", bsModel, mod.GetName(p => p.EmergencyPhone), true, DataSourceUpdateMode.OnPropertyChanged); Email.DataBindings.Add("EditValue", bsModel, mod.GetName(p => p.Email), true, DataSourceUpdateMode.OnPropertyChanged); //LicenseID.DataBindings.Add("EditValue", bsModel, mod.GetName(p => p.LicenseID), true, DataSourceUpdateMode.OnPropertyChanged); //LicenseExpirationDate.DataBindings.Add("EditValue", bsModel, mod.GetName(p => p.LicenseExpirationDate), true, DataSourceUpdateMode.OnPropertyChanged); PayRateOverride.DataBindings.Add("EditValue", bsModel, mod.GetName(p => p.PayRateOverride), true, DataSourceUpdateMode.OnPropertyChanged); IsEnabled.DataBindings.Add("Checked", bsModel, mod.GetName(p => p.IsEnabled), true, DataSourceUpdateMode.OnPropertyChanged); BindingSource bsLocations = new BindingSource(); bsLocations.DataSource = mod.Locations; gridControlLocations.DataSource = bsLocations; FileBlobCreationInfoModel info = new FileBlobCreationInfoModel(); info.DriverID = this.Manager.ActiveModel.DriverID; var manager = FileBlobManager.Create(info); xu_Files.Load(manager); var driverLicensesManager = DriverLicenseCatalogManager.Create(this.Manager.ActiveModel.DriverID); xu_DriverLicenses.LoadManager(driverLicensesManager); }
public static void SaveDriver(DSModel db, KeyBinder key, DriverModel model) { if (db == null) throw new ArgumentNullException("db"); if (key == null) throw new ArgumentNullException("key"); if (model == null) throw new ArgumentNullException("model"); if (model.DriverID == 0) InsertDriver(db, key, model); else UpdateDriver(db, key, model); }
public CheckResult DeleteDriver(DriverModel model) { try { using (var db = DB.GetContext()) { var check = DriverValidator.ValidateDelete(db, model); if (check.Failed) return check; DriverRepository.DeleteDriver(db, model); db.SaveChanges(); return check; } } catch (Exception ex) { CheckResult res = new CheckResult(); res.AddError("The following driver has records in the database and cannot be deleted!", "DriverID"); return res; } }
public CheckResult SaveDriver(DriverModel model) { try { using (var db = DB.GetContext()) { var check = DriverValidator.ValidateSave(db, model); if (check.Failed) return check; KeyBinder key = new KeyBinder(); DriverRepository.SaveDriver(db, key, model); db.SaveChanges(); key.BindKeys(); model.IsChanged = false; return check; } } catch (Exception ex) { return new CheckResult(ex); } }
public static CheckResult ValidateDelete(DSModel db, DriverModel model) { return new CheckResult(model); }
private DriverManager(DSModel db, DriverModel model) : base(db) { this.ActiveModel = model; }
public static DriverManager CreateEdit(DriverModel driver) { return new DriverManager(DB.GetContext(), driver); }
public static void DeleteDriver(DSModel db, DriverModel model) { if (db == null) throw new ArgumentNullException("db"); if (model.DriverID != 0) { var poco = db.Drivers.Where(d => d.DriverID == model.DriverID).FirstOrDefault(); if (poco != null) db.Delete(poco); } }
private static void UpdateDriver(DSModel db, KeyBinder key, DriverModel model) { var poco = db.Drivers.Where(d => d.DriverID == model.DriverID).FirstOrDefault(); if (poco == null) throw new ArgumentException("No driver with this ID!"); poco.DriverCode = model.DriverCode; poco.FirstName = model.FirstName; poco.SecondName = model.SecondName; poco.LastName = model.LastName; poco.DateOfBirth = model.DateOfBirth; poco.DateOfHire = model.DateOfHire; poco.CellPhone = model.CellPhone; poco.EmergencyPhone = model.EmergencyPhone; poco.Email = model.Email; poco.PayRateOverride = model.PayRateOverride; poco.IsEnabled = model.IsEnabled; foreach (var l in poco.LocationsDrivers.ToList()) { db.Delete(l); poco.LocationsDrivers.Remove(l); } db.FlushChanges(); foreach (var l in model.Locations) { poco.LocationsDrivers.Add( new LocationsDriver() { LocationID = l.LocationID, DriverID = l.DriverID, TravelPay = l.TravelPay }); } }