public ActionResult StatusLogger() { if (AnsattHelper.IsUserRaadmann(GetUsername())) { StatHelper.Init(); var data = StatHelper.GetData(); //var sykefraværData = data.Where(l => l.Type == Mappetype.Sykefravær); var ansattforholdData = data.Where(l => l.Type == Mappetype.Ansattforhold); var currentDayList = StatHelper.GetUploadsToday(); ViewBag.CurrentDayCount = currentDayList.Count(); ViewBag.SykefraværCount = currentDayList.Where(l => l.Type == Mappetype.Sykefravær).Count(); ViewBag.AnsattforholdCount = currentDayList.Where(l => l.Type == Mappetype.Ansattforhold).Count(); var varselDataResult = StatHelper.GetVarselLogg(); var uploadDataResult = StatHelper.GetOppfølginger(); if (varselDataResult.Success && uploadDataResult.Success) { var varselData = varselDataResult.Get(); var uploadData = uploadDataResult.Get(); ViewBag.Dag5Count = varselData.Where(v => v.Name.Equals(StringConstants.Varsel.GetVarsel(5))).Count(); ViewBag.Dag14Count = varselData.Where(v => v.Name.Equals(StringConstants.Varsel.GetVarsel(14))).Count(); ViewBag.Dag28Count = varselData.Where(v => v.Name.Equals(StringConstants.Varsel.GetVarsel(28))).Count(); ViewBag.DateMod = varselDataResult.Message; ViewBag.TodayCount = varselData.Where(v => v.Date.Equals(DateTime.Now.ToString("dd.MM.yyy"))).Count(); // tell opp sendte varsler pr. dag for å tegne graf var currentDate = DateTime.Now; var jsVarselArray = "["; // lag en array som javascript can bruke var jsUploadArray = "["; for (int i = 0; i < 28; i++) { jsVarselArray += varselData.Where(v => v.Date.Equals(currentDate.AddDays(-i).ToString("dd.MM.yyy"))).Count() + ", "; jsUploadArray += uploadData.Where(l => l.Date.Equals(currentDate.AddDays(-i).ToString("dd.MM.yyy"))).Count() + ", "; } var ledere = varselData.GroupBy(v => v.User).Select(grp => grp.ToList()).ToList(); // tell opp antall utførte/aktive varsler pr nærmeste leder var lederVarsler = new List <VarselLeder>(); foreach (var grpLeder in ledere) { var currentLederList = varselData.Where(v => v.User.Equals(grpLeder.First().User)); var d5 = currentLederList.Where(v => v.Name.Equals(StringConstants.Varsel.GetVarsel(5))); var d14 = currentLederList.Where(v => v.Name.Equals(StringConstants.Varsel.GetVarsel(14))); var d28 = currentLederList.Where(v => v.Name.Equals(StringConstants.Varsel.GetVarsel(28))); var utførtD5 = d5.Where(v => v.Status.Equals("Utført")); var utførtD14 = d14.Where(v => v.Status.Equals("Utført")); var utførtD28 = d28.Where(v => v.Status.Equals("Utført")); var vl = new VarselLeder(grpLeder.First().User, $"{utførtD5.Count()}/{d5.Count()}", $"{utførtD14.Count()}/{d14.Count()}", $"{utførtD28.Count()}/{d28.Count()}"); // regn ut % utført av alle varsler double su = utførtD5.Count() + utførtD14.Count() + utførtD28.Count(); double st = d5.Count() + d14.Count() + d28.Count(); if (st > 0) { var pc = su / st; vl.PS = Math.Round(pc * 100); } lederVarsler.Add(vl); } jsVarselArray += "]"; jsUploadArray += "]"; ViewBag.VarselArray = jsVarselArray; ViewBag.UploadArray = jsUploadArray; ViewBag.LederVarsler = lederVarsler; } else if (!varselDataResult.Success) { ViewBag.msgVarselFeil = varselDataResult.Message; } else { ViewBag.msgVarselFeil = uploadDataResult.Message; } ViewBag.HelpLink = HelpLinks.StatusLogger; return(View()); } else { return(new HttpUnauthorizedResult()); } }