Projekt

Obecné

Profil

Stáhnout (4.42 KB) Statistiky
| Větev: | Tag: | Revize:
1 5d9a5bd9 A-Konig
using System;
2
using System.Collections.Generic;
3
using System.Globalization;
4
using System.IO;
5
6 734533a8 A-Konig
namespace ServerApp.Parser.InputData
7 5d9a5bd9 A-Konig
{
8 734533a8 A-Konig
    /// <summary>
9
    /// Class responsible for loading data from file
10
    /// </summary>
11 5d9a5bd9 A-Konig
    static class CsvDataLoader
12
    {
13 734533a8 A-Konig
        /// <summary> Culture info for parsing numbers </summary>
14 5d9a5bd9 A-Konig
        static CultureInfo cultureInfo = new CultureInfo("de-DE");
15
16 734533a8 A-Konig
        /// <summary>
17
        /// Load csv file into array
18
        /// </summary>
19
        /// <param name="name">Path to file</param>
20
        /// <returns>Array with loaded data</returns>
21 5d9a5bd9 A-Konig
        static string[] LoadCsv(string name)
22
        {
23
            string[] lines = File.ReadAllLines(name);
24
            return lines;
25
        }
26
27 734533a8 A-Konig
        /// <summary>
28
        /// Load jis data from file
29
        /// </summary>
30
        /// <param name="pathToFile">Path to file</param>
31
        /// <returns></returns>
32 5d9a5bd9 A-Konig
        public static List<JisInstance> LoadJisFile(string pathToFile)
33
        {
34
            var lines = LoadCsv(pathToFile);
35
            List<JisInstance> list = new List<JisInstance>();
36
37
            for (int i = 0; i < lines.Length; i++)
38
            {
39
                var data = lines[i].Split(';');
40
                data[0] = data[0].Substring(1, data[0].Length - 2);
41
                data[1] = data[1].Substring(1, data[1].Length - 2);
42
                
43
                var dateTime = DateTime.ParseExact(data[1], "G", cultureInfo);
44
45
                int amount = 0;
46
                int.TryParse(data[2], out amount);
47
48
                JisInstance inst = new JisInstance(data[0], dateTime, amount);
49
                list.Add(inst);
50
            }
51
52
            return list;
53
        }
54
55 734533a8 A-Konig
        /// <summary>
56
        /// Load login data from file
57
        /// </summary>
58
        /// <param name="pathToFile">Path to file</param>
59
        /// <returns></returns>
60 5d9a5bd9 A-Konig
        public static List<LogInInstance> LoadLoginFile(string pathToFile)
61
        {
62
            var lines = LoadCsv(pathToFile);
63
            List<LogInInstance> list = new List<LogInInstance>();
64
65
            for (int i = 0; i < lines.Length; i++)
66
            {
67
                var data = lines[i].Split(';');
68
                data[0] = data[0].Substring(1, data[0].Length - 2);
69
                data[3] = data[3].Substring(1, data[3].Length - 2);
70
                data[4] = data[4].Substring(1, data[4].Length - 2);
71 0da0ac88 A-Konig
                data[5] = data[5].Substring(1, data[5].Length - 2);
72
                data[6] = data[6].Substring(1, data[6].Length - 2);
73
                data[7] = data[7].Substring(1, data[7].Length - 2);
74
                data[8] = data[8].Substring(1, data[8].Length - 2);
75 5d9a5bd9 A-Konig
76
                var dateTime = DateTime.ParseExact(data[0], "G", cultureInfo);
77
                var startTime = DateTime.ParseExact(data[3], "t", cultureInfo);
78
                var endTime = DateTime.ParseExact(data[4], "t", cultureInfo);
79
80
                int count = 0;
81
                int.TryParse(data[1], out count);
82
83
                int lesson = 0;
84
                int.TryParse(data[2], out lesson);
85
86
                LogInInstance inst = new LogInInstance(dateTime, count, lesson, startTime, endTime, data[5], data[6], data[7], data[8]);
87
                list.Add(inst);
88
            }
89
90
            return list;
91
        }
92
93 734533a8 A-Konig
        /// <summary>
94
        /// Load weather data from file
95
        /// </summary>
96
        /// <param name="pathToFile">Path to file</param>
97
        /// <returns></returns>
98 5d9a5bd9 A-Konig
        public static List<WeatherInstance> LoadWeatherFile(string pathToFile)
99
        {
100
            var lines = LoadCsv(pathToFile);
101
            
102
            List<WeatherInstance> list = new List<WeatherInstance>();
103
            for (int i = 0; i < lines.Length; i++)
104
            {
105
                var data = lines[i].Split(';');
106
                data[0] = data[0].Substring(1, data[0].Length - 2);
107
                
108
                var dateTime = DateTime.ParseExact(data[0], "G", cultureInfo);
109
                
110
                double temp = 0;
111
                double.TryParse(data[1], out temp);
112
                
113
                double wind = 0;
114
                double.TryParse(data[2], out wind);
115
                
116
                int rain = 0;
117
                int.TryParse(data[3], out rain);
118
                
119
                double lum = 0;
120
                double.TryParse(data[4], out lum);
121
122
                WeatherInstance inst = new WeatherInstance(dateTime, temp, wind, rain, lum);
123
                list.Add(inst);
124
            }
125
126
            return list;
127
        }
128
129
    }
130
}