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(string name)
 {
     if (DomainNameMap.TryGetValue(name, 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);
        }
 public async Task <IEnumerable <Domain> > SearchDomainsByName(string filter)
 {
     return(SetDomainRoles(DomainNameMap.Where(kvp => kvp.Key.ToLowerInvariant().Contains(filter.ToLowerInvariant())).Select(kvp => kvp.Value)));
 }