work on tests
This commit is contained in:
parent
7910e3687c
commit
a9264e99a5
@ -15,10 +15,15 @@ namespace ResourcesManager.Controllers.Tests
|
||||
[TestClass()]
|
||||
public class NotificationsControllerTests
|
||||
{
|
||||
List<Notification> expectedNotifications;
|
||||
Mock<INotificationRepository> mockNotifRepo;
|
||||
public List<Notification> expectedNotifications;
|
||||
public Mock<INotificationRepository> mockNotifRepo;
|
||||
NotificationsController notifController;
|
||||
|
||||
public NotificationsControllerTests()
|
||||
{
|
||||
InitializeTestData();
|
||||
}
|
||||
|
||||
[TestInitialize]
|
||||
public void InitializeTestData()
|
||||
{
|
||||
@ -28,6 +33,7 @@ namespace ResourcesManager.Controllers.Tests
|
||||
new Notification() { Id=3, Title = "Cím", Description = "text text" }
|
||||
};
|
||||
mockNotifRepo = new Mock<INotificationRepository>() { CallBase = true };
|
||||
notifController = new NotificationsController(mockNotifRepo.Object);
|
||||
|
||||
mockNotifRepo.Setup(m => m.GetNotifications()).Returns(expectedNotifications);
|
||||
|
||||
@ -75,23 +81,24 @@ namespace ResourcesManager.Controllers.Tests
|
||||
public void Notification_Unread_Test()
|
||||
{
|
||||
var result = notifController.GetUnread();
|
||||
Assert.IsNotNull((result as ViewResult).Model);
|
||||
Assert.IsNotNull((result as JsonResult).Data);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Notification_Readed_Test()
|
||||
{
|
||||
var result = notifController.Readed(1);
|
||||
|
||||
Assert.Fail();
|
||||
notifController.Readed(1);
|
||||
var result = expectedNotifications.FirstOrDefault(n => n.Id == 1);
|
||||
Assert.AreEqual(result.Readed, true);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Notification_MakeReadAll_Test()
|
||||
{
|
||||
var result = notifController.MakeReadAll();
|
||||
notifController.MakeReadAll();
|
||||
var result = expectedNotifications.All(n => n.Readed == true);
|
||||
|
||||
Assert.Fail();
|
||||
Assert.IsTrue(result);
|
||||
}
|
||||
|
||||
[TestCleanup]
|
||||
|
@ -3,6 +3,7 @@ using Moq;
|
||||
using ResourcesManager.Controllers;
|
||||
using ResourcesManager.Interfaces;
|
||||
using ResourcesManager.Models;
|
||||
using ResourcesManagerTests.RepositoryTests;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@ -16,25 +17,62 @@ namespace ResourcesManager.Controllers.Tests
|
||||
public class ReservationsControllerTests
|
||||
{
|
||||
List<Reservation> expectedReservs;
|
||||
Mock<IReservationRepository> mockReservRepo;
|
||||
Mock<IUserRepository> mockUserRepo;
|
||||
Mock<IResourceRepository> mockResourceRepo;
|
||||
Mock<IStatisticRepository> mockStatRepo;
|
||||
public Mock<IReservationRepository> mockReservRepo;
|
||||
ReservationsController reservController;
|
||||
UserRepositoryTests userRepoTest;
|
||||
ResourcesControllerTests resourceContTest;
|
||||
StatisticsControllerTests statContTest;
|
||||
public ReservationsControllerTests()
|
||||
{
|
||||
InitializeTestData();
|
||||
}
|
||||
|
||||
[TestInitialize]
|
||||
public void InitializeTestData()
|
||||
{
|
||||
expectedReservs = new List<Reservation> {
|
||||
new Reservation() { Id=1, Begining = DateTime.Now, End = DateTime.Now.AddHours(1)},
|
||||
new Reservation() { Id=2, Begining = DateTime.Now, End = DateTime.Now.AddHours(1) },
|
||||
new Reservation() { Id=3, Begining = DateTime.Now, End = DateTime.Now.AddHours(1) }
|
||||
new Reservation() {
|
||||
Id =1,
|
||||
Begining = DateTime.Now.AddHours(-3),
|
||||
End = DateTime.Now.AddHours(-2),
|
||||
Resource = new Resource(){
|
||||
Users = new List<ApplicationUser>(){
|
||||
new ApplicationUser(),
|
||||
new ApplicationUser()
|
||||
}
|
||||
}
|
||||
},
|
||||
new Reservation() {
|
||||
Id =2,
|
||||
Begining = DateTime.Now.AddHours(1),
|
||||
End = DateTime.Now.AddHours(2),
|
||||
Resource = new Resource(){
|
||||
Users = new List<ApplicationUser>(){
|
||||
new ApplicationUser(),
|
||||
new ApplicationUser()
|
||||
}
|
||||
}
|
||||
},
|
||||
new Reservation() {
|
||||
Id =3,
|
||||
Begining = DateTime.Now.AddHours(3),
|
||||
End = DateTime.Now.AddHours(4),
|
||||
Resource = new Resource(){
|
||||
Users = new List<ApplicationUser>(){
|
||||
new ApplicationUser(),
|
||||
new ApplicationUser()
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
mockReservRepo = new Mock<IReservationRepository>() { CallBase = true };
|
||||
mockUserRepo = new Mock<IUserRepository>() { CallBase = true };
|
||||
mockResourceRepo = new Mock<IResourceRepository>() { CallBase = true };
|
||||
mockStatRepo = new Mock<IStatisticRepository>() { CallBase = true };
|
||||
reservController = new ReservationsController(mockReservRepo.Object, mockUserRepo.Object, mockResourceRepo.Object, mockStatRepo.Object);
|
||||
resourceContTest = new ResourcesControllerTests();
|
||||
userRepoTest = new UserRepositoryTests();
|
||||
statContTest = new StatisticsControllerTests();
|
||||
reservController = new ReservationsController(mockReservRepo.Object,
|
||||
userRepoTest.mockUserRepo.Object,
|
||||
resourceContTest.mockResourceRepo.Object,
|
||||
statContTest.mockStatRepo.Object);
|
||||
|
||||
mockReservRepo.Setup(m => m.GetReservations()).Returns(expectedReservs);
|
||||
|
||||
@ -107,24 +145,24 @@ namespace ResourcesManager.Controllers.Tests
|
||||
[TestMethod()]
|
||||
public void Reservation_Post_Create_Ok_Test()
|
||||
{
|
||||
var beforeCount = ((reservController.Index() as ViewResult).Model as IEnumerable<Reservation>).Count();
|
||||
var beforeCount = ((reservController.Index() as ViewResult).Model as ReservationViewModel).Reservations?.Count();
|
||||
Assert.AreEqual(3, beforeCount);
|
||||
|
||||
reservController.Create(new Reservation() { Id = 4, Begining = DateTime.Now, End = DateTime.Now.AddHours(1) });
|
||||
reservController.Create(new Reservation() { Id = 4, Begining = DateTime.Now.AddHours(2), End = DateTime.Now.AddHours(3), ResourceId = 1 });
|
||||
|
||||
var afterCount = ((reservController.Index() as ViewResult).Model as IEnumerable<Reservation>).Count();
|
||||
var afterCount = ((reservController.Index() as ViewResult).Model as ReservationViewModel).Reservations?.Count();
|
||||
Assert.AreEqual(4, afterCount);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Reservation_Post_Create_Fail_Test()
|
||||
{
|
||||
var beforeCount = ((reservController.Index() as ViewResult).Model as IEnumerable<Reservation>).Count();
|
||||
var beforeCount = ((reservController.Index() as ViewResult).Model as ReservationViewModel).Reservations?.Count();
|
||||
Assert.AreEqual(3, beforeCount);
|
||||
|
||||
reservController.Create(new Reservation() { Id = 4, Begining = DateTime.Now });
|
||||
|
||||
var afterCount = ((reservController.Index() as ViewResult).Model as IEnumerable<Reservation>).Count();
|
||||
var afterCount = ((reservController.Index() as ViewResult).Model as ReservationViewModel).Reservations?.Count();
|
||||
Assert.AreEqual(3, afterCount);
|
||||
}
|
||||
|
||||
@ -139,8 +177,8 @@ namespace ResourcesManager.Controllers.Tests
|
||||
public void Reservation_Post_Edit_Ok_Test()
|
||||
{
|
||||
var beforeBegin = DateTime.Now.AddDays(2);
|
||||
reservController.Edit(new Reservation() { Id = 3, Begining = DateTime.Now, End = DateTime.Now.AddHours(1) });
|
||||
object afterBegin = ((reservController.Details(3) as ViewResult).Model as Reservation).Begining;
|
||||
reservController.Edit(new Reservation() { Id = 3, Begining = beforeBegin, End = DateTime.Now.AddDays(2).AddHours(4), ResourceId = 1 });
|
||||
var afterBegin = ((reservController.Details(3) as ViewResult).Model as Reservation).Begining;
|
||||
Assert.AreEqual(beforeBegin, afterBegin);
|
||||
}
|
||||
|
||||
@ -148,9 +186,9 @@ namespace ResourcesManager.Controllers.Tests
|
||||
public void Reservation_Post_Edit_Fail_Test()
|
||||
{
|
||||
var beforeBegin = DateTime.Now.AddDays(2);
|
||||
reservController.Edit(new Reservation() { Id = 3, Begining = DateTime.Now });
|
||||
object afterBegin = ((reservController.Details(3) as ViewResult).Model as Reservation).Begining;
|
||||
Assert.AreEqual(beforeBegin, afterBegin);
|
||||
reservController.Edit(new Reservation() { Id = 3, Begining = beforeBegin, ResourceId = 1 });
|
||||
var afterBegin = ((reservController.Details(3) as ViewResult).Model as Reservation).Begining;
|
||||
Assert.AreNotEqual(beforeBegin, afterBegin);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
@ -163,24 +201,24 @@ namespace ResourcesManager.Controllers.Tests
|
||||
[TestMethod()]
|
||||
public void Reservation_Post_Delete_Ok_Test()
|
||||
{
|
||||
var beforeCount = ((reservController.Index() as ViewResult).Model as IEnumerable<Reservation>).Count();
|
||||
var beforeCount = ((reservController.Index() as ViewResult).Model as ReservationViewModel).Reservations?.Count();
|
||||
Assert.AreEqual(3, beforeCount);
|
||||
|
||||
reservController.DeleteConfirmed(1);
|
||||
|
||||
var afterCount = ((reservController.Index() as ViewResult).Model as IEnumerable<Reservation>).Count();
|
||||
var afterCount = ((reservController.Index() as ViewResult).Model as ReservationViewModel).Reservations?.Count();
|
||||
Assert.AreEqual(2, afterCount);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Reservation_Post_Delete_Fail_Test()
|
||||
{
|
||||
var beforeCount = ((reservController.Index() as ViewResult).Model as IEnumerable<Reservation>).Count();
|
||||
var beforeCount = ((reservController.Index() as ViewResult).Model as ReservationViewModel).Reservations?.Count();
|
||||
Assert.AreEqual(3, beforeCount);
|
||||
|
||||
reservController.DeleteConfirmed(8);
|
||||
|
||||
var afterCount = ((reservController.Index() as ViewResult).Model as IEnumerable<Reservation>).Count();
|
||||
var afterCount = ((reservController.Index() as ViewResult).Model as ReservationViewModel).Reservations?.Count();
|
||||
Assert.AreEqual(3, afterCount);
|
||||
}
|
||||
|
||||
@ -189,7 +227,9 @@ namespace ResourcesManager.Controllers.Tests
|
||||
{
|
||||
expectedReservs = null;
|
||||
mockReservRepo = null;
|
||||
mockUserRepo = null;
|
||||
statContTest.Statistic_CleanUpTestData();
|
||||
resourceContTest.Resources_CleanUpTestData();
|
||||
userRepoTest.User_CleanUpTestData();
|
||||
}
|
||||
}
|
||||
}
|
@ -3,6 +3,7 @@ using Moq;
|
||||
using ResourcesManager.Controllers;
|
||||
using ResourcesManager.Interfaces;
|
||||
using ResourcesManager.Models;
|
||||
using ResourcesManagerTests.RepositoryTests;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Entity;
|
||||
@ -17,10 +18,15 @@ namespace ResourcesManager.Controllers.Tests
|
||||
[TestClass()]
|
||||
public class ResourcesControllerTests
|
||||
{
|
||||
List<Resource> expectedResources;
|
||||
Mock<IResourceRepository> mockResourceRepo;
|
||||
Mock<IUserRepository> mockUserRepo;
|
||||
public List<Resource> expectedResources;
|
||||
public Mock<IResourceRepository> mockResourceRepo;
|
||||
ResourcesController resourcesController;
|
||||
UserRepositoryTests userRepoTest;
|
||||
|
||||
public ResourcesControllerTests()
|
||||
{
|
||||
InitializeTestData();
|
||||
}
|
||||
|
||||
[TestInitialize]
|
||||
public void InitializeTestData()
|
||||
@ -31,8 +37,9 @@ namespace ResourcesManager.Controllers.Tests
|
||||
new Resource() { Id=3, Name = "Kati", AssetTag = "u547547", IsShared = false }
|
||||
};
|
||||
mockResourceRepo = new Mock<IResourceRepository>() { CallBase = true };
|
||||
mockUserRepo = new Mock<IUserRepository>() { CallBase = true };
|
||||
resourcesController = new ResourcesController(mockResourceRepo.Object, mockUserRepo.Object);
|
||||
userRepoTest = new UserRepositoryTests();
|
||||
|
||||
resourcesController = new ResourcesController(mockResourceRepo.Object, userRepoTest.mockUserRepo.Object);
|
||||
|
||||
mockResourceRepo.Setup(m => m.GetResouces()).Returns(expectedResources);
|
||||
|
||||
@ -192,7 +199,7 @@ namespace ResourcesManager.Controllers.Tests
|
||||
{
|
||||
expectedResources = null;
|
||||
mockResourceRepo = null;
|
||||
mockUserRepo = null;
|
||||
userRepoTest.User_CleanUpTestData();
|
||||
}
|
||||
}
|
||||
}
|
@ -3,6 +3,7 @@ using Moq;
|
||||
using ResourcesManager.Controllers;
|
||||
using ResourcesManager.Interfaces;
|
||||
using ResourcesManager.Models;
|
||||
using ResourcesManagerTests.RepositoryTests;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@ -16,8 +17,15 @@ namespace ResourcesManager.Controllers.Tests
|
||||
public class StatisticsControllerTests
|
||||
{
|
||||
List<StatisticModel> expectedStat;
|
||||
Mock<IStatisticRepository> mockStatRepo;
|
||||
public Mock<IStatisticRepository> mockStatRepo;
|
||||
StatisticsController statController;
|
||||
ResourcesControllerTests resourcesContTest;
|
||||
UserRepositoryTests userRepoTest;
|
||||
|
||||
public StatisticsControllerTests()
|
||||
{
|
||||
InitializeStatisticTestData();
|
||||
}
|
||||
|
||||
[TestInitialize]
|
||||
public void InitializeStatisticTestData()
|
||||
@ -28,7 +36,9 @@ namespace ResourcesManager.Controllers.Tests
|
||||
new StatisticModel(){ Id= 3, ResourceId = 3, ReservationId = 3, StatisticType = StatisticType.ResourceCreate, DateTime = DateTime.Now, UserId = Guid.NewGuid().ToString()},
|
||||
};
|
||||
mockStatRepo = new Mock<IStatisticRepository>() { CallBase = true };
|
||||
statController = new StatisticsController(mockStatRepo.Object);
|
||||
resourcesContTest = new ResourcesControllerTests();
|
||||
userRepoTest = new UserRepositoryTests();
|
||||
statController = new StatisticsController(mockStatRepo.Object, resourcesContTest.mockResourceRepo.Object, userRepoTest.mockUserRepo.Object);
|
||||
|
||||
mockStatRepo.Setup(m => m.GetStatistics()).Returns(expectedStat);
|
||||
|
||||
@ -50,12 +60,14 @@ namespace ResourcesManager.Controllers.Tests
|
||||
var result = statController.Index(StatisticType.Login, 1);
|
||||
Assert.IsNotNull((result as ViewResult).Model);
|
||||
}
|
||||
//todo: még
|
||||
|
||||
[TestCleanup]
|
||||
public void CleanUpTestData()
|
||||
public void Statistic_CleanUpTestData()
|
||||
{
|
||||
expectedStat = null;
|
||||
mockStatRepo = null;
|
||||
resourcesContTest.Resources_CleanUpTestData();
|
||||
userRepoTest.User_CleanUpTestData();
|
||||
}
|
||||
}
|
||||
}
|
@ -3,6 +3,7 @@ using Moq;
|
||||
using ResourcesManager.Controllers;
|
||||
using ResourcesManager.Interfaces;
|
||||
using ResourcesManager.Models;
|
||||
using ResourcesManagerTests.RepositoryTests;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@ -15,18 +16,22 @@ namespace ResourcesManager.Controllers.Tests
|
||||
[TestClass()]
|
||||
public class SubscribeControllerTests
|
||||
{
|
||||
Mock<IResourceRepository> mockResourceRepo;
|
||||
Mock<IUserRepository> mockUserRepo;
|
||||
Mock<IStatisticRepository> mockStatRepo;
|
||||
SubscribeController subController;
|
||||
ResourcesControllerTests resoucesContTest;
|
||||
UserRepositoryTests userRepoTest;
|
||||
StatisticsControllerTests statContTest;
|
||||
public SubscribeControllerTests()
|
||||
{
|
||||
InitializeTestData();
|
||||
}
|
||||
|
||||
[TestInitialize]
|
||||
public void InitializeTestData()
|
||||
{
|
||||
mockResourceRepo = new Mock<IResourceRepository>() { CallBase = true };
|
||||
mockUserRepo = new Mock<IUserRepository>() { CallBase = true };
|
||||
mockStatRepo = new Mock<IStatisticRepository> { CallBase = true };
|
||||
subController = new SubscribeController(mockResourceRepo.Object, mockUserRepo.Object, mockStatRepo.Object);
|
||||
resoucesContTest = new ResourcesControllerTests();
|
||||
userRepoTest = new UserRepositoryTests();
|
||||
statContTest = new StatisticsControllerTests();
|
||||
subController = new SubscribeController(resoucesContTest.mockResourceRepo.Object, userRepoTest.mockUserRepo.Object, statContTest.mockStatRepo.Object);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
@ -39,38 +44,34 @@ namespace ResourcesManager.Controllers.Tests
|
||||
[TestMethod()]
|
||||
public void Subscribe_Follow_Test()
|
||||
{
|
||||
var result = subController.Follow(1);
|
||||
var list = ((subController.Index() as ViewResult).Model as List<Resource>);
|
||||
Assert.Fail();
|
||||
subController.Follow(1);
|
||||
var result = resoucesContTest.expectedResources.FirstOrDefault(r => r.Id == 1);
|
||||
Assert.IsNotNull(result.Users);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Subscribe_UnFollowAll_Test()
|
||||
{
|
||||
var result = subController.UnFollowAll();
|
||||
Assert.Fail();
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Subscribe_FollowAllSubscribeTest()
|
||||
{
|
||||
var result = subController.UnFollowAll();
|
||||
Assert.Fail();
|
||||
subController.UnFollowAll();
|
||||
var result = resoucesContTest.expectedResources.All(x => x.Users == null || x.Users.Count == 0);
|
||||
Assert.IsTrue(result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Subscribe_Unfollow_Test()
|
||||
{
|
||||
var result = subController.Unfollow(1);
|
||||
Assert.Fail();
|
||||
subController.Unfollow(1);
|
||||
var result = resoucesContTest.expectedResources.FirstOrDefault(r => r.Id == 1);
|
||||
var count = result.Users.Count;
|
||||
Assert.AreEqual(count, 0);
|
||||
}
|
||||
|
||||
[TestCleanup]
|
||||
public void Resources_CleanUpTestData()
|
||||
{
|
||||
mockResourceRepo = null;
|
||||
mockUserRepo = null;
|
||||
mockStatRepo = null;
|
||||
resoucesContTest.Resources_CleanUpTestData();
|
||||
userRepoTest.User_CleanUpTestData();
|
||||
statContTest = null;
|
||||
}
|
||||
}
|
||||
}
|
@ -14,7 +14,12 @@ namespace ResourcesManagerTests.RepositoryTests
|
||||
class UserRepositoryTests
|
||||
{
|
||||
List<ApplicationUser> expectedUsers;
|
||||
Mock<IUserRepository> mockUserRepo;
|
||||
public Mock<IUserRepository> mockUserRepo;
|
||||
|
||||
public UserRepositoryTests()
|
||||
{
|
||||
InitializeTestData();
|
||||
}
|
||||
|
||||
[TestInitialize]
|
||||
public void InitializeTestData()
|
||||
@ -27,50 +32,10 @@ namespace ResourcesManagerTests.RepositoryTests
|
||||
mockUserRepo = new Mock<IUserRepository>() { CallBase = true };
|
||||
|
||||
mockUserRepo.Setup(m => m.GetUsers()).Returns(expectedUsers);
|
||||
|
||||
//mockUserRepo.Setup(m => m.GetUserByID(It.IsAny<string>())).Returns((string id) =>
|
||||
//{
|
||||
// return expectedUsers.FirstOrDefault(x => x.Id == id);
|
||||
//});
|
||||
|
||||
//mockUserRepo.Setup(m => m.(It.IsAny<Resource>())).Returns((Resource resource) =>
|
||||
//{
|
||||
// expectedUsers.Add(resource);
|
||||
// return true;
|
||||
//});
|
||||
|
||||
//mockUserRepo.Setup(m => m.UpdateResouce(It.IsAny<Resource>())).Returns((Resource target) =>
|
||||
//{
|
||||
// var resource = expectedUsers.FirstOrDefault(x => x.Id == target.Id);
|
||||
// if (resource == null)
|
||||
// {
|
||||
// return false;
|
||||
// }
|
||||
// resource.Name = target.Name;
|
||||
// resource.Description = target.Description;
|
||||
// resource.AssetTag = target.AssetTag;
|
||||
// resource.ImagePath = target.ImagePath;
|
||||
// resource.IsShared = target.IsShared;
|
||||
// resource.TimeLimit = target.TimeLimit;
|
||||
// resource.Reservation = target.Reservation;
|
||||
// resource.Users = target.Users;
|
||||
// return true;
|
||||
//});
|
||||
|
||||
//mockUserRepo.Setup(m => m.DeleteResouce(It.IsAny<int>())).Returns((int id) =>
|
||||
//{
|
||||
// var resource = expectedUsers.FirstOrDefault(x => x.Id == id);
|
||||
// if (resource == null)
|
||||
// {
|
||||
// return false;
|
||||
// }
|
||||
// expectedUsers.Remove(resource);
|
||||
// return true;
|
||||
//});
|
||||
}
|
||||
|
||||
[TestCleanup]
|
||||
public void Resources_CleanUpTestData()
|
||||
public void User_CleanUpTestData()
|
||||
{
|
||||
expectedUsers = null;
|
||||
mockUserRepo = null;
|
||||
|
@ -45,37 +45,35 @@ namespace ResourcesManager.Controllers
|
||||
notifRepo.UpdateNotification(notif);
|
||||
if (string.IsNullOrEmpty(link) || link == "null")
|
||||
{
|
||||
return Redirect(Request.UrlReferrer.ToString());
|
||||
return Redirect(Request?.UrlReferrer?.ToString() ?? "/");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error("", ex);
|
||||
}
|
||||
return Redirect(link);
|
||||
return Redirect(link ?? "/");
|
||||
|
||||
}
|
||||
|
||||
public ActionResult GetUnread()
|
||||
{
|
||||
using (ApplicationDbContext db = new ApplicationDbContext())
|
||||
try
|
||||
{
|
||||
try
|
||||
{
|
||||
return Json(notifRepo.GetNotifications().ToList().OrderByDescending(k => k.CreateDate).Where(m => m.Readed == false && (m.User == User.Identity.Name || m.User == null)).ToList(), JsonRequestBehavior.AllowGet);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
logger.Warn("hiba", e);
|
||||
return null;
|
||||
}
|
||||
return Json(notifRepo.GetNotifications().ToList().OrderByDescending(k => k.CreateDate).Where(m => m.Readed == false && (m.User == User?.Identity?.Name || m.User == null)).ToList(), JsonRequestBehavior.AllowGet);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
logger.Warn("hiba", e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public ActionResult MakeReadAll()
|
||||
{
|
||||
try
|
||||
{
|
||||
var list = notifRepo.GetNotifications().Where(k => k.Readed == false && (k.User == User.Identity.Name || k.User == null)).ToList();
|
||||
var list = notifRepo.GetNotifications().Where(k => k.Readed == false && (k.User == User?.Identity?.Name || k.User == null)).ToList();
|
||||
foreach (var item in list)
|
||||
{
|
||||
item.Readed = true;
|
||||
@ -86,7 +84,7 @@ namespace ResourcesManager.Controllers
|
||||
{
|
||||
logger.Error("", ex);
|
||||
}
|
||||
return Redirect(HttpContext.Request.UrlReferrer.ToString());
|
||||
return Redirect(HttpContext?.Request?.UrlReferrer?.ToString() ?? "/");
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
|
@ -193,7 +193,7 @@ namespace ResourcesManager.Controllers
|
||||
try
|
||||
{
|
||||
model.Resource = resourceRepo.GetResourceByID(model.ResourceId);
|
||||
model.User = User.Identity.Name;
|
||||
model.User = User?.Identity?.Name;
|
||||
if (model.Resource.TimeLimit != null)
|
||||
{
|
||||
TimeSpan difference = model.End.Subtract(model.Begining);
|
||||
@ -245,7 +245,7 @@ namespace ResourcesManager.Controllers
|
||||
|
||||
//Értesítés küldés
|
||||
var users = model.Resource.Users.Select(k => k.UserName).ToList();
|
||||
string message = string.Format("{0} lefoglalta {1} erőforrást {2} tól {3}-ig.", User.Identity.Name, model.Resource.Name, model.Begining, model.End);
|
||||
string message = string.Format("{0} lefoglalta {1} erőforrást {2} tól {3}-ig.", User?.Identity?.Name, model.Resource.Name, model.Begining, model.End);
|
||||
string url = "/Reservations/Details/" + model.Id;
|
||||
NotificationHelper.Send(users, "Foglalás", message, model.Resource.ImagePath, url);
|
||||
return RedirectToAction("Details", "Reservations", new { Id = model.Id });
|
||||
@ -272,9 +272,9 @@ namespace ResourcesManager.Controllers
|
||||
log.Warn("HttpNotFound");
|
||||
return HttpNotFound();
|
||||
}
|
||||
if (!((reservation.User == User.Identity.Name) || User.IsInRole("Admin")))
|
||||
if (!((reservation.User == User?.Identity?.Name) || User.IsInRole("Admin")))
|
||||
{
|
||||
log.Warn("Jogosultság hiba: " + User.Identity.Name);
|
||||
log.Warn("Jogosultság hiba: " + User?.Identity?.Name);
|
||||
return View("PermissionError");
|
||||
}
|
||||
return View(reservation);
|
||||
@ -294,9 +294,9 @@ namespace ResourcesManager.Controllers
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!((reservation.User == User.Identity.Name) || User.IsInRole("Admin")))
|
||||
if (!((reservation.User == User?.Identity?.Name) || User.IsInRole("Admin")))
|
||||
{
|
||||
log.Warn("Jogosultsági hiba: " + User.Identity.Name);
|
||||
log.Warn("Jogosultsági hiba: " + User?.Identity?.Name);
|
||||
return View("PermissionError");
|
||||
}
|
||||
var resource = resourceRepo.GetResourceByID(reservation.ResourceId);
|
||||
@ -352,7 +352,7 @@ namespace ResourcesManager.Controllers
|
||||
|
||||
//Értesítés küldés
|
||||
var users = resource.Users.Select(k => k.UserName).ToList();
|
||||
string message = string.Format("{0} módosította {1} erőforrás foglalását {2} tól {3}-ig.", User.Identity.Name, resource.Name, reservation.Begining, reservation.End);
|
||||
string message = string.Format("{0} módosította {1} erőforrás foglalását {2} tól {3}-ig.", User?.Identity?.Name, resource.Name, reservation.Begining, reservation.End);
|
||||
string url = "/Reservations/Details/" + reservation.Id;
|
||||
NotificationHelper.Send(users, "Foglalás módosítás", message, resource.ImagePath, url);
|
||||
return RedirectToAction("Details", "Reservations", new { Id = reservation.Id });
|
||||
@ -376,9 +376,9 @@ namespace ResourcesManager.Controllers
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
Reservation reservation = reservRepo.GetReservationByID((int)id);
|
||||
if (!((reservation.User == User.Identity.Name) || User.IsInRole("Admin")))
|
||||
if (!((reservation.User == User?.Identity?.Name) || User.IsInRole("Admin")))
|
||||
{
|
||||
log.Warn("Jogosultsági hiba: " + User.Identity.Name);
|
||||
log.Warn("Jogosultsági hiba: " + User?.Identity?.Name);
|
||||
return View("PermissionError");
|
||||
}
|
||||
if (reservation == null)
|
||||
@ -402,14 +402,14 @@ namespace ResourcesManager.Controllers
|
||||
try
|
||||
{
|
||||
var reservation = reservRepo.GetReservationByID(id);
|
||||
if (!((reservation.User == User.Identity.Name) || User.IsInRole("Admin")))
|
||||
if (!((reservation.User == User?.Identity?.Name) || User.IsInRole("Admin")))
|
||||
{
|
||||
log.Warn("Jogosultsági hiba: " + User.Identity.Name);
|
||||
log.Warn("Jogosultsági hiba: " + User?.Identity?.Name);
|
||||
return View("PermissionError");
|
||||
}
|
||||
//Értesítés küldés
|
||||
var users = reservation.Resource.Users.Select(k => k.UserName).ToList();
|
||||
string message = string.Format("{0} törölte {1} foglalását {2} tól {3}-ig.", User.Identity.Name, reservation.Resource.Name, reservation.Begining, reservation.End);
|
||||
string message = string.Format("{0} törölte {1} foglalását {2} tól {3}-ig.", User?.Identity?.Name, reservation.Resource.Name, reservation.Begining, reservation.End);
|
||||
NotificationHelper.Send(users, "Foglalás törlés", message, reservation.Resource.ImagePath, null);
|
||||
|
||||
reservRepo.DeleteReservation(reservation.Id);
|
||||
|
@ -90,10 +90,10 @@ namespace ResourcesManager.Controllers
|
||||
{
|
||||
try
|
||||
{
|
||||
var stream = Request.Files[0].InputStream;
|
||||
var stream = Request?.Files[0]?.InputStream;
|
||||
string path;
|
||||
|
||||
if (stream.Length != 0)
|
||||
if (stream != null && stream.Length != 0)
|
||||
{
|
||||
var img = new WebImage(stream);
|
||||
string fileName = Path.GetRandomFileName();
|
||||
@ -116,13 +116,13 @@ namespace ResourcesManager.Controllers
|
||||
|
||||
|
||||
resource.ImagePath = "~/App_Data/ResourceImages/" + fileName;
|
||||
stream.Flush();
|
||||
stream.Close();
|
||||
}
|
||||
else
|
||||
{
|
||||
resource.ImagePath = "~/App_Data/ResourceImages/DefaultResource.png";
|
||||
}
|
||||
stream.Flush();
|
||||
stream.Close();
|
||||
|
||||
return resource;
|
||||
}
|
||||
@ -174,6 +174,11 @@ namespace ResourcesManager.Controllers
|
||||
ModelState.AddModelError("AssetTag", "Ilyen már létezik");
|
||||
return View(resource);
|
||||
}
|
||||
if (string.IsNullOrEmpty(resource.AssetTag))
|
||||
{
|
||||
ModelState.AddModelError("AssetTag", "Kötelező mező");
|
||||
return View(resource);
|
||||
}
|
||||
if (resource.TimeLimit < 1)
|
||||
{
|
||||
ModelState.AddModelError("TimeLimit", "Nem lehet negatív");
|
||||
@ -251,6 +256,11 @@ namespace ResourcesManager.Controllers
|
||||
ModelState.AddModelError("AssetTag", "Ilyen már létezik");
|
||||
return View(model);
|
||||
}
|
||||
if (string.IsNullOrEmpty(resource.AssetTag))
|
||||
{
|
||||
ModelState.AddModelError("AssetTag", "Kötelező mező");
|
||||
return View(resource);
|
||||
}
|
||||
}
|
||||
//Kép feltöltés ellenörzése
|
||||
var stream = Request?.Files[0]?.InputStream;
|
||||
@ -296,7 +306,7 @@ namespace ResourcesManager.Controllers
|
||||
|
||||
//Értesítés küldés
|
||||
var users = model.Users.Select(k => k.UserName).ToList();
|
||||
string message = string.Format("{0} módosította {1} erőforrást.", User.Identity.Name, resource.Name);
|
||||
string message = string.Format("{0} módosította {1} erőforrást.", User?.Identity?.Name, resource.Name);
|
||||
string url = "/Resources/Details/" + resource.Id;
|
||||
NotificationHelper.Send(users, "Erőforrás módosítás", message, resource.ImagePath, url);
|
||||
|
||||
|
@ -11,6 +11,7 @@ using ResourcesManager.ViewModels;
|
||||
using System.Data.Entity.Core.Objects;
|
||||
using ResourcesManager.Interfaces;
|
||||
using ResourcesManager.Repositories;
|
||||
using ResourcesManager.Handlers;
|
||||
|
||||
namespace ResourcesManager.Controllers
|
||||
{
|
||||
@ -18,42 +19,57 @@ namespace ResourcesManager.Controllers
|
||||
{
|
||||
private ApplicationDbContext context;
|
||||
private IStatisticRepository statisticRepository;
|
||||
private IResourceRepository resourceRepo;
|
||||
private IUserRepository userRepo;
|
||||
readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
public StatisticsController()
|
||||
{
|
||||
context = new ApplicationDbContext();
|
||||
this.statisticRepository = new StatisticRepository(context);
|
||||
statisticRepository = new StatisticRepository(context);
|
||||
resourceRepo = new ResourceRepository(context);
|
||||
userRepo = new UserRepository(context);
|
||||
}
|
||||
|
||||
public StatisticsController(IStatisticRepository statisticRepository)
|
||||
public StatisticsController(IStatisticRepository statisticRepository, IResourceRepository resourceRepo, IUserRepository userRepo)
|
||||
{
|
||||
this.statisticRepository = statisticRepository;
|
||||
this.resourceRepo = resourceRepo;
|
||||
this.userRepo = userRepo;
|
||||
}
|
||||
|
||||
public ActionResult Index(StatisticType? statTypeId, int? resId)
|
||||
{
|
||||
if (statTypeId == null)
|
||||
try
|
||||
{
|
||||
statTypeId = Models.StatisticType.Reserv;
|
||||
if (statTypeId == null)
|
||||
{
|
||||
statTypeId = Models.StatisticType.Reserv;
|
||||
}
|
||||
if (resId == null)
|
||||
{
|
||||
resId = resourceRepo.GetResouces().FirstOrDefault().Id;
|
||||
}
|
||||
var statistics = statisticRepository.GetStatistics();
|
||||
var model = new StatisticViewModel();
|
||||
var today = DateTime.Today.AddDays(-30.0);
|
||||
model.ByType = statistics.Where(k => k.StatisticType == statTypeId && k.DateTime > today)?.GroupBy(l => l.DateTime.Date)?.Select(j => new ByType() { Name = (DateTime)j.Key, Value = j.Count() })?.ToList();
|
||||
model.ByResource = statistics.Where(k => k.ResourceId == resId & k.DateTime > today)?.GroupBy(l => l.DateTime.Date)?.Select(j => new ByResource() { Name = (DateTime)j.Key, Value = j.Count() })?.ToList();
|
||||
model.ByTypeCircle = statistics.GroupBy(l => l.StatisticType).Select(j => new ByTypeCircle() { Name = ((StatisticType)j.Key).ToString(), Value = j.Count() }).ToList();
|
||||
var subscibedUser = resourceRepo.GetResouces().Select(k => k.Users.Count()).Sum();
|
||||
var allUsers = userRepo.GetUsers().Count() * resourceRepo.GetResouces().Count();
|
||||
model.Subscribe = new List<Subscribe>();
|
||||
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(resourceRepo.GetResouces(), "Id", "Name", resId);
|
||||
model.StatisticType = new SelectList(Enum.GetValues(typeof(StatisticType)).Cast<StatisticType>(), (int)statTypeId);
|
||||
return View(model);
|
||||
}
|
||||
if (resId == null)
|
||||
catch (Exception ex)
|
||||
{
|
||||
resId = context.Resources.FirstOrDefault().Id;
|
||||
log.Error(ex);
|
||||
return new HttpStatusCodeResult(HttpStatusCode.InternalServerError);
|
||||
}
|
||||
var statistics = statisticRepository.GetStatistics();
|
||||
var model = new StatisticViewModel();
|
||||
var today = DateTime.Today.AddDays(-30.0);
|
||||
model.ByType = statistics.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 = statistics.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 = statistics.GroupBy(l => l.StatisticType).Select(j => new ByTypeCircle() { Name = ((StatisticType)j.Key).ToString(), Value = j.Count() }).ToList();
|
||||
var subscibedUser = context.Resources.Select(k => k.Users.Count()).Sum();
|
||||
var allUsers = context.Users.Count() * context.Resources.Count();
|
||||
model.Subscribe = new List<Subscribe>();
|
||||
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(context.Resources, "Id", "Name", resId);
|
||||
model.StatisticType = new SelectList(Enum.GetValues(typeof(StatisticType)).Cast<StatisticType>(), (int)statTypeId);
|
||||
return View(model);
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
@ -61,6 +77,9 @@ namespace ResourcesManager.Controllers
|
||||
if (disposing)
|
||||
{
|
||||
context.Dispose();
|
||||
statisticRepository.Dispose();
|
||||
resourceRepo.Dispose();
|
||||
userRepo.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
using ResourcesManager.Interfaces;
|
||||
using Microsoft.AspNet.Identity;
|
||||
using ResourcesManager.Interfaces;
|
||||
using ResourcesManager.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
@ -62,7 +62,7 @@
|
||||
</div>
|
||||
<p>
|
||||
<a href="javascript:void(0);" onclick="history.go(-1);" class="btn btn-default">Vissza</a>
|
||||
@if ((Model.User == User.Identity.Name) || User.IsInRole("Admin"))
|
||||
@if ((Model.User == User?.Identity?.Name) || User.IsInRole("Admin"))
|
||||
{
|
||||
@Html.ActionLink("Módosítás", "Edit", new { id = Model.Id }, new { @class = "btn btn-warning" })
|
||||
<span></span>
|
||||
|
@ -37,7 +37,7 @@
|
||||
<td>
|
||||
<div class="btn-group">
|
||||
@Html.ActionLink("Részletek", "Details", "Reservations", new { id = item.Id }, new { @class = "btn btn-info" })
|
||||
@if ((item.User == User.Identity.Name) || User.IsInRole("Admin"))
|
||||
@if ((item.User == User?.Identity?.Name) || User.IsInRole("Admin"))
|
||||
{
|
||||
@Html.ActionLink("Módosítás", "Edit", "Reservations", new { id = item.Id }, new { @class = "btn btn-warning" })
|
||||
@Html.ActionLink("Törlés", "Delete", "Reservations", new { id = item.Id }, new { @class = "btn btn-danger" })
|
||||
|
@ -43,7 +43,7 @@
|
||||
{
|
||||
<div class="btn-group">
|
||||
@{
|
||||
var user = User.Identity.Name;
|
||||
var user = User?.Identity?.Name;
|
||||
if (item.Users.Any(e => e.UserName == user))
|
||||
{
|
||||
@Html.ActionLink("Leíratkozás", "Unfollow", new { ResourceId = item.Id }, new { @class = "btn btn-default" })
|
||||
|
Loading…
Reference in New Issue
Block a user