private NormalizationStatus CheckWeights(List <dtoItemWeight> weights, Boolean isFuzzy, Boolean autoUpdateWeights) { NormalizationStatus nStatus = NormalizationStatus.none; if (weights.Any(i => !String.IsNullOrWhiteSpace(i.Value))) { LM.MathLibrary.Extensions.FuzzyExtension.Normalization status; TriangularFuzzyNumber[] w = null; try { if (isFuzzy) { w = weights.Select(i => TriangularFuzzyNumber.Parse(i.Value)).ToArray(); } else { w = weights.Select(i => new TriangularFuzzyNumber(long.Parse(i.Value))).ToArray(); } w = w.NormalizeWeights(out status).ToArray(); if (status == FuzzyExtension.Normalization.normalizable) { Int32 index = 0; foreach (TriangularFuzzyNumber i in w) { if (w[index] != null) { weights[index].Value = (isFuzzy ? w[index].ToString() : w[index].ToCrispy().ToString()); } else { weights[index].Value = ""; } index++; } if (autoUpdateWeights) { View.UpdateWeights(weights); } } } catch (Exception ex) { status = FuzzyExtension.Normalization.none; } nStatus = TranslateStatus(status); } View.CurrentNormalization = nStatus; return(nStatus); }
public Boolean CheckWeightsNormalization(List <dtoItemWeight> weights, Boolean isFuzzy, Boolean autoUpdateWeights) { NormalizationStatus nStatus = CheckWeights(weights, isFuzzy, autoUpdateWeights); switch (nStatus) { case NormalizationStatus.normalized: View.HideNormalizationMessage(); return(true); case NormalizationStatus.normalizable: View.DisplayNormalizationMessage(nStatus); return(true); default: View.DisplayNormalizationMessage(nStatus); return(false); } }