public ColorCategoryMapper(IOutlookSession outlookSession, IColorMappingsDataAccess colorMappingsDataAccess)
        {
            _colorMappingsDataAccess = colorMappingsDataAccess;
            _outlookSession          = outlookSession ?? throw new ArgumentNullException(nameof(outlookSession));

            var mappingEntries = colorMappingsDataAccess.Load();

            _categoryByHtmlColor = mappingEntries.ToDictionary(e => e.HtmlColor, StringComparer.OrdinalIgnoreCase);

            _outlookColorByCategory = outlookSession.GetCategories()
                                      .Where(c => c.Color != OlCategoryColor.olCategoryColorNone)
                                      .ToDictionary(c => c.Name, c => c.Color, StringComparer.InvariantCultureIgnoreCase);
        }
 public ColorCategoryMapperFactory(IOutlookSession outlookSession, IColorMappingsDataAccess colorMappingsDataAccess)
 {
     if (outlookSession == null)
     {
         throw new ArgumentNullException(nameof(outlookSession));
     }
     if (colorMappingsDataAccess == null)
     {
         throw new ArgumentNullException(nameof(colorMappingsDataAccess));
     }
     _outlookSession          = outlookSession;
     _colorMappingsDataAccess = colorMappingsDataAccess;
 }