/// <summary> /// Validation logic for adding or updating an inmate. /// </summary> /// <param name="inmate"></param> private static InmateValidationStatus InmateValidation(IInmate inmate) { if (string.IsNullOrEmpty(inmate.FirstName) || inmate.FirstName.Any(ch => !char.IsLetter(ch))) { return(InmateValidationStatus.InvalidFirstName); } if (string.IsNullOrEmpty(inmate.LastName) || inmate.LastName.Any(ch => !char.IsLetter(ch))) { return(InmateValidationStatus.InvalidLastName); } if (string.IsNullOrEmpty(inmate.GDCNumber) || inmate.GDCNumber.Any(digit => !char.IsDigit(digit))) { return(InmateValidationStatus.InvalidGDC); } // Compares the shop objects with an equality comparer if (inmate.AssignedShop == null || !Shops.Contains(inmate.AssignedShop, new ShopEqualityComparer())) { return(InmateValidationStatus.NoShopAssigned); } return(InmateValidationStatus.IsValidated); }
public static void UpdateInmate(IInmate inmate) { // Persist update to db using (var db = new UnitOfWork()) { try { var inmateFromDb = db.InmatesRepo.FindById(inmate.Id); inmateFromDb.FirstName = inmate.FirstName.Trim(); inmateFromDb.LastName = inmate.LastName.Trim(); inmateFromDb.GDCNumber = inmate.GDCNumber.Trim(); inmateFromDb.ShopId = inmate.AssignedShop.Id; db.InmatesRepo.Update(inmateFromDb); db.Commit(); } catch (EntityException ex) { ExceptionHandler.LogAndNotifyOfException(ex, ex.Message); } catch (Exception ex) { ExceptionHandler.LogAndNotifyOfException(ex, ex.Message); } NotifyUser.AllGood("Changes were saved.", "Saved"); } }
public static string ValidateInmateData(IInmate inmate) { InmateValidationStatus = InmateValidation(inmate); switch (InmateValidationStatus) { case InmateValidationStatus.InvalidFirstName: return("The first name is invalid."); case InmateValidationStatus.InvalidLastName: return("The last name is invalid."); case InmateValidationStatus.InvalidGDC: return("The GDC number is invalid."); case InmateValidationStatus.NoShopAssigned: return("No shop assigned to inmate."); default: return(null); } }