public dtoItemWeightSettings VerifySettings(dtoItemWeightSettings settings) { if (settings.Error == DssError.None) { switch (settings.RatingType) { case RatingType.simple: TemplateRatingValue item = Service.RatingValueGet(settings.IdRatingValue); if (item != null) { if (item.IsFuzzy) { TriangularFuzzyNumber fValue = null; if (TriangularFuzzyNumber.TryParse(item.FuzzyValue, out fValue)) { settings.Weight = fValue.CenterOfGravity; settings.WeightFuzzy = item.FuzzyValue; } else { settings.Error = DssError.InvalidWeight; } } else { settings.Weight = item.Value; } } else { settings.Error = DssError.InvalidWeight; } break; case RatingType.intermediateValues: TemplateRatingValue fromValue = Service.RatingValueGet(settings.IdRatingValue); TemplateRatingValue toValue = Service.RatingValueGet(settings.IdRatingValueEnd); if (fromValue != null && toValue != null) { if (fromValue.IsFuzzy) { try{ TriangularFuzzyNumber fValue = TriangularFuzzyNumber.Intermediate(TriangularFuzzyNumber.Parse(fromValue.FuzzyValue), TriangularFuzzyNumber.Parse(toValue.FuzzyValue)); settings.Weight = fValue.CenterOfGravity; settings.WeightFuzzy = fValue.ToString(); } catch (Exception ex) { settings.Error = DssError.InvalidWeight; } } else { settings.Weight = ((fromValue.Value + toValue.Value) / 2); } } else { settings.Error = DssError.InvalidWeight; } break; } } return(settings); }