public IAnalysis CreateInstance(dynamic jsonConfig) { if (this.QuantityAnalysisFactory == null || this.QuantitySearchTypesFactory == null || string.IsNullOrEmpty(this.Type)) { throw new MissingRequiredDependencyException(); } int?min = null; int?max = null; if (!DynamicExtensions.HasProperty(jsonConfig, "search")) { throw new InvalidJSONException(); } if (DynamicExtensions.HasProperty(jsonConfig, "min")) { min = DynamicExtensions.AsInt(jsonConfig.min); } if (DynamicExtensions.HasProperty(jsonConfig, "max")) { max = DynamicExtensions.AsInt(jsonConfig.max); } List <IQuantitySearch> quantitySearchList = new List <IQuantitySearch>(); foreach (var searchItem in jsonConfig.search) { quantitySearchList.Add(this.QuantitySearchTypesFactory.CreateInstance(searchItem)); } return(this.QuantityAnalysisFactory.CreateInstance(min, max, quantitySearchList)); }
public void AsIntShouldReturnIntValueWhenIsNumericAndZeroInOtherCases() { dynamic obj = new ExpandoObject(); obj.entero = 1; obj.doble = (double)2; obj.cadena = "cadena"; Assert.AreEqual(DynamicExtensions.AsInt(obj.entero), 1); Assert.AreEqual(DynamicExtensions.AsInt(obj.doble), 2); Assert.AreEqual(DynamicExtensions.AsInt(obj.cadena), 0); }