Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 27 additions & 11 deletions GetSit/Controllers/SpaceManagementController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

namespace GetSit.Controllers
{
[Authorize(Roles = "Provider")]//Error:Convert UserRole to class
[Authorize(Roles = "Provider")]//Error:Convert UserRole to class
public class SpaceManagementController : Controller
{
#region Dependacies
Expand All @@ -27,6 +27,7 @@ public class SpaceManagementController : Controller
readonly ISpaceService_Service _spaceService_service;
readonly IServicePhotoService _servicePhotoService;
readonly IBookingService _bookingService;
readonly IHallRequestService _hallRequestService;
public SpaceManagementController(IUserManager userManager,
AppDBcontext context,
ISpaceEmployeeService spaceEmployeeService,
Expand All @@ -36,7 +37,9 @@ public SpaceManagementController(IUserManager userManager,
IHallPhotoService hallPhotoService,
ISpaceService_Service spaceService_service,
IServicePhotoService servicePhotoService,
IBookingService bookingService)
IBookingService bookingService,
IHallRequestService HallRequestService)

{
_userManager = userManager;
_context = context;
Expand All @@ -48,6 +51,7 @@ public SpaceManagementController(IUserManager userManager,
_spaceService_service = spaceService_service;
_servicePhotoService = servicePhotoService;
_bookingService = bookingService;
_hallRequestService = HallRequestService;
}
#endregion
public async Task<IActionResult> IndexAsync()
Expand All @@ -58,8 +62,10 @@ public async Task<IActionResult> IndexAsync()
{
var providerId = _userManager.GetCurrentUserId(HttpContext);
var provider = await _providerService.GetByIdAsync(providerId);
spaceIdInt = (int)provider.SpaceId;
SpaceIdStirng = spaceIdInt.ToString();

spaceIdInt = (int) provider.SpaceId;
SpaceIdStirng = provider.ToString();

if(SpaceIdStirng != String.Empty)
HttpContext.Response.Cookies.Append("SpaceId", SpaceIdStirng);
}
Expand All @@ -72,10 +78,11 @@ public async Task<IActionResult> IndexAsync()
SpaceManagementVM viewModel = new()
{
Space = space,
Halls = _hallService.GetBySpaceId(spaceIdInt,h=>h.HallPhotos,h=>h.HallFacilities),
Halls = _hallService.GetAcceptedBySpaceId(spaceIdInt,h=>h.HallPhotos,h=>h.HallFacilities),
Services = _spaceService_service.GetBySpaceId(spaceIdInt, s => s.ServicePhotos),
Employees = _providerService.GetBySpaceId(spaceIdInt),
Bookings = _bookingService.GetBySpaceId(spaceIdInt)
Bookings = _bookingService.GetBySpaceId(spaceIdInt),
Requests= _hallRequestService.GetPendingBySpaceId(spaceIdInt),
};
return View(viewModel);
}
Expand All @@ -84,13 +91,13 @@ public async Task<IActionResult> IndexAsync()
public async Task<IActionResult> AddHallAsync()
{
var SpaceIdStirng = "";
var spaceIdInt=0;
var spaceIdInt = 0;
if (HttpContext.Request.Cookies.Where(c => c.Key == "SpaceId").FirstOrDefault().Value is null)
{
var providerId = _userManager.GetCurrentUserId(HttpContext);
//var provider = _context.SpaceEmployee.Where(e => e.Id == providerId).FirstOrDefault();
var provider = await _providerService.GetByIdAsync(providerId);
SpaceIdStirng = provider.SpaceId.ToString();
spaceIdInt = (int)provider.SpaceId;
SpaceIdStirng = provider.ToString();
if (SpaceIdStirng != String.Empty)
HttpContext.Response.Cookies.Append("SpaceId", SpaceIdStirng);
}
Expand All @@ -100,8 +107,9 @@ public async Task<IActionResult> AddHallAsync()
int.TryParse(SpaceIdStirng, out spaceIdInt);
}
//Space space = _context.Space.Include(s => s.Photos).Where(s => s.Id.ToString() == SpaceId).FirstOrDefault();
spaceIdInt = 2;
Space space =await _spaceSerivce.GetByIdAsync(spaceIdInt, s=>s.Photos);
AddHallVM vm = new()
AddHallVM vm = new AddHallVM()
{
SpaceId = space.Id,
SpaceName = space.Name,
Expand Down Expand Up @@ -165,10 +173,18 @@ await _hallPhotoService.AddAsync(new HallPhoto()
});
}
}
/*Add request*/
var request = new HallRequest()
{
Hall=hall,
Status = ReqestStatus.pending,
Date = DateTime.Now,
};
_hallRequestService.AddRequest(request);

