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)} 回"}));
chart1.Series[0].Points.AddXY($"visit {log.Visit}\r\n{log.ExecDate.ToString("MM/dd")}",
log.FB.Count(Feedback.FBITEM.TOTAL));
}
}
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];
}
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);
}
}
}