public static UserRegistrationKeyViewModel ToViewModel(this UserRegistrationKey key)
        {
            var vm = new UserRegistrationKeyViewModel()
            {
                UsesRemaining           = key.UsesRemaining,
                Active                  = key.Active,
                Key                     = key.Key,
                UserRegistrationKeyId   = key.UserRegistrationKeyId,
                UserRegistrationKeyUses = key.UserRegistrationKeyUses.ToViewModel()
            };

            return(vm);
        }
        public UserRegistrationKey Update(UserRegistrationKeyViewModel model)
        {
            var toUpdate = Get(model.UserRegistrationKeyId);

            if (null == toUpdate)
            {
                throw new EntityValidationException("No registration key with that ID exists!");
            }
            if (!string.Equals(toUpdate.Key, model.Key, StringComparison.CurrentCultureIgnoreCase))
            {
                throw new EntityValidationException("You cannot changed the key value!");
            }

            toUpdate.Active        = model.Active;
            toUpdate.UsesRemaining = model.UsesRemaining;

            return(Get(toUpdate.UserRegistrationKeyId));
        }
        public UserRegistrationKey Create(UserRegistrationKeyViewModel model)
        {
            if (null != Get(model.Key))
            {
                throw new EntityValidationException("A registration key with the given value already exists.");
            }

            var toCreate = new UserRegistrationKey()
            {
                UsesRemaining = model.UsesRemaining,
                Active        = model.Active,
                Key           = model.Key
            };

            _db.UserRegistrationKeys.Add(toCreate);
            _db.SaveChanges();

            return(Get(toCreate.UserRegistrationKeyId));
        }
 public IActionResult Update([FromBody] UserRegistrationKeyViewModel toUpdate)
 {
     return(Ok(_registrationKeyService.Update(toUpdate).ToViewModel()));
 }