Beispiel #1
0
        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"));
        }
Beispiel #2
0
        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"));
        }