public ActionResult UserWiseSummary(string FromDate, string ToDate, string tanStates, bool fromUpdatedDate, bool fromCompletedDate) { List <UserWiseReports> userwiseReports = new List <UserWiseReports>(); //var dateStrings = dates.Split(','); var dateList = new List <DateTime>(); DateTime dtFromDate = DateTime.ParseExact(FromDate.Trim(), "MM/dd/yyyy", CultureInfo.InvariantCulture); DateTime dtToDate = DateTime.ParseExact(ToDate.Trim(), "MM/dd/yyyy", CultureInfo.InvariantCulture); var range = dtFromDate.DateRange(dtToDate); dateList = range.ToList(); List <string> TanStates = new List <string>(); if (!string.IsNullOrEmpty(tanStates)) { TanStates = tanStates.Split(',').ToList(); } var Report = db.DateWiseRXNCount.Include(t => t.Tan) .Where(t => tanStates.ToUpper().Contains("ALL") ? true : TanStates.Contains(t.Tan.TanState.ToString())) .GroupBy(t => DbFunctions.TruncateTime(t.UpdatedDate)) .ToDictionary(t => t.Key, t => t.GroupBy(k => k.UserId).ToDictionary(k => k.Key, k => k.ToList())); //foreach (var d in dateStrings) // dateList.Add(DateTime.ParseExact(d.Trim(), "dd-MM-yyyy", CultureInfo.InvariantCulture)); var users = db.Users.Include(user => user.ApplicationRoles); foreach (var user in users) { UserWiseReports uwr = new UserWiseReports(); foreach (var date in dateList) { if (Report.ContainsKey(date) && Report[date].ContainsKey(user.Id)) { uwr.UserName = user.UserName; uwr.CuratedReactionsCount += Report[date][user.Id].Where(r => r.Role == Role.Curator).Sum(r => r.RxnCount); uwr.ReviewedReactionsCount += Report[date][user.Id].Where(r => r.Role == Role.Reviewer).Sum(r => r.RxnCount); } } if (!string.IsNullOrEmpty(uwr.UserName)) { userwiseReports.Add(uwr); } } ViewBag.UserWiseReports = userwiseReports.OrderByDescending(ur => ur.CuratedReactionsCount).ToList(); return(PartialView("~/Views/Report/_userWiseReports.cshtml")); }
public ActionResult UserWiseSummary1(string FromDate, string ToDate, string tanStates, bool fromUpdatedDate, bool fromCompletedDate) { List <UserWiseReports> userwiseReports = new List <UserWiseReports>(); //var dateStrings = dates.Split(','); var dateList = new List <DateTime>(); DateTime dtFromDate = DateTime.ParseExact(FromDate.Trim(), "MM/dd/yyyy", CultureInfo.InvariantCulture); DateTime dtToDate = DateTime.ParseExact(ToDate.Trim(), "MM/dd/yyyy", CultureInfo.InvariantCulture); var range = dtFromDate.DateRange(dtToDate); dateList = range.ToList(); List <string> TanStates = new List <string>(); if (!string.IsNullOrEmpty(tanStates)) { TanStates = tanStates.Split(',').ToList(); } //foreach (var d in dateStrings) // dateList.Add(DateTime.ParseExact(d.Trim(), "dd-MM-yyyy", CultureInfo.InvariantCulture)); var users = db.Users.Include(user => user.ApplicationRoles); var CuratorsData = TanService.UserWiseTanNumbers(Role.Curator, TanStates); var ReviewersData = TanService.UserWiseTanNumbers(Role.Reviewer, TanStates); var QCsData = TanService.UserWiseTanNumbers(Role.QC, TanStates); foreach (var user in users) { var curationdata = CuratorsData.ContainsKey(user.Id) ? TanService.ReactionsCountDateWisewithStages(TanService.GetTanNumbers(1, user.Id, true), 1, fromUpdatedDate, fromCompletedDate) : new Dictionary <DateTime, ReactionsCount>(); var Reviewdata = ReviewersData.ContainsKey(user.Id) ? TanService.ReactionsCountDateWisewithStages(TanService.GetTanNumbers(2, user.Id, true), 2, fromUpdatedDate, fromCompletedDate) : new Dictionary <DateTime, ReactionsCount>(); var Qcdata = QCsData.ContainsKey(user.Id) ? TanService.ReactionsCountDateWisewithStages(TanService.GetTanNumbers(3, user.Id, true), 3, fromUpdatedDate, fromCompletedDate) : new Dictionary <DateTime, ReactionsCount>(); UserWiseReports uwr = new UserWiseReports(); foreach (var date in dateList) { if (curationdata != null && curationdata.ContainsKey(date)) { uwr.UserName = user.UserName; uwr.CuratedReactionsCount += curationdata[date].TotalReactionsCount; uwr.CuratedAnalogousReactionsCount += curationdata[date].AnalogousReactionsCount; uwr.CuratedStagesCount = curationdata[date].StagesCount; } if (Reviewdata != null && Reviewdata.ContainsKey(date)) { uwr.UserName = user.UserName; uwr.ReviewedReactionsCount += Reviewdata[date].TotalReactionsCount; uwr.ReviewedAnalogousReactionsCount += Reviewdata[date].AnalogousReactionsCount; uwr.ReviewedStagesCount += Reviewdata[date].StagesCount; } if (Qcdata != null && Qcdata.ContainsKey(date)) { uwr.UserName = user.UserName; uwr.QcReactionsCount += Qcdata[date].TotalReactionsCount; uwr.QcAnalogousReactionsCount += Qcdata[date].AnalogousReactionsCount; uwr.QcStagesCount += Qcdata[date].StagesCount; } } if (!string.IsNullOrEmpty(uwr.UserName)) { userwiseReports.Add(uwr); } } ViewBag.UserWiseReports = userwiseReports.OrderByDescending(ur => ur.CuratedReactionsCount).ToList(); return(PartialView("~/Views/Report/_userWiseReports.cshtml")); }