Advertisement
Guest User

Untitled

a guest
Mar 11th, 2013
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.     public class allItems
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement