Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.24 KB | None | 0 0
  1. @model KalenderTool.ViewModels.HomeViewModel
  2. @using System.Globalization
  3.  
  4. @{
  5. CultureInfo myCI = CultureInfo.CurrentUICulture;
  6. Calendar myCal = myCI.Calendar;
  7.  
  8. CalendarWeekRule myCWR = myCI.DateTimeFormat.CalendarWeekRule;
  9. DayOfWeek myFirstDOW = myCI.DateTimeFormat.FirstDayOfWeek;
  10.  
  11. //Get current Week
  12. int week = Model.WeekNo;
  13.  
  14. //Assign varWeek currentWeek to use as parameter in Page-navigation
  15. int VarWeek = week;
  16. }
  17.  
  18. <h2>KalendarTool</h2>
  19.  
  20. @* Table for Navigation *@
  21. <table class="table table-bordered " align="center" style="width:100%">
  22. <tr>
  23. <td style="text-align:center">
  24. <a href="@Url.Action("HomePage", "Home", new { @id = VarWeek-1 })" class="btn btn-outline-dark btn-sm"><i class="fas fa-arrow-circle-left"></i> Letzte Woche </a>
  25. </td>
  26. <th style="width:20%; text-align:center">
  27. Kalenderwoche @VarWeek
  28. </th>
  29. <td style="text-align:center">
  30. <a href="@Url.Action("HomePage", "Home", new { @id = VarWeek+1 })" class="btn btn-outline-dark btn-sm">Nächste Woche <i class="fas fa-arrow-circle-right"></i></a>
  31. </td>
  32.  
  33. </tr>
  34. </table>
  35.  
  36. <table class="table table-bordered justify-content-center" id="reservationCalendar" align="center" style="width:100%">
  37. <tr>
  38. @{
  39.  
  40. //GetCurrentMonth
  41. int currentMonth = DateTime.Now.Month;
  42.  
  43. //Loop through every Month
  44. for (int month = 0; month < 12; month++)
  45. {
  46. int currentYear = DateTime.Now.Year;
  47. DateTime firstDay = new DateTime(DateTime.Now.Year, currentMonth, 1);
  48. int daysInCurrentMonth = DateTime.DaysInMonth(firstDay.Year, firstDay.Month);
  49. DateTime lastDay = new DateTime(currentYear, currentMonth, daysInCurrentMonth);
  50. // Sunday casted to int gives 0 but that will not work for us, we need 7 to be able to calculate number of empty cells correctly
  51. int dayOfWeekFirst = ((int)firstDay.DayOfWeek > 0) ? (int)firstDay.DayOfWeek : 7;
  52. int dayOfWeekLast = ((int)lastDay.DayOfWeek > 0) ? (int)lastDay.DayOfWeek : 7;
  53.  
  54. //Loop through every Day in current Month
  55. for (int i = 1; i <= daysInCurrentMonth; i++)
  56. {
  57.  
  58. DateTime renderedDay = new DateTime(firstDay.Year, firstDay.Month, i);
  59. int week1 = myCal.GetWeekOfYear(renderedDay, myCWR, myFirstDOW);
  60.  
  61. String DayDate = renderedDay.ToString("dd.MMM");
  62.  
  63. //Checks if the current Week equals the Week of the currently looped through Day and takes care that only one Week is shown
  64. if (week == week1)
  65. {
  66. //Gets executed if the renderedDay is a Monday
  67. if (renderedDay.DayOfWeek == DayOfWeek.Monday)
  68. {
  69. if (renderedDay < DateTime.Now)
  70. {
  71. <td style="width:9%; text-align:center;padding-right:0px;padding-left:0px;">
  72.  
  73. <table class="table table-bordered justify-content-center" id="reservationCalendar" align="center" style="width:100%; height:100%;">
  74. <tr style="text-align:center;">Uhrzeit</tr>
  75. @{
  76. for (int d = 0; d < Model.Times.Count; d++)
  77. {
  78. <tr>
  79. <td>
  80. <div style="height: 25px; overflow:hidden;">
  81.  
  82. @Model.Times[d].Time1
  83. </div>
  84. </td>
  85. </tr>
  86. } }
  87. </table>
  88. </td>
  89. }
  90. }
  91. //Checks if current date is past or not
  92. if (renderedDay < DateTime.Now)
  93. {
  94. <td style="text-align:center;padding-right:0px;padding-left:0px;">
  95. @renderedDay.DayOfWeek, @DayDate
  96. <table class="table justify-content-center" style="width:100%; background-color:grey;">
  97. @{
  98. for (int s = 0; s < Model.Times.Count; s++)
  99. {
  100. <tr>
  101. <td>
  102. <div style="height: 25px; overflow:hidden;">
  103.  
  104. Vergangenheit
  105. </div>
  106. </td>
  107. </tr>
  108. } }
  109. </table>
  110. </td>
  111. }
  112. //Gets executed if Date isnt past
  113. else
  114. {
  115. <td style="text-align:center;padding-right:0px;padding-left:0px;">
  116.  
  117. @renderedDay.DayOfWeek, @DayDate
  118. <table class="table table-bordered justify-content-center" style="width:100%">
  119. @{
  120. for (int h = 0; h < Model.Times.Count; h++)
  121. {
  122. <tr>
  123. <td>
  124. <div style="height: 25px; overflow:hidden;">
  125.  
  126. @{
  127. string DayTime = Model.Times[h].Time1;
  128. string DayTimeHours = DayTime.Substring(0, 2);
  129. string DayTimeMinutes = DayTime.Substring(DayTime.Length - 2);
  130. double HourDouble = Convert.ToDouble(DayTimeHours);
  131. double MinutesDouble = Convert.ToDouble(DayTimeMinutes);
  132. DateTime renderedDayWithTime = renderedDay;
  133. renderedDayWithTime = renderedDayWithTime.AddHours(HourDouble);
  134. renderedDayWithTime = renderedDayWithTime.AddMinutes(MinutesDouble);
  135. string ModalString = renderedDayWithTime.ToString("ddMMyyyyHHmm");
  136. }
  137. <!-- Button trigger modal -->
  138. <button style="margin:0px" type="button" class="btn btn-success" data-toggle="modal" data-target="#@ModalString">
  139. Reservieren
  140. </button>
  141.  
  142. <!-- Modal -->
  143. <div class="modal fade" id="@ModalString" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
  144. <div class="modal-dialog modal-dialog-centered" role="document">
  145. <div class="modal-content">
  146. <div class="modal-header">
  147.  
  148. <h5 class="modal-title" id="exampleModalLongTitle"> @ModalString</h5>
  149. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  150. <span aria-hidden="true">&times;</span>
  151. </button>
  152. </div>
  153.  
  154. <div class="modal-footer">
  155. <button type="button" class="btn btn-secondary" data-dismiss="modal">Abbrechen</button>
  156. <button type="button" class="btn btn-primary">Reservieren</button>
  157. </div>
  158. </div>
  159. </div>
  160. </div>
  161. </div>
  162. </td>
  163.  
  164. </tr>
  165. } }
  166. </table>
  167. </td>
  168.  
  169. }
  170.  
  171. if (renderedDay.DayOfWeek == DayOfWeek.Sunday)
  172. {
  173. @:</tr>
  174. @:</table>
  175. @:<table class="table table-bordered" id="reservationCalendar" align="center" frame="border" style="width:100%">
  176. @:<tr>
  177. }
  178.  
  179. }
  180. }
  181. currentMonth = currentMonth + 1;
  182. }
  183. }
  184. </tr>
  185. </table>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement