public async Task <IActionResult> WkLdReq(string date, string searchtext, int draw, int start = 0, int length = 10) { int pageIndex = 0; if (start != 0) { pageIndex = start / length + 1; } if (pageIndex == 0) { pageIndex = 1; } MyWeeklyHoursDataTableData dataTableData = new MyWeeklyHoursDataTableData(); if (User.Identity.IsAuthenticated) { WeeklyHoursViewModel myWeeklyHoursViewModel = new WeeklyHoursViewModel(); _userProfile = await _dataServiceClient.GetUserProfile(); ViewData["Email"] = _userProfile.Fields.Upn; ViewData["IsManager"] = _userProfile.Fields.IsManager; ViewData["IsHr"] = _userProfile.Fields.IsHr; ViewData["IsAdmin"] = _userProfile.Fields.IsAdmin; ViewData["UserImage"] = _userProfile.Fields.UserPicture; DateTime selDt = DateTime.Now.AddMonths(-1); if (date != null) { selDt = DateTime.Parse(date); int startDay = (int)selDt.DayOfWeek; int dayOfMonth = (int)selDt.Day; while ((startDay > 0) && (dayOfMonth > 1)) { selDt = selDt.AddDays(-1); startDay--; dayOfMonth--; } } string searchQuery = HttpContext.Request.Query["search[value]"].ToString(); WeeklyHoursViewModel weeklyHoursViewModel = new WeeklyHoursViewModel(); if (searchtext != null) { weeklyHoursViewModel = await _reportHoursService.GetSearchResults(selDt, searchtext, pageIndex, length); dataTableData = weeklyHoursViewModel.MyWeeklyHoursDataTableData; } else { weeklyHoursViewModel = await _reportHoursService.GetViewModel(selDt, pageIndex, length); dataTableData = weeklyHoursViewModel.MyWeeklyHoursDataTableData; } dataTableData.draw = draw; dataTableData.recordsTotal = (pageIndex * length) + dataTableData.data.Count + 1; int recordsFiltered = (pageIndex * length) + dataTableData.data.Count + 1; dataTableData.recordsFiltered = recordsFiltered; if (date == null) { myWeeklyHoursViewModel.SearchDate = myWeeklyHoursViewModel.fnGetLastMonthLastWeekSunDate(); // Start on Sunday. } else { int startDay = (int)selDt.DayOfWeek; int dayOfMonth = (int)selDt.Day; while ((startDay > 0) && (dayOfMonth > 1)) { selDt = selDt.AddDays(-1); startDay--; dayOfMonth--; } myWeeklyHoursViewModel.SearchDate = selDt; } myWeeklyHoursViewModel.UserInfo = _userProfile; return(Json(dataTableData)); } else { ErrorViewModel EVM = new ErrorViewModel(); return(View(EVM)); } }
/* * public async Task<IActionResult> Weekly(string dt) * { * if (User.Identity.IsAuthenticated) * { * // Get UserProfile details * _userProfile = await _dataServiceClient.GetUserProfile(User, HttpContext); * ViewData["Email"] = _userProfile.Fields.Upn; * ViewData["IsManager"] = _userProfile.Fields.IsManager; * ViewData["IsHr"] = _userProfile.Fields.IsHr; * ViewData["IsAdmin"] = _userProfile.Fields.IsAdmin; * ViewData["UserImage"] = _userProfile.Fields.UserPicture; * * DateTime selDt = DateTime.Now.AddDays(-DateTime.Now.Day); * if (dt != null) * { * selDt = Convert.ToDateTime(dt.ToString()); * } * * * var viewModel = await _dataServiceClient.GetWeeklyReportHours( * User, * HttpContext, * selDt); * viewModel.ComputeTotalHrs(); * viewModel.SelectedDate = selDt; * return View(viewModel); * } * else * { * ErrorViewModel EVM = new ErrorViewModel(); * * return View(EVM); * } * } */ //public async Task<IActionResult> Weekly(string dt) public async Task <IActionResult> Weekly(string selMonthDt, string empNameFilter = default(string), int pageId = 0, int pageSize = 10, ListCollectionPage <ReportHours> reportHours = null, int status = 0) { var ci = System.Threading.Thread.CurrentThread.CurrentCulture; if (User.Identity.IsAuthenticated) { // Get UserProfile details if (_userProfile == null) { _userProfile = await _userProfileRepository.GetItemAsync(); } ViewData["Email"] = _userProfile.Fields.Upn; ViewData["IsManager"] = _userProfile.Fields.IsManager; ViewData["IsHr"] = _userProfile.Fields.IsHr; ViewData["IsAdmin"] = _userProfile.Fields.IsAdmin; ViewData["UserImage"] = _userProfile.Fields.UserPicture; DateTime selDt = DateTime.Now.AddDays(-DateTime.Now.Day); int startDay = (int)selDt.DayOfWeek; int dayOfMonth = (int)selDt.Day; while ((startDay > 0) && (dayOfMonth > 1)) { selDt = selDt.AddDays(-1); startDay--; dayOfMonth--; } if (selMonthDt != null) { selDt = Convert.ToDateTime(selMonthDt.ToString()); startDay = (int)selDt.DayOfWeek; dayOfMonth = (int)selDt.Day; while ((startDay > 0) && (dayOfMonth > 1)) { selDt = selDt.AddDays(-1); startDay--; dayOfMonth--; } } //DateTime date = Convert.ToDateTime(selMonthDt); // Get an array tagging each item of the month with the Week number int[] dateWeekNumber = _dataServiceClient.GetDayOfMonthWeekAssignmentArray(selDt); // Get an array tagging each item of the month with the Week number var myWeekNumber = dateWeekNumber[selDt.Day - 1]; var weeklyHrsList = new List <WeeklyHours>(); WeeklyHoursViewModel weeklyViewModel = new WeeklyHoursViewModel(); ListCollectionPage <ReportHours> weeklyTemp = null; //if (Request.Query.Count != 0) //{ //var json = Request.Query["reportHours"]; //weeklyTemp = JsonConvert.DeserializeObject<ListCollectionPage<ReportHours>>(json); //} if (status == 0) { reportHours = await _dataServiceClient.GetWeeklyPageView(selDt, empNameFilter, pageId, pageSize, null, 0); } else if (status == 1) { reportHours = await _dataServiceClient.GetWeeklyPageView(selDt, empNameFilter, pageId, pageSize, reportHours, 1); } else if (status == 2) { reportHours = await _dataServiceClient.GetWeeklyPageView(selDt, empNameFilter, pageId, pageSize, reportHours, 2); } /* * if (teamHours == null) * { * myTeamsHoursViewModel.UserInfo = _userProfile; * return View(myTeamsHoursViewModel); * } */ ViewData["ReportHoursCollection"] = reportHours; IList <ReportHours> reportHoursList = reportHours.DataList; // Group Monthly Report hours by individual User data using DisplayName var groupings = from item in reportHoursList group item by item.Fields.DisplayName into data select data; // Process the data for each user foreach (var grouping in groupings) { var weeklyHrs = new WeeklyHours(); //Add the computed object(for each employee) to the list of weekly hours for the HR weeklyHrsList.Add(weeklyHrs); weeklyHrs.EmpName = grouping.Key; foreach (var item in grouping) { Dictionary <string, short> hrsMins = new Dictionary <string, short>(); //call to get Final hours for ReportHours Repository data hrsMins = HoursComputeHelper.GetFinalHrsMins(item); var totalHours = hrsMins["FinalTotalHrs"]; var totalMins = hrsMins["FinalTotalMins"]; if (weeklyHrs.MgrName == null) { weeklyHrs.MgrName = item.Fields.ManagerDisplayName; } var itemDate = DateTime.ParseExact(item.Fields.Date, "yyyyMMdd", ci); var theWeekNumber = dateWeekNumber[itemDate.Day - 1]; if (dateWeekNumber[itemDate.Day - 1] == myWeekNumber) { switch (itemDate.DayOfWeek) { case System.DayOfWeek.Saturday: weeklyHrs.SundayHours += totalHours; weeklyHrs.SundayMins += totalMins; break; case System.DayOfWeek.Monday: weeklyHrs.MondayHours += totalHours; weeklyHrs.MondayMins += totalMins; break; case System.DayOfWeek.Tuesday: weeklyHrs.TuesdayHours += totalHours; weeklyHrs.TuesdayMins += totalMins; break; case System.DayOfWeek.Wednesday: weeklyHrs.WednesdayHours += totalHours; weeklyHrs.WednesdayMins += totalMins; break; case System.DayOfWeek.Thursday: weeklyHrs.ThursdayHours += totalHours; weeklyHrs.ThursdayMins += totalMins; break; case System.DayOfWeek.Friday: weeklyHrs.FridayHours += totalHours; weeklyHrs.FridayMins += totalMins; break; default: weeklyHrs.SaturdayHours += totalHours; weeklyHrs.SaturdayMins += totalMins; break; } } } } if (selMonthDt == null) { weeklyViewModel.SelectedDate = fnGetLastMonthLastWeekSunDate(); // Start on Sunday. } else { weeklyViewModel.SelectedDate = selDt; } //weeklyViewModel.u = _userProfile; //WeeklyHrs = weeklyHrsList; weeklyViewModel.WeeklyHrs = weeklyHrsList; return(View(weeklyViewModel)); } else { ErrorViewModel EVM = new ErrorViewModel(); return(View(EVM)); } }