return RedirectToAction("Index");
}
#endregion

#region Create New Service
[HttpGet]
public async Task<IActionResult> AddServiceAsync()
Expand Down
80 changes: 80 additions & 0 deletions GetSit/Controllers/SystemAdminController.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
using GetSit.Data.Security;
using GetSit.Data.Services;
using GetSit.Data;

using Microsoft.AspNetCore.Mvc;
using GetSit.Data.enums;

namespace GetSit.Controllers
{
public class SystemAdminController : Controller
{
#region Dependacies
readonly IUserManager _userManager;
readonly AppDBcontext _context;
readonly ISpaceEmployeeService _providerService;
readonly ISpaceService _spaceSerivce;
readonly ISpaceHallService _hallService;
readonly IHallFacilityService _hallFacilityService;
readonly IHallPhotoService _hallPhotoService;
readonly ISpaceService_Service _spaceService_service;
readonly IServicePhotoService _servicePhotoService;
readonly IBookingService _bookingService;
readonly IHallRequestService _hallRequestService;
public SystemAdminController(IUserManager userManager,
AppDBcontext context,
ISpaceEmployeeService spaceEmployeeService,
ISpaceService spaceService,
ISpaceHallService hallService,
IHallFacilityService hallFacilityService,
IHallPhotoService hallPhotoService,
ISpaceService_Service spaceService_service,
IServicePhotoService servicePhotoService,
IBookingService bookingService,
IHallRequestService HallRequestService)

{
_userManager = userManager;
_context = context;
_providerService = spaceEmployeeService;
_spaceSerivce = spaceService;
_hallService = hallService;
_hallFacilityService = hallFacilityService;
_hallPhotoService = hallPhotoService;
_spaceService_service = spaceService_service;
_servicePhotoService = servicePhotoService;
_bookingService = bookingService;
_hallRequestService = HallRequestService;
}
#endregion
public IActionResult Index()
{
return View();
}
public IActionResult ViewRepest(int requestId)
{
return View();
}
[HttpGet]
public IActionResult AcceptRepest(int requestId) {
var request= _hallRequestService.GetById(requestId);
var hall =request.Hall;
hall.Status = HallStatus.Accepted;
_hallService.UpdateHall(hall);
_hallRequestService.DeleteRequest(request);
return View("Index");
}

[HttpPost]
public IActionResult RejectRepest(int requestId,string comment)
{
var request = _hallRequestService.GetById(requestId);
request.comment = comment;
request.Status = ReqestStatus.Rejected;
request.Date=DateTime.Now;
_hallRequestService.UpdateRequest(request);

return View("Index");
}
}
}
3 changes: 1 addition & 2 deletions GetSit/Data/AppDBcontext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
public DbSet<SpaceWorkingDay> SpaceWorkingDay { get; set; }
public DbSet<SystemAdmin> SystemAdmin { get; set; }
public DbSet<Title> Title { get; set; }


