SHOW:
|
|
- or go back to the newest paste.
1 | using System; | |
2 | using System.Collections.Generic; | |
3 | using System.Linq; | |
4 | using System.Web; | |
5 | using System.Data.SqlClient; | |
6 | using System.Globalization; | |
7 | ||
8 | /// <summary> | |
9 | /// Summary description for TestClass | |
10 | /// </summary> | |
11 | public class TestClass | |
12 | { | |
13 | public TestClass() | |
14 | { | |
15 | // | |
16 | // TODO: Add constructor logic here | |
17 | // | |
18 | } | |
19 | - | genericMethods gm = new genericMethods(); |
19 | + | |
20 | { | |
21 | public DateTime PunchInDate { get; set; } | |
22 | public DateTime PunchOutDate { get; set; } | |
23 | public DayOfWeek DayOfWeek { get; set; } | |
24 | public int WeekNumber { get; set; } | |
25 | public int MonthNumber { get; set; } | |
26 | public bool PunchedInLate { get; set; } | |
27 | public bool PunchedOutLate { get; set; } | |
28 | } | |
29 | public class Months | |
30 | { | |
31 | public int MonthNumber { get; set; } | |
32 | public List<Weeks> Weeks { get; set; } | |
33 | } | |
34 | public class Weeks | |
35 | { | |
36 | public int WeekNumber { get; set; } | |
37 | public List<Days> Days { get; set; } | |
38 | } | |
39 | public class Days | |
40 | { | |
41 | public bool PunchedInLate { get; set; } | |
42 | public bool PunchedOutLate { get; set; } | |
43 | public DateTime PunchInDate { get; set; } | |
44 | public DateTime PunchOutDate { get; set; } | |
45 | public DayOfWeek DayOfWeek { get; set; } | |
46 | } | |
47 | protected int GetAmountOfMonths(List<allItems> list, int numberToFind) | |
48 | { | |
49 | List<allItems> results = list.FindAll( | |
50 | delegate(allItems ai) | |
51 | { | |
52 | return ai.MonthNumber == numberToFind; | |
53 | } | |
54 | ); | |
55 | return results.Count; | |
56 | } | |
57 | protected int GetNumberOfWeeks(List<allItems> list, int numberToFind) | |
58 | { | |
59 | List<allItems> results = list.FindAll( | |
60 | delegate(allItems ai) | |
61 | { | |
62 | return ai.WeekNumber == numberToFind; | |
63 | } | |
64 | ); | |
65 | return results.Count; | |
66 | } | |
67 | public List<Months> getStats(string userId) | |
68 | { | |
69 | List<allItems> allStats = getAllStats(userId); | |
70 | List<Months> stats = new List<Months>(); | |
71 | var asItems = | |
72 | from item in allStats | |
73 | group item by new { month = item.MonthNumber } into Month | |
74 | select new Months() | |
75 | { | |
76 | MonthNumber = Month.Key.month, | |
77 | Weeks = Month.Select(week => | |
78 | from item in allStats | |
79 | group item by new { week = item.WeekNumber } into Week | |
80 | select new Weeks() | |
81 | { | |
82 | WeekNumber = Week.Key.week, | |
83 | Days = Month.Select(days => | |
84 | new Days() | |
85 | { | |
86 | PunchedInLate = days.PunchedInLate, | |
87 | PunchedOutLate = days.PunchedOutLate, | |
88 | DayOfWeek = days.DayOfWeek, | |
89 | PunchInDate = days.PunchInDate, | |
90 | PunchOutDate = days.PunchOutDate | |
91 | }).ToList() | |
92 | }) | |
93 | }; | |
94 | List<Months> stat = asItems.ToList(); | |
95 | return stat; | |
96 | } | |
97 | public List<allItems> getAllStats(string userId) | |
98 | { | |
99 | List<allItems> stats = new List<allItems>(); | |
100 | ||
101 | CultureInfo CultInfo = CultureInfo.CurrentCulture; | |
102 | ||
103 | bool addToList = false; | |
104 | allItems item = new allItems(); | |
105 | for (int i = 0; i < 10; i++) | |
106 | { | |
107 | DateTime dt = DateTime.Now.AddDays(i+3); | |
108 | string punchInTime = "Kommet for sent"; | |
109 | string punchOutTime = "Gået før flex tid"; | |
110 | item.PunchInDate = dt; | |
111 | item.PunchOutDate = dt; | |
112 | item.DayOfWeek = dt.DayOfWeek; | |
113 | item.MonthNumber = dt.Month; | |
114 | if (punchInTime == "Kommet for sent") | |
115 | { | |
116 | item.PunchedInLate = true; | |
117 | addToList = true; | |
118 | } | |
119 | if (punchOutTime == "Gået før flex-tid") | |
120 | { | |
121 | item.PunchedOutLate = true; | |
122 | addToList = true; | |
123 | } | |
124 | ||
125 | item.WeekNumber = CultInfo.Calendar.GetWeekOfYear(dt, CultInfo.DateTimeFormat.CalendarWeekRule, CultInfo.DateTimeFormat.FirstDayOfWeek); | |
126 | ||
127 | if (addToList) | |
128 | { | |
129 | stats.Add(item); | |
130 | } | |
131 | } | |
132 | ||
133 | return stats; | |
134 | } | |
135 | } |