Beispiel #1
0
        protected virtual string GetRecurringOrderFrequencyDisplayName(RecurringOrderProgram program, LineItem lineItem, CultureInfo cultureInfo)
        {
            if (RecurringOrderCartHelper.IsRecurringOrderLineItemValid(lineItem))
            {
                if (program != null)
                {
                    var frequency = program.Frequencies.FirstOrDefault(f => string.Equals(f.RecurringOrderFrequencyName, lineItem.RecurringOrderFrequencyName, StringComparison.OrdinalIgnoreCase));

                    if (frequency != null)
                    {
                        var localization = frequency.Localizations.FirstOrDefault(l => string.Equals(l.CultureIso, cultureInfo.Name, StringComparison.OrdinalIgnoreCase));

                        if (localization != null)
                        {
                            return(localization.DisplayName);
                        }
                        else
                        {
                            return(frequency.RecurringOrderFrequencyName);
                        }
                    }
                }
            }
            return(string.Empty);
        }
        public virtual RecurringOrderProgramViewModel CreateRecurringOrderProgramViewModel(RecurringOrderProgram program, CultureInfo culture)
        {
            if (program == null)
            {
                throw new ArgumentNullException(nameof(program));
            }
            if (culture == null)
            {
                throw new ArgumentNullException(nameof(culture));
            }

            var vm = ViewModelMapper.MapTo <RecurringOrderProgramViewModel>(program, culture);

            if (vm == null)
            {
                return(null);
            }

            var programLocalized = program.Localizations?.Find(l => string.Equals(l.CultureIso, culture.Name, StringComparison.OrdinalIgnoreCase));

            if (programLocalized != null)
            {
                vm.DisplayName = programLocalized.DisplayName;

                if (program.Frequencies != null && program.Frequencies.Any())
                {
                    var dictionary = new Dictionary <string, RecurringOrderProgramFrequencyViewModel>(StringComparer.OrdinalIgnoreCase);
                    foreach (var vmFrequency in vm.Frequencies)
                    {
                        if (dictionary.ContainsKey(vmFrequency.RecurringOrderFrequencyName))
                        {
                            continue;
                        }
                        dictionary.Add(vmFrequency.RecurringOrderFrequencyName, vmFrequency);
                    }

                    foreach (var frequency in program.Frequencies)
                    {
                        dictionary.TryGetValue(frequency.RecurringOrderFrequencyName, out RecurringOrderProgramFrequencyViewModel vmFrequency);
                        if (vmFrequency != null)
                        {
                            var localizlocalizedFrequency = frequency.Localizations.Find(l => string.Equals(l.CultureIso, culture.Name, StringComparison.OrdinalIgnoreCase));
                            vmFrequency.DisplayName = localizlocalizedFrequency != null
                                ? localizlocalizedFrequency.DisplayName
                                : vmFrequency.RecurringOrderFrequencyName;
                        }
                    }
                }
            }
            vm.Frequencies = vm.Frequencies.OrderBy(f => f.SequenceNumber).ToList();
            return(vm);
        }
        public virtual RecurringOrderProgramViewModel CreateRecurringOrderProgramViewModel(RecurringOrderProgram program, CultureInfo culture)
        {
            if (program == null)
            {
                throw new ArgumentNullException(nameof(program));
            }
            if (culture == null)
            {
                throw new ArgumentNullException(nameof(culture));
            }

            var vm = ViewModelMapper.MapTo <RecurringOrderProgramViewModel>(program, culture);

            if (vm == null)
            {
                return(null);
            }

            var programLocalized = program.Localizations?.FirstOrDefault(l => string.Equals(l.CultureIso, culture.Name, StringComparison.OrdinalIgnoreCase));

            if (programLocalized != null)
            {
                vm.DisplayName = programLocalized.DisplayName;

                foreach (var frequency in program.Frequencies ?? Enumerable.Empty <RecurringOrderFrequency>())
                {
                    var vmFrequency = vm.Frequencies.FirstOrDefault(f => string.Equals(f.RecurringOrderFrequencyName, frequency.RecurringOrderFrequencyName, StringComparison.OrdinalIgnoreCase));
                    if (vmFrequency != null)
                    {
                        var localizlocalizedFrequency = frequency.Localizations.FirstOrDefault(l => string.Equals(l.CultureIso, culture.Name, StringComparison.OrdinalIgnoreCase));

                        if (localizlocalizedFrequency != null)
                        {
                            vmFrequency.DisplayName = localizlocalizedFrequency.DisplayName;
                        }
                        else
                        {
                            vmFrequency.DisplayName = vmFrequency.RecurringOrderFrequencyName;
                        }
                    }
                }
            }

            vm.Frequencies = vm.Frequencies.OrderBy(f => f.SequenceNumber).ToList();

            return(vm);
        }