Newer
Older
PrismSoftware / EcomAnalysis / Feedback.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EcomAnalysis {
    class Feedback {
        public enum FBITEM { OK, GOOD, NICE, GREAT, EXCELLENT, TOTAL }
        private const int NUM_ITEMS = 5;
        private int[] _Counts = new int[NUM_ITEMS];
        private int[] _Points = new int[NUM_ITEMS];

        /// <summary>
        /// ログからFB回数とポイントを計算
        /// </summary>
        /// <param name="data"></param>
        public void Calc(List<LogData> data) {
            for (int i = 0; i < NUM_ITEMS; i++) {
                _Counts[i] = data.Where(s => s.Feedback == i + 1).Count();
                _Points[i] = _Counts[i] * (i + 1);
            }

        }

        /// <summary>
        /// FB回数を返す
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public int Count(FBITEM item) {
            if (item == FBITEM.TOTAL) {
                return _Counts.Sum();
            }
            return _Counts[(int)item];
        }

        /// <summary>
        /// ポイントを返す
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public int Point(FBITEM item) {
            if (item == FBITEM.TOTAL) {
                return _Points.Sum();
            }
            return _Points[(int)item];
        }
    }
}