private string _GetResultForA4() { string result = "<h2>Число разработчиков в кластере</h2><table border=\"1\"><tr><th>Кластер</th>"; foreach (var key in _results.Select(d => d.Key).Distinct().OrderBy(d => d).Skip(1)) { result += $"<th>{key.ToString("MMMM yyyy")}</th>"; } result += "</tr>"; var scale = FuzzyScaleRepository.ForA4(); foreach (var pair in _temporaryResults) { result += $"<tr><td>{Helpers.ClasterHelper.GetFullName(pair.Key)}</td>"; foreach (var item in pair.Value.OrderBy(d => d.Month).Skip(1).Select((value, index) => new { index, value })) { var beforeItem = pair.Value[item.index]; var value = item.value.A4_Value - beforeItem.A4_Value; var absValue = Math.Abs(value); var stringValue = string.Empty; var scaleValue = scale.GetAccessory((decimal)value); if (scaleValue.Name == "P43") { stringValue = "стабильность"; } else if (scaleValue.Name == "P45") { stringValue = "сильный рост"; } else if (scaleValue.Name == "P41") { stringValue = "сильное падение"; } else if (scaleValue.Name == "P44") { stringValue = "слабый рост"; } else if (scaleValue.Name == "P42") { stringValue = "слабое падение"; } else { throw new ArgumentException(); } //int cValueCount = 0; //for (int i = 0; i < item.value.A4_Values.Count(); i++) //{ // var cValue = item.value.A4_Values[i] - beforeItem.A4_Values[i]; // var csacleValue = scale.GetAccessory((decimal)cValue); // if (scaleValue.Name == csacleValue.Name) // cValueCount++; //} //var tendation = "распределено равномерно"; //if (1.0 * cValueCount / item.value.A4_Values.Count() > 0.6) // tendation = "типичная тенденция"; result += $"<td>{stringValue}<br/><small>(с.и.: {scaleValue.Value:0.00})</small></td>"; } result += "</tr>"; } result += "</table>"; return(result); }
private void graphA4Panel_Paint(object sender, PaintEventArgs e) { var scale = FuzzyScaleRepository.ForA4(); DrawGraph(scale, e.Graphics); }