Projekt

Obecné

Profil

Stáhnout (3.19 KB) Statistiky
| Větev: | Tag: | Revize:
1 98b568bc A-Konig
using ServerApp.Parser.InputData;
2
using ServerApp.Parser.OutputInfo;
3 93452c41 A-Konig
using System;
4
using System.Collections.Generic;
5
using System.Globalization;
6
using System.Threading;
7
8 734533a8 A-Konig
namespace ServerApp.Parser.Parsers
9 93452c41 A-Konig
{
10 734533a8 A-Konig
    /// <summary>
11
    /// Class parsing data files into instances of ActivityInfo and WeatherInfo divided by given time interval
12
    /// Data parsed from 7am (included) to 18pm (included)
13
    /// </summary>
14 98b568bc A-Konig
    /// <author>Alex Konig</author>
15 734533a8 A-Konig
    class DataParser
16 93452c41 A-Konig
    {
17 734533a8 A-Konig
        /// <summary> Path to data folder </summary>
18 93452c41 A-Konig
        string path;
19 734533a8 A-Konig
        /// <summary> Weather data parser </summary>
20 93452c41 A-Konig
        WeatherParser weatherParser;
21 734533a8 A-Konig
        /// <summary> Jis data parser </summary>
22 93452c41 A-Konig
        JisParser jisParser;
23 734533a8 A-Konig
        /// <summary> Login data parser </summary>
24 93452c41 A-Konig
        LogInParser loginParser;
25
26 734533a8 A-Konig
        /// <summary> WeatherInfo </summary>
27 78428231 A-Konig
        public List<WeatherInfo> weatherList;
28 734533a8 A-Konig
        /// <summary> ActivityInfo representing jis activity </summary>
29
        public List<ActivityInfo> jisList;
30
        /// <summary> ActivityInfo representing login activity</summary>
31
        public List<ActivityInfo> loginList;
32 78428231 A-Konig
33 734533a8 A-Konig
        /// <summary>
34
        /// Constructor
35
        /// </summary>
36 98b568bc A-Konig
        public DataParser(string path)
37 93452c41 A-Konig
        {
38
            TagInfo.CreateDictionaries();
39 734533a8 A-Konig
40
            // TODO ask for data folder?
41 98b568bc A-Konig
            this.path = path;
42
            DataLoader loader = new CsvDataLoader();
43 93452c41 A-Konig
44 98b568bc A-Konig
            weatherParser = new WeatherParser(loader);
45
            jisParser = new JisParser(loader);
46
            loginParser = new LogInParser(loader);
47 93452c41 A-Konig
        }
48
49 734533a8 A-Konig
        /// <summary>
50
        /// Parse data
51
        /// </summary>
52
        /// <param name="interval">Length of an interval</param>
53
        /// <param name="wholeDay">Parse data as one instance per day</param>
54
        public void Parse(int interval = 1, bool wholeDay = true)
55 93452c41 A-Konig
        {
56
            var cultureInfo = CultureInfo.GetCultureInfo("en-GB");
57
            Thread.CurrentThread.CurrentCulture = cultureInfo;
58
            Thread.CurrentThread.CurrentUICulture = cultureInfo;
59
60
            string pathWeather = path + "weather";
61
            string pathJis = path + "jis";
62
            string pathLogIn = path + "login";
63
64 98b568bc A-Konig
            weatherList = weatherParser.ParseWeatherData(pathWeather, false, 2); // wholeDay, interval);
65 ecdce631 A-Konig
            jisList = jisParser.ParseJisData(pathJis, false, 2); // wholeDay, interval);
66 54fb2bde A-Konig
            loginList = loginParser.ParseLogInData(pathLogIn, false, 2); // wholeDay, interval);
67 93452c41 A-Konig
68 260b1217 A-Konig
            //Console.WriteLine("WEATHER");
69
            //WriteToConsole(weatherList);
70 ecdce631 A-Konig
            Console.WriteLine("JIS");
71
            WriteToConsole(jisList);
72
            //Console.WriteLine("LOGIN");
73
            //WriteToConsole(loginList);
74 93452c41 A-Konig
        }
75
76 734533a8 A-Konig
        /// <summary>
77
        /// Debug method - writing lists to console
78
        /// </summary>
79 93452c41 A-Konig
        private void WriteToConsole<T>(List<T> list)
80
        {
81 734533a8 A-Konig
            // TODO useless in finished app
82 93452c41 A-Konig
            if (list == null)
83
            {
84
                Console.WriteLine("Unsuccessful parsing");
85
                return;
86
            }
87
            Console.WriteLine(list.Count);
88
89
            for (int i = 0; i < list.Count; i++)
90
                Console.WriteLine(list[i].ToString());
91
        }
92
93
    }
94
}