diff --git a/ResoursesManager/ResoursesManager/Controllers/StatisticsController.cs b/ResoursesManager/ResoursesManager/Controllers/StatisticsController.cs index 15b7ae8..76a83d5 100644 --- a/ResoursesManager/ResoursesManager/Controllers/StatisticsController.cs +++ b/ResoursesManager/ResoursesManager/Controllers/StatisticsController.cs @@ -17,40 +17,28 @@ namespace ResoursesManager.Controllers private ApplicationDbContext db = new ApplicationDbContext(); // GET: Statistics - public ActionResult Index(StatisticType? byTypeType, int? byResourceId, SubscribeType? subscribeType, int? subscribeId) + public ActionResult Index(StatisticType? statTypeId, int? resId) { - if (byTypeType == null) + if (statTypeId == null) { - byTypeType = StatisticType.Reserv; + statTypeId = Models.StatisticType.Reserv; } - if (byResourceId == null) + if (resId == null) { - byResourceId = db.Resources.FirstOrDefault().Id; + resId = db.Resources.FirstOrDefault().Id; } - if (subscribeType == null) - { - subscribeType = SubscribeType.ByUser; - } - if (subscribeId == null) - { - subscribeId = db.Resources.FirstOrDefault().Id; - } - var model = new StatisticViewModel() - { - Log = db.Statistic.ToList() - }; + var model = new StatisticViewModel(); 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.ByType = db.Statistic.Where(k => k.StatisticType == statTypeId && 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 == resId & 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(); + var subscibedUser = db.Resources.Select(k => k.Users.Count()).Sum(); + var allUsers = db.Users.Count() * db.Resources.Count(); 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 }); - - - + model.Resources = new SelectList(db.Resources, "Id", "Name", resId); + model.StatisticType = new SelectList(Enum.GetValues(typeof(StatisticType)).Cast(), (int)statTypeId); return View(model); } diff --git a/ResoursesManager/ResoursesManager/Models/StatisticModel.cs b/ResoursesManager/ResoursesManager/Models/StatisticModel.cs index 3d311f3..13a9002 100644 --- a/ResoursesManager/ResoursesManager/Models/StatisticModel.cs +++ b/ResoursesManager/ResoursesManager/Models/StatisticModel.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using System.Web; @@ -7,7 +8,30 @@ namespace ResoursesManager.Models { public enum StatisticType { - ResourceCreate, ResourceModified, ResourceDelete, Reserv, ReservartionModified, ReservationDelete, Subscribe, Unsubscirbe, SubscribeAll, UnsubscirbeAll, Register, Login, Logout + [Description("Resource create")] + ResourceCreate, + [Description("Resource modifie")] + ResourceModified, + [Description("Resource delete")] + ResourceDelete, + [Description("Reservation")] + Reserv, + [Description("Reservation modifie")] + ReservartionModified, + [Description("Reservation delete")] + ReservationDelete, + Subscribe, + Unsubscirbe, + [Description("Subscribe to all resource")] + SubscribeAll, + [Description("Unsubscribe from all resource")] + UnsubscirbeAll, + [Description("New registration")] + Register, + [Description("Log in")] + Login, + [Description("Log out")] + Logout } public class StatisticModel { diff --git a/ResoursesManager/ResoursesManager/ViewModels/StatisticViewModel.cs b/ResoursesManager/ResoursesManager/ViewModels/StatisticViewModel.cs index c4fb1f3..c986534 100644 --- a/ResoursesManager/ResoursesManager/ViewModels/StatisticViewModel.cs +++ b/ResoursesManager/ResoursesManager/ViewModels/StatisticViewModel.cs @@ -3,20 +3,18 @@ using System; using System.Collections.Generic; using System.Linq; using System.Web; +using System.Web.Mvc; namespace ResoursesManager.ViewModels { - public enum SubscribeType - { - ByUser, ByResource - } public class StatisticViewModel { 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 SelectList Resources { get; set; } + public SelectList StatisticType { get; set; } } public class ByType { diff --git a/ResoursesManager/ResoursesManager/Views/Statistics/Index.cshtml b/ResoursesManager/ResoursesManager/Views/Statistics/Index.cshtml index 48ea007..68e82cd 100644 --- a/ResoursesManager/ResoursesManager/Views/Statistics/Index.cshtml +++ b/ResoursesManager/ResoursesManager/Views/Statistics/Index.cshtml @@ -20,6 +20,8 @@ + +@Scripts.Render("~/bundles/jquery") - - -

Statisztika

- -

Műveletek száma

-
-

Tevékenységek száma

-
-

Tevékenységek aránya

-
-

Felíratkozások aránya

-
+ -

Napló

- - - - - - - - +@using (Html.BeginForm(null, null, FormMethod.Get, new { enctype = "multipart/form-data", id="form" })) +{ + @Html.AntiForgeryToken() +

Műveletek száma

+ @Html.DropDownList("statTypeId", Model.StatisticType) +
+

Tevékenységek száma

+ @Html.DropDownList("resId", Model.Resources) +
+

Tevékenységek aránya

+
+

Felíratkozások aránya

+
- @foreach (var item in Model.Log) - { - - - - - - - - } -
- @Html.DisplayName("UserId") - - @Html.DisplayName("ResourceId") - - @Html.DisplayName("ReservationId") - - @Html.DisplayName("StatisticType") - - @Html.DisplayName("DateTime") -
- @Html.DisplayFor(modelItem => item.UserId) - - @Html.DisplayFor(modelItem => item.ResourceId) - - @Html.DisplayFor(modelItem => item.ReservationId) - - @Html.DisplayFor(modelItem => item.StatisticType) - - @Html.DisplayFor(modelItem => item.DateTime) -
-

json

-@Newtonsoft.Json.JsonConvert.SerializeObject(Model.ByType) -

-

-@Newtonsoft.Json.JsonConvert.SerializeObject(Model.ByResource) -

-

-@Newtonsoft.Json.JsonConvert.SerializeObject(Model.ByTypeCircle) -

-

-@Newtonsoft.Json.JsonConvert.SerializeObject(Model.Subscribe) +} + \ No newline at end of file