Exemplo n.º 1
0
        protected override void BuildTable(GlobalizationCurrencyInfo[] globalizationInfo, CurrencyInfo[] configurationInfo)
        {
            var configurationMap = configurationInfo.ToDictionary(i => i.Code, Currency.Code.Comparer);

            var cmp = new AlphaComparer();

            foreach (var group in globalizationInfo.GroupBy(i => i.Info.Code).OrderBy(g => g.Key, cmp))
            {
                GlobalizationCurrencyInfo[] fromGlobalization = group.OrderBy(i => i.Culture.Name, StringComparer.Ordinal).ToArray();
                if (fromGlobalization.Length > 1)
                {
                    CurrencyInfo fromConfiguration = configurationMap[group.Key];
                    Enumeration.TryGetAttribute(fromConfiguration.Code, out CanonicalCultureAttribute canonicalAttr);
                    CultureInfo canonicalCulture = canonicalAttr?.Culture();
                    if (canonicalCulture != null)
                    {
                        string canonicalColumn = FormatCultureColumn(canonicalCulture, canonicalAttr.Overwritten);

                        AddRow(group.Key, canonicalColumn, string.Empty, string.Empty);
                        foreach (var notCanonical in fromGlobalization.Where(i => !i.Culture.Equals(canonicalCulture)))
                        {
                            string notCanonicalColumn = FormatCultureColumn(notCanonical.Culture);
                            string equalityColumn     = notCanonical.Equals(fromConfiguration) ? "=" : "!=";
                            AddRow(string.Empty, string.Empty, notCanonicalColumn, equalityColumn);
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        protected override void BuildTable(GlobalizationCurrencyInfo[] globalizationInfo, CurrencyInfo[] configurationInfo)
        {
            var notDecorated = configurationInfo
                               .Where(i => !Enumeration.HasAttribute <CurrencyIsoCode, CanonicalCultureAttribute>(i.Code))
                               .ToArray();

            var cmp = new AlphaComparer();

            foreach (var fromConfiguration in notDecorated.OrderBy(i => i.Code, cmp))
            {
                var fromGlobalization = globalizationInfo.Where(i => Currency.Code.Comparer.Equals(i.Info.Code, fromConfiguration.Code)).ToArray();
                for (int i = 0; i < fromGlobalization.Length; i++)
                {
                    if (i == 0)
                    {
                        AddRow(fromConfiguration.Code, string.Empty);
                    }
                    string fromGlobalizationColumn = FormatCultureColumn(fromGlobalization[i].Culture);

                    AddRow(string.Empty, fromGlobalizationColumn);
                }
            }
        }