Esempio n. 1
0
        public string EvaluateExpression(string expression, ConfiguredModel model)
        {
            CheckBraces(expression);
            var splitted  = expression.Split(_expressionTerms.ExprOpen, _expressionTerms.ExprClose);
            var evaluated = splitted.Select((str, i) => i % 2 == 0 ? str : model.GetStrValueByPath(str));

            return(string.Join("", evaluated));
        }
Esempio n. 2
0
        private List <string> GetDescriptionParts(ConfiguredModel model)
        {
            var metalConfigs = model.Configs
                               .Select(c => c.SelectedItem)
                               .OfType <OptionsSelectedItem>()
                               .Where(oi => oi.OptionsSource == OptionsSource.Metal)
                               .Select(m => m.ValueNameKey);
            var gemConfigs = model.Configs
                             .Select(c => c.SelectedItem)
                             .OfType <OptionsSelectedItem>()
                             .Where(oi => oi.OptionsSource == OptionsSource.Gemstone)
                             .Select(m => m.ValueNameKey);

            return(metalConfigs.Concat(gemConfigs).ToList());
        }
Esempio n. 3
0
        private List <string> GetNameParts(ConfiguredModel model)
        {
            var nameParts = new List <string> {
                model.NameKey
            };
            var ornamentConfig = model.Configs
                                 .Where(c => c.Identifier.ToLower().Contains(OrnamentKey))
                                 .Select(c => c.SelectedItem)
                                 .OfType <OptionsSelectedItem>()
                                 .Where(oi => oi.OptionsSource == OptionsSource.Custom)
                                 .FirstOrDefault();

            if (ornamentConfig != null)
            {
                nameParts.Add(ornamentConfig.ValueNameKey);
            }
            return(nameParts);
        }
Esempio n. 4
0
        public async Task <decimal> CalculateExpression(string expression, ConfiguredModel model)
        {
            var evaluatedExpression = _variablesEvaluator.EvaluateExpression(expression, model);

            return(await GetResultFromExpression(evaluatedExpression));
        }