public async Task DeleteDomain(Guid id)
 {
     if (DomainIdMap.TryGetValue(id, out Domain domain))
     {
         DomainIdMap.Remove(id);
         DomainNameMap.Remove(domain.Name);
     }
 }
 public async Task <Domain> GetDomain(Guid id)
 {
     if (DomainIdMap.TryGetValue(id, out Domain domain))
     {
         return(await SetDomainRoles(domain));
     }
     return(null);
 }
        public async Task <Domain> CreateDomain(string name)
        {
            Domain domain = new Domain()
            {
                Id    = Guid.NewGuid(),
                Name  = name,
                Roles = new HashSet <Role>()
            };

            DomainIdMap.Add(domain.Id, domain);
            DomainNameMap.Add(domain.Name, domain);
            return(domain);
        }