diff --git a/ResoursesManager/ResoursesManager/Controllers/StatisticsController.cs b/ResoursesManager/ResoursesManager/Controllers/StatisticsController.cs index 96c8aa0..15b7ae8 100644 --- a/ResoursesManager/ResoursesManager/Controllers/StatisticsController.cs +++ b/ResoursesManager/ResoursesManager/Controllers/StatisticsController.cs @@ -39,20 +39,61 @@ namespace ResoursesManager.Controllers { Log = db.Statistic.ToList() }; - model.ByType = db.Statistic.Where(k => k.StatisticType == byTypeType /*&& k.DateTime > DateTime.Today.AddDays(-30.0)*/).GroupBy(l => DbFunctions.TruncateTime(l.DateTime)).ToDictionary(j => (DateTime)j.Key, j => j.Count()); - model.ByResource = db.Statistic.Where(k => k.ResourceId == byResourceId /*&& k.DateTime > DateTime.Today.AddDays(-30.0)*/).GroupBy(l => l.ResourceId).ToDictionary(j => j.Key, j => j.Count()); - model.ByTypeCircle = db.Statistic.GroupBy(l => l.StatisticType).ToDictionary(j => j.Key, j => j.Count()); + var today = DateTime.Today.AddDays(-30.0); + model.ByType = db.Statistic.Where(k => k.StatisticType == byTypeType && k.DateTime > today).GroupBy(l => DbFunctions.TruncateTime(l.DateTime)).Select(j => new ByType() { Name = (DateTime)j.Key, Value = j.Count() }).ToList(); + model.ByResource = db.Statistic.Where(k => k.ResourceId == byResourceId & k.DateTime > today).GroupBy(l => DbFunctions.TruncateTime(l.DateTime)).Select(j => new ByResource() { Name = (DateTime)j.Key, Value = j.Count() }).ToList(); + model.ByTypeCircle = db.Statistic.GroupBy(l => l.StatisticType).Select(j => new ByTypeCircle() { Name = ((StatisticType)j.Key).ToString(), Value = j.Count() }).ToList(); var subscibedUser = db.Resources.FirstOrDefault(k => k.Id == subscribeId).Users.Count; var allUsers = db.Users.Count(); - model.Subscribe = new Dictionary(); - model.Subscribe.Add("Subscribed user", subscibedUser); - model.Subscribe.Add("Unsubscibed user", allUsers - subscibedUser); + model.Subscribe = new List(); + model.Subscribe.Add(new Subscribe() { Name = "Subscribed user", Value = subscibedUser }); + model.Subscribe.Add(new Subscribe() { Name = "Unsubscibed user", Value = allUsers - subscibedUser }); return View(model); } + private string getResourceName(int id) + { + return db.Resources.FirstOrDefault(k => k.Id == id).Name; + } + + private string getStatisticTypeName(StatisticType type) + { + switch (type) + { + case StatisticType.ResourceCreate: + return "Create resource"; + case StatisticType.ResourceModified: + return "Modify resource"; + case StatisticType.ResourceDelete: + return "Delete resource"; + case StatisticType.Reserv: + return "Reservation"; + case StatisticType.ReservartionModified: + return "Reservation modify"; + case StatisticType.ReservationDelete: + return "Reservation delete"; + case StatisticType.Subscribe: + return "Subscribe"; + case StatisticType.Unsubscirbe: + return "Unsubscirbe"; + case StatisticType.SubscribeAll: + return "Subscribe all resource"; + case StatisticType.UnsubscirbeAll: + return "Unsubscribe all resource"; + case StatisticType.Register: + return "New registration"; + case StatisticType.Login: + return "Log in"; + case StatisticType.Logout: + return "Log out"; + default: + return null; + } + } + protected override void Dispose(bool disposing) { if (disposing) diff --git a/ResoursesManager/ResoursesManager/ViewModels/StatisticViewModel.cs b/ResoursesManager/ResoursesManager/ViewModels/StatisticViewModel.cs index 93cdf89..c4fb1f3 100644 --- a/ResoursesManager/ResoursesManager/ViewModels/StatisticViewModel.cs +++ b/ResoursesManager/ResoursesManager/ViewModels/StatisticViewModel.cs @@ -12,10 +12,30 @@ namespace ResoursesManager.ViewModels } public class StatisticViewModel { - public Dictionary ByType { get; set; } - public Dictionary ByResource{ get; set; } - public Dictionary ByTypeCircle { get; set; } - public Dictionary Subscribe { get; set; } + public List ByType { get; set; } + public List ByResource { get; set; } + public List ByTypeCircle { get; set; } + public List Subscribe { get; set; } public List Log { get; set; } } + public class ByType + { + public DateTime Name { get; set; } + public int Value { get; set; } + } + public class ByResource + { + public DateTime Name { get; set; } + public int Value { get; set; } + } + public class ByTypeCircle + { + public string Name { get; set; } + public int Value { get; set; } + } + public class Subscribe + { + public string Name { get; set; } + public int Value { get; set; } + } } \ No newline at end of file diff --git a/ResoursesManager/ResoursesManager/Views/Statistics/Index.cshtml b/ResoursesManager/ResoursesManager/Views/Statistics/Index.cshtml index 0ad1015..48ea007 100644 --- a/ResoursesManager/ResoursesManager/Views/Statistics/Index.cshtml +++ b/ResoursesManager/ResoursesManager/Views/Statistics/Index.cshtml @@ -22,101 +22,106 @@