Exemplo n.º 1
0
        public void Reload(int shooterId)
        {
            Shooter shooterToUpdate = _shooterRepository.GetById(shooterId);

            if (shooterToUpdate.Ammunitions > MaxLoadout)
            {
                throw new ArgumentException($"Maximum loadout is {MaxLoadout}.");
            }

            if (shooterToUpdate.Ammunitions >= MaxLoadout)
            {
                return;
            }

            shooterToUpdate.Ammunitions += 1;

            _shooterRepository.Save(shooterToUpdate);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Check user password
        /// </summary>
        /// <param name="user">User</param>
        /// <param name="newPassword">New password</param>
        /// <returns>Returns signed in user or null</returns>
        public IList <ValidationResult> UpdateUserPassword(Shooter user, string newPassword)
        {
            //Validazione argomenti
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user));
            }
            if (string.IsNullOrEmpty(newPassword))
            {
                throw new ArgumentNullException(nameof(newPassword));
            }

            //aggiorno la password
            user.Password = _identityClient.EncryptPassword(newPassword);

            IList <ValidationResult> validations = new List <ValidationResult>();

            //Esecuzione in transazione
            using (var t = DataSession.BeginTransaction())
            {
                //Validazione argomenti
                validations = _userRepository.Validate(user);

                //Se ho validazioni fallite, esco
                if (validations.Count > 0)
                {
                    //Rollback ed uscita
                    t.Rollback();
                    return(validations);
                }

                //Salvataggio
                _userRepository.Save(user);
                t.Commit();
            }
            return(validations);
        }