From e57964e978999db4dfd00ab78560cd07dad3bb1b Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Tue, 10 Jan 2017 17:01:57 -0500 Subject: [PATCH] Rework models for global domains --- .../Models/Response/DomainsResponseModel.cs | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/src/Api/Models/Response/DomainsResponseModel.cs b/src/Api/Models/Response/DomainsResponseModel.cs index 941cd91e75..edc9b20a38 100644 --- a/src/Api/Models/Response/DomainsResponseModel.cs +++ b/src/Api/Models/Response/DomainsResponseModel.cs @@ -3,6 +3,7 @@ using Bit.Core.Domains; using System.Collections.Generic; using Newtonsoft.Json; using Bit.Core.Enums; +using System.Linq; namespace Bit.Api.Models { @@ -18,13 +19,36 @@ namespace Bit.Api.Models EquivalentDomains = user.EquivalentDomains != null ? JsonConvert.DeserializeObject>>(user.EquivalentDomains) : null; - GlobalEquivalentDomains = Core.Utilities.EquivalentDomains.Global; - ExcludedGlobalEquivalentDomains = user.ExcludedGlobalEquivalentDomains != null ? + + var excludedGlobalEquivalentDomains = user.ExcludedGlobalEquivalentDomains != null ? JsonConvert.DeserializeObject>(user.ExcludedGlobalEquivalentDomains) : null; + var globalDomains = new List(); + foreach(var domain in Core.Utilities.EquivalentDomains.Global) + { + globalDomains.Add(new GlobalDomains(domain.Key, domain.Value, excludedGlobalEquivalentDomains)); + } + GlobalEquivalentDomains = !globalDomains.Any() ? null : globalDomains; } public IEnumerable> EquivalentDomains { get; set; } - public IDictionary> GlobalEquivalentDomains { get; set; } - public IEnumerable ExcludedGlobalEquivalentDomains { get; set; } + public IEnumerable GlobalEquivalentDomains { get; set; } + + + public class GlobalDomains + { + public GlobalDomains( + GlobalEquivalentDomainsType globalDomain, + IEnumerable domains, + IEnumerable excludedDomains) + { + Type = globalDomain; + Domains = domains; + Excluded = excludedDomains?.Contains(globalDomain) ?? false; + } + + public GlobalEquivalentDomainsType Type { get; set; } + public IEnumerable Domains { get; set; } + public bool Excluded { get; set; } + } } }