public JsonResult SpaceBookings([ModelBinder(typeof(DataTablesBinder))] IDataTablesRequest requestModel, string searchdata = "", int?statusId = null) { List <SpaceBooking> spaceBookingList; SpaceBooking model = new SpaceBooking() { StatusId = statusId, SpaceName = searchdata, StartRowIndex = requestModel.Start + 1, EndRowIndex = requestModel.Start + requestModel.Length, SortDirection = requestModel.OrderDir, SortExpression = requestModel.Columns.ElementAt(requestModel.OrderColumn).Data }; spaceBookingList = this.masterDataBL.Search(model); int totalRecord = 0; int filteredRecord = 0; if (spaceBookingList != null && spaceBookingList.Count > 0) { totalRecord = spaceBookingList.FirstOrDefault().TotalRecords; filteredRecord = spaceBookingList.FirstOrDefault().TotalRecords; } return(this.Json(new DataTablesResponse(requestModel.Draw, spaceBookingList, filteredRecord, totalRecord), JsonRequestBehavior.AllowGet)); }
/// <summary> /// Add Space Booking /// </summary> /// <param name="spaceBooking">spaceBooking</param> /// <param name="statusId">Status Id</param> /// <returns>Id</returns> public int AddSpaceBooking(SpaceBooking spaceBooking, int?statusId) { using (ServiceContext service = new ServiceContext()) { spaceBooking.StatusId = statusId.ToInteger(); spaceBooking.CustomerId = ProjectSession.CustomerId > 0 ? ProjectSession.CustomerId : spaceBooking.CustomerId; return(service.Save <SpaceBooking>(spaceBooking, "CUSPSpaceBookingsSave")); } }
public ActionResult ViewSpaceStatus(int id = 0) { SpaceBooking model = new SpaceBooking(); model.ID = id; if (id > 0) { model = this.masterDataBL.Search(model).FirstOrDefault(); } return(this.PartialView(PartialViews.ViewSpaceStatus, model)); }
public ActionResult SpaceBookingRequests(SpaceBooking spaceBooking) { List <SpaceBookingRequest> spaceBookings = new List <SpaceBookingRequest>(); if (!string.IsNullOrEmpty(spaceBooking.BookingDate) && spaceBooking.SpaceId.HasValue) { SpaceBookingRequest model = new SpaceBookingRequest(); model.FromDate = DateTime.ParseExact(spaceBooking.BookingDate, ProjectConfiguration.DateFormat, System.Globalization.CultureInfo.InvariantCulture).Date; model.ToDate = model.FromDate.Value.Date.AddDays(1); model.SpaceId = spaceBooking.SpaceId; spaceBookings = this.masterDataBL.Search(model); } return(this.PartialView(PartialViews.SpaceBookingRequests, spaceBookings)); }
public JsonResult GetSpaceBookingRequestTimings(SpaceBooking spaceBooking) { List <SpaceBookingRequest> spaceBookings = new List <SpaceBookingRequest>(); if (!string.IsNullOrEmpty(spaceBooking.BookingDate) && spaceBooking.SpaceId.HasValue) { SpaceBookingRequest model = new SpaceBookingRequest(); model.FromDate = DateTime.ParseExact(spaceBooking.BookingDate, ProjectConfiguration.DateFormat, System.Globalization.CultureInfo.InvariantCulture).Date; model.ToDate = model.FromDate.Value.Date.AddDays(1); model.SpaceId = spaceBooking.SpaceId; spaceBookings = this.masterDataBL.Search(model); } var spaceBookingRequestTimings = spaceBookings .Where(s => s.FromDate != null && s.ToDate != null) .Select(s => new { From = s.FromDate.Value.ToString("HH:mm"), To = s.ToDate.Value.ToString("HH:mm") }) .ToList(); return(this.Json(spaceBookingRequestTimings, JsonRequestBehavior.DenyGet)); }
public JsonResult RescheduleBookSpace(SpaceBooking spaceBooking) { int rescheduldid = spaceBooking.ID; spaceBooking.ID = 0; try { if (this.ModelState.IsValid) { string comment = spaceBooking.Comment; spaceBooking.Comment = string.Empty; spaceBooking.FromDate = DateTime.ParseExact(spaceBooking.BookingDate + " " + spaceBooking.FromTime, ProjectConfiguration.DateTimeFormat, System.Globalization.CultureInfo.InvariantCulture); spaceBooking.ToDate = DateTime.ParseExact(spaceBooking.BookingDate + " " + spaceBooking.ToTime, ProjectConfiguration.DateTimeFormat, System.Globalization.CultureInfo.InvariantCulture); if (spaceBooking.FromDate <= DateTime.Now) { return(this.Json(new { resultData = 0, status = Infrastructure.SystemEnumList.MessageBoxType.Error.GetDescription(), message = Messages.SpaceBookingTimeMessage }, JsonRequestBehavior.DenyGet)); } if (spaceBooking.ToDate <= spaceBooking.FromDate) { return(this.Json(new { resultData = 0, status = Infrastructure.SystemEnumList.MessageBoxType.Error.GetDescription(), message = Messages.TimeCompareMessage.SetArguments(General.ToTime, General.FromTime) }, JsonRequestBehavior.DenyGet)); } int status = this.masterDataBL.AddSpaceBooking(spaceBooking, SystemEnumList.SpaceBookingStatus.Approved.GetHashCode().ToInteger()); string message = string.Empty; if (status > 0) { message = Messages.SpaceBookingReschedule; SpaceBooking oldspacebooking = this.masterDataBL.SelectObject <SpaceBooking>(rescheduldid); string oldSpaceName = oldspacebooking.SpaceName; oldspacebooking.StatusId = ConvertTo.ToInteger(SystemEnumList.SpaceBookingStatus.Rescheduled.GetHashCode()); oldspacebooking.RescheduleId = status; oldspacebooking.Reschedule = true; oldspacebooking.SpaceName = null; oldspacebooking.Comment = comment; int id = this.masterDataBL.Save <SpaceBooking>(oldspacebooking, checkForDuplicate: false); if (id > 0) { spaceBooking.ID = status; NotificationFactory.AddNotification(NotificationType.SpaceBookingReschedule, spaceBooking); SpaceBooking newSpaceBooking = this.masterDataBL.SelectObject <SpaceBooking>(status); EmailViewModel emailModel = new EmailViewModel() { Email = newSpaceBooking.CustomerEmail, Name = newSpaceBooking.CustomerName, OldroomName = oldSpaceName, OldDate = oldspacebooking.FromDate.ToDate().ToString(ProjectConfiguration.DateFormat, System.Globalization.CultureInfo.InvariantCulture), OldFromtime = oldspacebooking.FromDate.ToDate().ToString("HH:mm", System.Globalization.CultureInfo.InvariantCulture), OldTotime = oldspacebooking.ToDate.ToDate().ToString("HH:mm", System.Globalization.CultureInfo.InvariantCulture), OldPeople = oldspacebooking.NoOfPeople.ToString(), RoomName = newSpaceBooking.SpaceName, People = spaceBooking.NoOfPeople.ToString(), Date = spaceBooking.BookingDate.ToDate().ToString(ProjectConfiguration.DateFormat, System.Globalization.CultureInfo.InvariantCulture), Fromtime = spaceBooking.FromDate.ToDate().ToString("hh:mm tt", System.Globalization.CultureInfo.InvariantCulture), Totime = spaceBooking.ToDate.ToDate().ToString("hh:mm tt", System.Globalization.CultureInfo.InvariantCulture), LanguageId = ConvertTo.ToInteger(ProjectSession.AdminPortalLanguageId) }; UserMail.RoomBookingReschedule(emailModel); return(this.Json(new { resultData = status, status = Infrastructure.SystemEnumList.MessageBoxType.Success.GetDescription(), message = message, title = General.BookSpace }, JsonRequestBehavior.DenyGet)); } else { return(this.Json(new { success = false, status = Infrastructure.SystemEnumList.MessageBoxType.Error.GetDescription(), message = Messages.ErrorMessage.SetArguments(General.BookSpace), title = Infrastructure.SystemEnumList.Title.Space.GetDescription(), JsonRequestBehavior.AllowGet })); } } else if (status == -3) { var spaceCapacity = new MasterDataBL().GetSpaceList(new Space() { ID = spaceBooking.SpaceId.Value })?.FirstOrDefault()?.Capacity ?? 0; message = Messages.NoOfAttendeeExceedCapacity.SetArguments(spaceCapacity, General.NoOfPeople); } else if (status == -4) { message = Messages.BookingAreaUnavailable; } else { message = Messages.DuplicateMessage.SetArguments(General.BookSpace); } return(this.Json(new { resultData = status, status = Infrastructure.SystemEnumList.MessageBoxType.Error.GetDescription(), message = message }, JsonRequestBehavior.DenyGet)); } else { string errorMsg = string.Empty; foreach (ModelState modelState in this.ViewData.ModelState.Values) { foreach (ModelError error in modelState.Errors) { if (!string.IsNullOrEmpty(errorMsg)) { errorMsg = errorMsg + " , "; } errorMsg = errorMsg + error.ErrorMessage; } } return(this.Json(new { resultData = string.Empty, status = Infrastructure.SystemEnumList.MessageBoxType.Error.GetDescription(), message = errorMsg }, JsonRequestBehavior.DenyGet)); } } catch (Exception ex) { return(this.Json(new { resultData = string.Empty, status = Infrastructure.SystemEnumList.MessageBoxType.Error.GetDescription(), message = ex.Message == null ? ex.InnerException.Message : ex.Message }, JsonRequestBehavior.DenyGet)); } }
public JsonResult ApproveCancelSpaceBooking(int statusId, int spaceBookingId = 0, string comment = null) { string msg = string.Empty; try { if (statusId == SystemEnumList.SpaceBookingStatus.Approved.GetHashCode()) { msg = SystemEnumList.SpaceBookingStatus.Approved.GetDescription(); } else if (statusId == SystemEnumList.SpaceBookingStatus.Cancel.GetHashCode()) { msg = SystemEnumList.SpaceBookingStatus.Cancel.GetDescription(); } else if (statusId == SystemEnumList.SpaceBookingStatus.Pending.GetHashCode()) { msg = SystemEnumList.SpaceBookingStatus.Pending.GetDescription(); } SpaceBooking spacebooking = this.masterDataBL.SelectObject <SpaceBooking>(spaceBookingId); spacebooking.StatusId = statusId; string spaceName = spacebooking.SpaceName; spacebooking.SpaceName = null; if (statusId == SystemEnumList.SpaceBookingStatus.Cancel.GetHashCode()) { spacebooking.Comment = comment; } int id = this.masterDataBL.Save <SpaceBooking>(spacebooking, checkForDuplicate: false); if (id > 0) { if (statusId == SystemEnumList.SpaceBookingStatus.Approved.GetHashCode()) { EmailViewModel emailModel = new EmailViewModel() { Email = spacebooking.CustomerEmail, Name = spacebooking.CustomerName, People = spacebooking.NoOfPeople.ToString(), RoomName = spaceName, Date = spacebooking.FromDate.ToDate().ToString(ProjectConfiguration.DateFormat, System.Globalization.CultureInfo.InvariantCulture), Fromtime = spacebooking.FromDate.ToDate().ToString("hh:mm tt", System.Globalization.CultureInfo.InvariantCulture), Totime = spacebooking.ToDate.ToDate().ToString("hh:mm tt", System.Globalization.CultureInfo.InvariantCulture), LanguageId = ConvertTo.ToInteger(ProjectSession.AdminPortalLanguageId) }; UserMail.RoomBookingApprove(emailModel); NotificationFactory.AddNotification(NotificationType.SpaceBookingApprove, spacebooking); } else if (statusId == SystemEnumList.SpaceBookingStatus.Cancel.GetHashCode()) { EmailViewModel emailModel = new EmailViewModel() { Email = spacebooking.CustomerEmail, Name = spacebooking.CustomerName, People = spacebooking.NoOfPeople.ToString(), RoomName = spaceName, Date = spacebooking.FromDate.ToDate().ToString(ProjectConfiguration.DateFormat, System.Globalization.CultureInfo.InvariantCulture), Fromtime = spacebooking.FromDate.ToDate().ToString("hh:mm tt", System.Globalization.CultureInfo.InvariantCulture), Totime = spacebooking.ToDate.ToDate().ToString("hh:mm tt", System.Globalization.CultureInfo.InvariantCulture), LanguageId = ConvertTo.ToInteger(ProjectSession.AdminPortalLanguageId) }; UserMail.RoomBookingCancel(emailModel); NotificationFactory.AddNotification(NotificationType.SpaceBookingReject, spacebooking); } else if (statusId == SystemEnumList.SpaceBookingStatus.Pending.GetHashCode()) { NotificationFactory.AddNotification(NotificationType.SpaceBookingPending, spacebooking); } return(this.Json(new { success = true, status = Infrastructure.SystemEnumList.MessageBoxType.Success.GetDescription(), message = Messages.ApproveSpaceBookingStatus.SetArguments(msg), title = Infrastructure.SystemEnumList.Title.Space.GetDescription(), JsonRequestBehavior.AllowGet })); } else { msg = Messages.ErrorMessage.SetArguments(General.BookSpace); if (id == -3) { var spaceCapacity = new MasterDataBL().GetSpaceList(new Space() { ID = spaceBookingId })?.FirstOrDefault()?.Capacity ?? 0; msg = Messages.NoOfAttendeeExceedCapacity.SetArguments(spaceCapacity, General.NoOfPeople); } else if (id == -4) { msg = Messages.BookingAreaUnavailable; } return(this.Json(new { success = false, status = Infrastructure.SystemEnumList.MessageBoxType.Error.GetDescription(), message = msg, title = Infrastructure.SystemEnumList.Title.Space.GetDescription(), JsonRequestBehavior.AllowGet })); } } catch (Exception ex) { return(this.Json(new { success = false, status = Infrastructure.SystemEnumList.MessageBoxType.Error.GetDescription(), message = Messages.ErrorMessage.SetArguments(msg), title = Infrastructure.SystemEnumList.Title.Space.GetDescription(), JsonRequestBehavior.AllowGet })); } }
/// <summary> /// AddNotification /// </summary> /// <param name="notificationType">notificationType</param> /// <param name="notificationData">notificationData</param> public static void AddNotification(SystemEnumList.NotificationType notificationType, object notificationData) { try { Notification notification = new Notification() { IsRead = false, NotificationTypeId = (int)notificationType }; bool isAddNotification = false; NotificationDataBL notificationDataBL = new NotificationDataBL(); switch (notificationType) { case SystemEnumList.NotificationType.BookBorrow: case SystemEnumList.NotificationType.BookApprove: case SystemEnumList.NotificationType.BookCancel: case SystemEnumList.NotificationType.BookPending: case SystemEnumList.NotificationType.BookReturnDelay: case SystemEnumList.NotificationType.BookReturnReminder: case SystemEnumList.NotificationType.BookReturnTodayReminder: case SystemEnumList.NotificationType.BookBorrowedByAdmin: case SystemEnumList.NotificationType.BookReturn: BorrowedBook borrowedBook = null; if (notificationData is BorrowedBook) { borrowedBook = (BorrowedBook)notificationData; } else { borrowedBook = notificationDataBL.Search <BorrowedBook>(new BorrowedBook() { ID = (int)notificationData }).FirstOrDefault(); } if (borrowedBook != null && borrowedBook.ID > 0 && borrowedBook.CustomerId > 0) { if (notificationType == SystemEnumList.NotificationType.BookBorrow) { notification.IsAdmin = true; notification.UserId = 0; } else { notification.IsAdmin = false; notification.UserId = borrowedBook.CustomerId; } notification.BorrowedBookId = borrowedBook.ID; notification.NotificationStartDate = DateTime.Now.Date; if (notificationType == SystemEnumList.NotificationType.BookReturnDelay || notificationType == SystemEnumList.NotificationType.BookReturnReminder || notificationType == SystemEnumList.NotificationType.BookReturnTodayReminder) { notification.NotificationEndDate = DateTime.Now.Date; } else { notification.NotificationEndDate = borrowedBook.ReturnDate; } isAddNotification = true; } break; case SystemEnumList.NotificationType.SpaceBooking: case SystemEnumList.NotificationType.SpaceBookingApprove: case SystemEnumList.NotificationType.SpaceBookingReject: case SystemEnumList.NotificationType.SpaceBookingReschedule: SpaceBooking spaceBooking = null; if (notificationData is SpaceBooking) { spaceBooking = (SpaceBooking)notificationData; } else { spaceBooking = notificationDataBL.Search <SpaceBooking>(new SpaceBooking() { ID = (int)notificationData }).FirstOrDefault(); } if (spaceBooking != null && spaceBooking.ID > 0 && spaceBooking.CustomerId > 0) { if (notificationType == SystemEnumList.NotificationType.SpaceBooking) { notification.IsAdmin = true; notification.UserId = 0; } else { notification.IsAdmin = false; notification.UserId = spaceBooking.CustomerId; } notification.SpaceBookingId = spaceBooking.ID; notification.NotificationStartDate = DateTime.Now.Date; notification.NotificationEndDate = spaceBooking.FromDate?.Date.AddDays(1); isAddNotification = true; } break; case SystemEnumList.NotificationType.BookAvailable: BookNotification bookNotification = (BookNotification)notificationData; notification.IsAdmin = false; notification.UserId = bookNotification.CustomerId; notification.BookId = bookNotification.BookId; notification.NotificationStartDate = DateTime.Now.Date; isAddNotification = true; break; default: break; } LogWritter.WriteErrorFile("AddNotification isAddNotification: " + isAddNotification.ToString(), true, "FetchNotifications_"); if (isAddNotification) { var result = notificationDataBL.SaveNotification(notification); LogWritter.WriteErrorFile("AddNotification result: " + result.ToString(), true, "FetchNotifications_"); // if (result > 0) // { // Task.Run(() => // { // new SendNotification().RefreshNotificationCount(SignalRConnections.connections.Values.SelectMany(x => x).ToList()); // }); // } } } catch (Exception ex) { LogWritter.WriteErrorFile("AddNotification Exception: " + ex.ToString(), true, "FetchNotifications_"); } }
public JsonResult BookSpace(SpaceBooking spaceBooking) { try { if (this.ModelState.IsValid) { spaceBooking.FromDate = DateTime.ParseExact(spaceBooking.BookingDate + " " + spaceBooking.FromTime, ProjectConfiguration.DateTimeFormat, System.Globalization.CultureInfo.InvariantCulture); spaceBooking.ToDate = DateTime.ParseExact(spaceBooking.BookingDate + " " + spaceBooking.ToTime, ProjectConfiguration.DateTimeFormat, System.Globalization.CultureInfo.InvariantCulture); if (spaceBooking.FromDate <= DateTime.Now) { return(this.Json(new { resultData = 0, status = Infrastructure.SystemEnumList.MessageBoxType.Error.GetDescription(), message = Messages.SpaceBookingTimeMessage }, JsonRequestBehavior.DenyGet)); } if (spaceBooking.ToDate <= spaceBooking.FromDate) { return(this.Json(new { resultData = 0, status = Infrastructure.SystemEnumList.MessageBoxType.Error.GetDescription(), message = Messages.TimeCompareMessage.SetArguments(General.ToTime, General.FromTime) }, JsonRequestBehavior.DenyGet)); } int status = this.masterDataBL.AddSpaceBooking(spaceBooking, SystemEnumList.SpaceBookingStatus.Pending.GetHashCode().ToInteger()); string message = string.Empty; if (status > 0) { SmartLibrary.Services.NotificationFactory.AddNotification(SystemEnumList.NotificationType.SpaceBooking, status); SpaceBooking space = this.masterDataBL.SelectObject <SpaceBooking>(status); EmailViewModel emailModel = new EmailViewModel() { Email = space.CustomerEmail, Name = space.CustomerName, People = space.NoOfPeople.ToString(), RoomName = space.SpaceName, Date = spaceBooking.BookingDate.ToDate().ToString(ProjectConfiguration.DateFormat, System.Globalization.CultureInfo.InvariantCulture), Fromtime = spaceBooking.FromTime.ToDate().ToString("hh:mm tt", System.Globalization.CultureInfo.InvariantCulture), Totime = spaceBooking.ToTime.ToDate().ToString("hh:mm tt", System.Globalization.CultureInfo.InvariantCulture), LanguageId = ConvertTo.ToInteger(ProjectSession.UserPortalLanguageId) }; UserMail.RoomBookingRequest(emailModel); List <User> lstAdmin = this.masterDataBL.Search <User>(new User() { Active = true }).ToList(); foreach (var item in lstAdmin) { EmailViewModel emailModelAdmin = new EmailViewModel() { Email = item.Email, Name = space.CustomerName, People = spaceBooking.NoOfPeople.ToString(), RoomName = space.SpaceName, Date = spaceBooking.BookingDate.ToDate().ToString(ProjectConfiguration.DateFormat, System.Globalization.CultureInfo.InvariantCulture), Fromtime = spaceBooking.FromTime.ToDate().ToString("hh:mm tt", System.Globalization.CultureInfo.InvariantCulture), Totime = spaceBooking.ToTime.ToDate().ToString("hh:mm tt", System.Globalization.CultureInfo.InvariantCulture), LanguageId = ConvertTo.ToInteger(ProjectSession.UserPortalLanguageId) }; UserMail.RoomBookingRequestToAdmin(emailModelAdmin); } if (spaceBooking.ID > 0) { message = Messages.UpdateMessage.SetArguments(General.BookSpace); } else { message = Messages.SaveMessage.SetArguments(General.BookSpace); } return(this.Json(new { resultData = status, status = Infrastructure.SystemEnumList.MessageBoxType.Success.GetDescription(), message = message, title = General.BookSpace }, JsonRequestBehavior.DenyGet)); } else if (status == -3) { var spaceCapacity = new MasterDataBL().GetSpaceList(new Space() { ID = spaceBooking.SpaceId.Value })?.FirstOrDefault()?.Capacity ?? 0; message = Messages.NoOfAttendeeExceedCapacity.SetArguments(spaceCapacity, General.NoOfPeople); } else if (status == -4) { message = Messages.BookingAreaUnavailable; } else { message = Messages.DuplicateMessage.SetArguments(General.BookSpace); } return(this.Json(new { resultData = status, status = Infrastructure.SystemEnumList.MessageBoxType.Error.GetDescription(), message = message }, JsonRequestBehavior.DenyGet)); } else { string errorMsg = string.Empty; foreach (ModelState modelState in this.ViewData.ModelState.Values) { foreach (ModelError error in modelState.Errors) { if (!string.IsNullOrEmpty(errorMsg)) { errorMsg = errorMsg + " , "; } errorMsg = errorMsg + error.ErrorMessage; } } return(this.Json(new { resultData = string.Empty, status = Infrastructure.SystemEnumList.MessageBoxType.Error.GetDescription(), message = errorMsg }, JsonRequestBehavior.DenyGet)); } } catch (Exception ex) { return(this.Json(new { resultData = string.Empty, status = Infrastructure.SystemEnumList.MessageBoxType.Error.GetDescription(), message = ex.Message == null ? ex.InnerException.Message : ex.Message }, JsonRequestBehavior.DenyGet)); } }