public void InitView(Boolean isFuzzy, Double ranking, Double value, String fuzzyString, String text, String shortText) { if (isFuzzy) { TriangularFuzzyNumber fValue = null; if (String.IsNullOrWhiteSpace(fuzzyString)) { fValue = value.ToFuzzy(); fuzzyString = fValue.ToString(); } else { try { TriangularFuzzyNumber.TryParse(fuzzyString, out fValue); } catch (Exception ex) { fValue = value.ToFuzzy(); } } View.RenderRankingFuzzyNumber(text, shortText, ranking.ToString(), fuzzyString, (fValue == null ? "0" : fValue.CenterOfGravity.Round())); } else { if (Math.Floor(value) == Math.Round(value, 3)) { View.RenderNumber(text, Math.Floor(value).ToString()); } else { View.RenderNumber(text, value.Round()); } } }
public dtoItemRating VerifySettings(dtoItemRating 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.Value = fValue.CenterOfGravity; settings.ValueFuzzy = item.FuzzyValue; } else { settings.Error = DssError.InvalidWeight; } } else { settings.Value = 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.Value = fValue.CenterOfGravity; settings.ValueFuzzy = fValue.ToString(); } catch (Exception ex) { settings.Error = DssError.InvalidWeight; } } else { settings.Value = ((fromValue.Value + toValue.Value) / 2); } } else { settings.Error = DssError.InvalidWeight; } break; } } return(settings); }