OrgMealCounter.cs 3.26 KB
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.Web.Script.Serialization;
using System.Windows.Forms;
using MoyaAdminUI.MoyaAPI;
using MoyaAdminLib;

namespace MoyaAdminUI
{
    public partial class OrgMealCounter : Form
    {
        public OrgMealCounter()
        {
            InitializeComponent();
        }

        private void OrgMealCounter_Load(object sender, EventArgs e)
        {
            string ret = "";
            RestClient client = new RestClient(Properties.Settings.Default.ApiURL);
            try
            {
                ret = client.MakeRequest("reader/List");

                var ser = new JavaScriptSerializer();
                ReaderList readers = ser.Deserialize<ReaderList>(ret);

                readersComboBox.Items.Clear();

                foreach (Reader reader in readers.readers)
                {
                    readersComboBox.Items.Add(reader);
                }
            }
            catch (Exception ex)
            {
                ret = ex.Message;
            }
        }

        private void readersComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (readersComboBox.SelectedItem != null && readersComboBox.SelectedItem is Reader)
            {
                string ret = "";
                Reader reader = (Reader) readersComboBox.SelectedItem;
                RestClient client = new RestClient(Properties.Settings.Default.ApiURL);

                Dictionary<DateTime, int> amountsPerDay = new Dictionary<DateTime, int>();
                int totalAmount = 0;

                try
                {
                    ret = client.MakeRequest("reader/readerevents/" + reader.readerId + "/0");
                    var ser = new JavaScriptSerializer();
                    ReaderEventList events = ser.Deserialize<ReaderEventList>(ret);
                    if (events != null && events.readerEvents != null)
                    {
                        foreach (ReaderEvent re in events.readerEvents)
                        {
                            DateTime date = re.readerEventTime.Date;
                            if (amountsPerDay.Keys.Contains(date))
                                amountsPerDay[date] += 1;
                            else
                                amountsPerDay.Add(date, 1);
                            totalAmount++;
                        }

                        foreach (DateTime date in amountsPerDay.Keys)
                        {
                            amountsPerDayListView.Columns.Add(new ColumnHeader(date.ToShortDateString()));
                        }
                        amountsPerDayListView.Columns.Add(new ColumnHeader("Yhteensä"));
                        ListViewItem lvi = new ListViewItem();
                        foreach (DateTime date in amountsPerDay.Keys)
                        {
                            lvi.SubItems.Add(amountsPerDay[date].ToString());
                        }
                        lvi.SubItems.Add(totalAmount.ToString());
                    }
                }
                catch (Exception ex)
                {

                }


            }
        }
    }
}