public DbSet<HallRequest> HallRequest { get; set; }

}
}
2 changes: 1 addition & 1 deletion GetSit/Data/AppDbInitializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public static void Seed(IApplicationBuilder applicationBuilder)
}
});
}
context.SaveChanges();
//context.SaveChanges();
//Space Phone
if (!context.SpacePhone.Any())
{
Expand Down
44 changes: 44 additions & 0 deletions GetSit/Data/Services/HallRequestService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
using GetSit.Data.enums;
using GetSit.Models;
using Microsoft.EntityFrameworkCore;
using System.Linq.Expressions;

namespace GetSit.Data.Services
{
public class HallRequestService : IHallRequestService
{
readonly AppDBcontext _context;
public HallRequestService(AppDBcontext context)
{
_context = context;
}
public void AddRequest(HallRequest request)
{
_context.Add(request);
_context.SaveChanges();
}
public void DeleteRequest(HallRequest request)
{
_context.Remove(request);
_context.SaveChanges();
}
public void UpdateRequest(HallRequest request)
{
_context.Update(request);
_context.SaveChanges();
}

public List<HallRequest> GetPendingBySpaceId(int spaceId, params Expression<Func<HallRequest, object>>[] includeProperties)
{
IQueryable<HallRequest> query = _context.Set<HallRequest>();
query = includeProperties.Aggregate(query, (current, includeProperty) => current.Include(includeProperty));
return query.Where(n => n.Hall.SpaceId == spaceId && n.Status != ReqestStatus.Accepted).ToList();
}
public HallRequest GetById(int RequestId)
{
var ret=_context.HallRequest.Where(h => h.Id == RequestId).Single();
return ret;
}

}
}
15 changes: 15 additions & 0 deletions GetSit/Data/Services/IHallRequestService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
using GetSit.Models;
using System.Linq.Expressions;

namespace GetSit.Data.Services
{
public interface IHallRequestService
{

void AddRequest(HallRequest request);
void DeleteRequest(HallRequest request);
void UpdateRequest(HallRequest request);
HallRequest GetById(int RequestId);
List<HallRequest> GetPendingBySpaceId(int spaceId, params Expression<Func<HallRequest, object>>[] includeProperties);
}
}
3 changes: 3 additions & 0 deletions GetSit/Data/Services/ISpaceHallService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ public interface ISpaceHallService:IEntityBaseRepository<SpaceHall>
{
public Task<IEnumerable<SpaceHall>> GetBySpaceName(String Key);
public List<SpaceHall> GetBySpaceId(int spaceId, params Expression<Func<SpaceHall, object>>[] includeProperties);
public void UpdateHall( SpaceHall Hall);

public List<SpaceHall> GetAcceptedBySpaceId(int spaceId, params Expression<Func<SpaceHall, object>>[] includeProperties);

}
}
13 changes: 13 additions & 0 deletions GetSit/Data/Services/SpaceHallService.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using GetSit.Data.Base;
using GetSit.Data.enums;
using GetSit.Models;
using Microsoft.EntityFrameworkCore;
using System.Linq.Expressions;
Expand All @@ -20,11 +21,23 @@ public List<SpaceHall> GetBySpaceId(int spaceId, params Expression<Func<SpaceHal
query = includeProperties.Aggregate(query, (current, includeProperty) => current.Include(includeProperty));
return query.Where(n => n.SpaceId == spaceId).ToList();
}
public void UpdateHall(SpaceHall Hall)
{
_context.Update(Hall);
_context.SaveChanges();
}
public List<SpaceHall> GetAcceptedBySpaceId(int spaceId, params Expression<Func<SpaceHall, object>>[] includeProperties)
{
IQueryable<SpaceHall> query = _context.Set<SpaceHall>();
query = includeProperties.Aggregate(query, (current, includeProperty) => current.Include(includeProperty));
return query.Where(n => n.SpaceId == spaceId && n.Status==HallStatus.Accepted).ToList();
}

public async Task<IEnumerable<SpaceHall>> GetBySpaceName(string Key)
{
var result = await _context.SpaceHall.Include(x => x.Space).Include(y => y.HallPhotos).Where(p => p.Space.Name.Contains(Key)).ToListAsync();
return result;
}

}
}
1 change: 1 addition & 0 deletions GetSit/Data/ViewModels/SpaceManagementVM.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@ public class SpaceManagementVM
public List<SpaceService> Services { get; set; }
public List<SpaceEmployee> Employees { get; set; }
public List<Booking> Bookings { get; set; }
public List<HallRequest> Requests { get; set; }
}
}
1 change: 1 addition & 0 deletions GetSit/Data/enums/HallStatus.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ public enum HallStatus
{
Pending=1,
Accepted

}
}
9 changes: 9 additions & 0 deletions GetSit/Data/enums/ReqestStatus.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace GetSit.Data.enums
{
public enum ReqestStatus
{
Accepted,
Rejected,
pending
}
}
8 changes: 8 additions & 0 deletions GetSit/Data/enums/RequestType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace GetSit.Data.enums
{
public enum RequestType
{
Hall=1,
Sevice
}
}
Loading