Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        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");
            }
        }
Exemplo n.º 3
0
        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);
            }
        }