public Authority Create(string authorityKey, string displayName)
        {
            if (string.IsNullOrEmpty(authorityKey))
            {
                throw new ArgumentNullException(nameof(authorityKey));
            }

            var authority = _authorityRepository.GetByKey(authorityKey).SingleOrDefault();

            if (authority != null)
            {
                throw new AuthorityAlreadyExistsException();
            }

            authority = new Authorities
            {
                DisplayName = displayName,
                Key         = authorityKey
            };

            _authorityRepository.Insert(authority);

            _authorityRepository.Save();

            return(authority.ToModel());
        }