using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
namespace EcomAnalysis {
public partial class FormCompareLogs : Form {
private List<LogFileInfo> _LogFiles;
public FormCompareLogs() {
InitializeComponent();
}
public void SetData(List<LogFileInfo> logs) {
_LogFiles = logs;
MakeTable();
MakeChart(0);
}
private void MakeTable() {
listView1.Items.Clear();
foreach (var log in _LogFiles.OrderBy(s => s.ExecDate)) {
listView1.Items.Add(new ListViewItem(new string[] {
log.ExecDate.ToString("yyyy/MM/dd HH:mm"),
log.Visit.ToString(),
$"{log.FB.Count(Feedback.FBITEM.TOTAL)} 回",
$"{log.FB.Point(Feedback.FBITEM.TOTAL)} pts",
$"{log.FB.Count(Feedback.FBITEM.OK)} 回",
$"{log.FB.Count(Feedback.FBITEM.GOOD)} 回",
$"{log.FB.Count(Feedback.FBITEM.NICE)} 回",
$"{log.FB.Count(Feedback.FBITEM.GREAT)} 回",
$"{log.FB.Count(Feedback.FBITEM.EXCELLENT)} 回"}));
}
}
private void MakeChart(int type) {
chart1.Series[0].Points.Clear();
foreach (var log in _LogFiles.OrderBy(s => s.ExecDate)) {
var val = 0;
switch (type) {
case 0: val = log.FB.Count(Feedback.FBITEM.TOTAL); break;
case 1: val = log.FB.Point(Feedback.FBITEM.TOTAL); break;
case 2: val = log.FB.Count(Feedback.FBITEM.OK); break;
case 3: val = log.FB.Count(Feedback.FBITEM.GOOD); break;
case 4: val = log.FB.Count(Feedback.FBITEM.NICE); break;
case 5: val = log.FB.Count(Feedback.FBITEM.GREAT); break;
case 6: val = log.FB.Count(Feedback.FBITEM.EXCELLENT); break;
}
chart1.Series[0].Points.AddXY(
$"visit {log.Visit}\r\n{log.ExecDate.ToString("MM/dd")}", val);
}
var titles = new string[] {"合計フィードバック回数", "獲得ポイント", "OK回数",
"Good回数", "Nice回数", "Great回数", "Excellent回数"};
chart1.Titles[0].Text = titles[type];
var colors = new Color[] { Color.Orange, Color.Blue, Color.PaleGreen,
Color.MediumPurple, Color.Gold, Color.Red, Color.Brown};
chart1.Series[0].Color = colors[type];
chart1.Series[0].MarkerColor = colors[type];
}
private void RadioFBTotal_CheckedChanged(object sender, EventArgs e) {
MakeChart(0);
}
private void RadioPoint_CheckedChanged(object sender, EventArgs e) {
MakeChart(1);
}
private void RadioOK_CheckedChanged(object sender, EventArgs e) {
MakeChart(2);
}
private void RadioGood_CheckedChanged(object sender, EventArgs e) {
MakeChart(3);
}
private void RadioNice_CheckedChanged(object sender, EventArgs e) {
MakeChart(4);
}
private void RadioGreat_CheckedChanged(object sender, EventArgs e) {
MakeChart(5);
}
private void RadioExcellent_CheckedChanged(object sender, EventArgs e) {
MakeChart(6);
}
private void BtnClose_Click(object sender, EventArgs e) {
Close();
}
}
}