/// <summary> /// Edit Holiday Detail /// </summary> /// <param name="createHoliday"></param> /// <returns></returns> public CreateHolidayViewModel EditHolidayDetail(CreateHolidayViewModel createHoliday, out string msg) { msg = ""; try { var editHoli = (from rh in _db.Resource_Holiday //join rhs in _db.Resource_HolidayStatus on rh.HolidayID equals rhs.HolidayID where rh.HolidayID == createHoliday.HolidayID // orderby rhs.StatusDateTime descending select new CreateHolidayViewModel { HolidayID = rh.HolidayID, ResourceID = (int)rh.ResourceID, HolidayTypeID = (int)rh.HolidayTypeID, BookingHrs = (float)rh.BookingHrs, HolidayDate = (DateTime)rh.HolidayDate, StatusChangedOn = (DateTime)rh.Resource_HolidayStatus.OrderByDescending(x => x.StatusDateTime).Select(x => x.StatusDateTime).FirstOrDefault(), //StatusChangedByID = rh.Resource_HolidayStatus.OrderByDescending(x => x.StatusDateTime).Select(x => x.StatusChangedBy).FirstOrDefault(), StatusChangedBy = rh.Resource_HolidayStatus.OrderByDescending(x => x.StatusDateTime).Select(x => x.StatusChangedBy).FirstOrDefault(), StatusID = rh.Resource_HolidayStatus.OrderByDescending(x => x.StatusDateTime).Select(x => x.HolidayStatusTypeID).FirstOrDefault(), Status = _db.Resource_HolidayStatusType.Where(y => y.HolidayStatusTypeID == rh.Resource_HolidayStatus.OrderByDescending(x => x.StatusDateTime).Select(x => x.HolidayStatusTypeID).FirstOrDefault()).Select(y => y.HolidayStatusType).FirstOrDefault(), Comment = rh.Comments, }).FirstOrDefault(); if (editHoli == null) { msg = "Already Removed"; } return(editHoli); } catch (Exception ex) { msg = ex.Message; return(createHoliday); } }
/// <summary> /// Create Assign Holiday /// </summary> /// <param name="createHoliday"></param> /// <returns></returns> public bool CreateAssignHoliday(CreateHolidayViewModel createHoliday, out string msg) { msg = ""; try { Resource_Holiday resourceHoliday = new Resource_Holiday(); resourceHoliday.ResourceID = createHoliday.ResourceID; resourceHoliday.HolidayTypeID = createHoliday.HolidayTypeID; resourceHoliday.BookingHrs = createHoliday.BookingHrs; resourceHoliday.HolidayDate = createHoliday.HolidayStartDate; resourceHoliday.Comments = createHoliday.Comment; _db.Resource_Holiday.Add(resourceHoliday); // _db.SaveChanges(); Resource_HolidayStatus resourceHolidayStatus = new Resource_HolidayStatus(); resourceHolidayStatus.HolidayID = resourceHoliday.HolidayID; resourceHolidayStatus.StatusChangedBy = HttpContext.Current.User.Identity.Name; resourceHolidayStatus.StatusDateTime = createHoliday.RequestedOn.Add(DateTime.Now.TimeOfDay); resourceHolidayStatus.HolidayStatusTypeID = createHoliday.StatusID == 0? _db.Resource_HolidayStatusType.Where(x => x.HolidayStatusType == "Request").Select(x => x.HolidayStatusTypeID).FirstOrDefault(): createHoliday.StatusID; //resourceHolidayStatus.Comments = createHoliday.Comment; _db.Resource_HolidayStatus.Add(resourceHolidayStatus); _db.SaveChanges(); msg = "Successfully Created"; return(true); } catch (Exception ex) { msg = ex.Message; return(false); } }
public ActionResult AddHoliday(int month, int year, int?searchResourceID) { CreateHolidayViewModel createHoliday = new CreateHolidayViewModel(); createHoliday.SearchHoliday = new SearchHolidayViewModel(); createHoliday.SearchHoliday.Month = month; createHoliday.SearchHoliday.Year = year; createHoliday.SearchHoliday.SearchResourceID = searchResourceID == null?0:(int)searchResourceID; _ViewBagListDetails(); return(PartialView("_CreateHoliday", createHoliday)); }
public IActionResult Create(CreateHolidayViewModel viewModel) { try { holidayService.Add(viewModel.Type, viewModel.Days, viewModel.Description); return(RedirectToAction("Index")); } catch (Exception e) { return(BadRequest(e.Message)); } }
/// <summary> /// Add Edit Holiday /// </summary> /// <param name="createHoliday"></param> /// <returns></returns> public bool AddEditHoliday(CreateHolidayViewModel createHoliday, out string msg) { msg = ""; try { var checkRes = _db.Resource_Holiday.Where(x => x.HolidayDate == createHoliday.HolidayDate && x.ResourceID == createHoliday.ResourceID).FirstOrDefault(); if (checkRes == null || checkRes.HolidayID == createHoliday.HolidayID) { var addResHoli = (from rh in _db.Resource_Holiday where rh.HolidayID == createHoliday.HolidayID select rh).FirstOrDefault(); if (addResHoli != null) { addResHoli.BookingHrs = createHoliday.BookingHrs; addResHoli.HolidayDate = createHoliday.HolidayDate; addResHoli.HolidayTypeID = createHoliday.HolidayTypeID; addResHoli.ResourceID = createHoliday.ResourceID; addResHoli.Comments = createHoliday.Comment; } var addReHoliSta = _db.Resource_HolidayStatus.Where(x => x.HolidayID == createHoliday.HolidayID && x.HolidayStatusTypeID == createHoliday.StatusID).Select(x => x).FirstOrDefault(); if (addReHoliSta != null) { addReHoliSta.HolidayStatusTypeID = createHoliday.StatusID; addReHoliSta.StatusChangedBy = HttpContext.Current.User.Identity.Name; addReHoliSta.StatusDateTime = DateTime.Now; } else { Resource_HolidayStatus resourceHolidayStatus = new Resource_HolidayStatus(); resourceHolidayStatus.HolidayID = createHoliday.HolidayID; resourceHolidayStatus.StatusChangedBy = HttpContext.Current.User.Identity.Name; resourceHolidayStatus.StatusDateTime = DateTime.Now; resourceHolidayStatus.HolidayStatusTypeID = createHoliday.StatusID == 0 ? _db.Resource_HolidayStatusType.Where(x => x.HolidayStatusType == "Request").Select(x => x.HolidayStatusTypeID).FirstOrDefault() : createHoliday.StatusID; //resourceHolidayStatus.Comments = createHoliday.Comment; _db.Resource_HolidayStatus.Add(resourceHolidayStatus); } _db.SaveChanges(); msg = "Successfully Updated"; return(true); } msg = checkRes.Resource_Employee.FirstName + " already booked on " + createHoliday.HolidayDate.Date.ToString(globalVariables.GetCommonDate()); return(false); } catch (Exception ex) { msg = ex.Message; return(false); } }
public async Task <ActionResult> Create(CreateHolidayViewModel viewModel) { if (ModelState.IsValid) { var isSuccess = await _holidayService.AddHoliday(viewModel); if (isSuccess) { _logger.Info($"Holiday on {viewModel.HolidayDate} created successfully"); return(RedirectToAction("Index")); } } return(View(viewModel)); }
public ActionResult CreateHoliday(CreateHolidayViewModel createHoliday) { string msg; try { if (createHoliday.HolidayID != 0) { ModelState.Remove("AssignType"); } if (ModelState.IsValid) { if (createHoliday.HolidayID != 0) { SearchHolidayViewModel searchHoliday = new SearchHolidayViewModel(); searchHoliday.Year = createHoliday.SearchHoliday.Year; searchHoliday.Month = createHoliday.SearchHoliday.Month; searchHoliday.SearchResourceID = createHoliday.SearchHoliday.SearchResourceID; if (holidayBL.AddEditHoliday(createHoliday, out msg)) { return(Json(new { success = true, searchHoliday = searchHoliday, message = msg })); } else { _ViewBagListDetails(); return(Json(new { success = false, searchHoliday = searchHoliday, message = msg, partialview = RenderViewToString("_CreateHoliday", createHoliday) })); } } else { var dayDi = (createHoliday.HolidayEndDate - createHoliday.HolidayStartDate).Days + 1; //var startDat = createHoliday.HolidayStartDate; int count = 0; List <string> dateList = new List <string>(); if (createHoliday.ResourceID != 0) { for (int i = 0; i < dayDi; i++) { var testDate = createHoliday.HolidayStartDate.AddDays(i); var takeHoli = holidayBL.GetDayHoliday(testDate, createHoliday.ResourceID); if (((testDate.DayOfWeek == DayOfWeek.Friday && createHoliday.WeeklyFriday == true) || (testDate.DayOfWeek == DayOfWeek.Monday && createHoliday.WeeklyMonday == true) || (testDate.DayOfWeek == DayOfWeek.Saturday && createHoliday.WeeklySaturday == true) || (testDate.DayOfWeek == DayOfWeek.Sunday && createHoliday.WeeklySunday == true) || (testDate.DayOfWeek == DayOfWeek.Thursday && createHoliday.WeeklyThursday == true) || (testDate.DayOfWeek == DayOfWeek.Tuesday && createHoliday.WeeklyTuesday == true) || (testDate.DayOfWeek == DayOfWeek.Wednesday && createHoliday.WeeklyWednesday == true)) && createHoliday.AssignType != "NoofDays") { if (takeHoli == true) { dateList.Add(testDate.Date.ToString(MvcApplication.DateFormat)); } count = count + 1; } if (createHoliday.AssignType == "NoofDays") { if (takeHoli == true) { dateList.Add(testDate.Date.ToString(MvcApplication.DateFormat)); } } } } if (createHoliday.HolidayStartDate < createHoliday.RequestedOn || createHoliday.HolidayStartDate > createHoliday.HolidayEndDate || (count == 0 && createHoliday.AssignType != "NoofDays") || dateList.Count > 0 || createHoliday.NoofDays < 0) { if (createHoliday.HolidayStartDate > createHoliday.HolidayEndDate) { ModelState.AddModelError("HolidayEndDate", "Invalid Date Range"); } if (count == 0 && (createHoliday.WeeklyFriday == true || createHoliday.WeeklyMonday == true || createHoliday.WeeklySaturday == true || createHoliday.WeeklySunday == true || createHoliday.WeeklyThursday == true || createHoliday.WeeklyTuesday == true || createHoliday.WeeklyWednesday == true) && createHoliday.AssignType != "NoofDays") { ModelState.AddModelError("HolidayEndDate", "Not suitable to create shift Schedule within Your Required Days !"); } if (dateList.Count > 0) { string outputName = string.Join(",", dateList.ToArray()); ModelState.AddModelError("HolidayEndDate", "You already Booked this Holiday on " + "'" + outputName + "'"); } if (createHoliday.NoofDays < 0) { ModelState.AddModelError("NoofDays", "NoofDays cannot be Zero or less than Zero!"); } if (createHoliday.WeeklySunday == false && createHoliday.WeeklyMonday == false && createHoliday.WeeklyTuesday == false && createHoliday.WeeklyWednesday == false && createHoliday.WeeklyThursday == false && createHoliday.WeeklyFriday == false && createHoliday.WeeklySaturday == false && createHoliday.AssignType != "NoofDays") { ModelState.AddModelError("AssignType", "Please Select At least One Week Day"); } if (createHoliday.HolidayStartDate < createHoliday.RequestedOn) { ModelState.AddModelError("RequestedOn", "Requested On date should be earlier than the holiday dates"); } _ViewBagListDetails(); return(PartialView("_CreateHoliday", createHoliday)); } if (holidayBL.AssignHoliday(createHoliday, out msg)) { return(Json(new { succeed = true, message = msg })); } else { _ViewBagListDetails(); return(Json(new { succeed = false, message = msg, partialview = RenderViewToString("_CreateHoliday", createHoliday) })); } } } _ViewBagListDetails(); return(PartialView("_CreateHoliday", createHoliday)); } catch (Exception ex) { _ViewBagListDetails(); return(Json(new { success = false, message = ex.Message, partialview = RenderViewToString("_CreateHoliday", createHoliday) })); } }
/// <summary> /// Assign Holiday /// </summary> /// <param name="createHoliday"></param> public bool AssignHoliday(CreateHolidayViewModel createHoliday, out string msg) { msg = ""; int datediffrent = createHoliday.HolidayEndDate.Date.Subtract(createHoliday.HolidayStartDate.Date).Days; datediffrent = datediffrent + 1; int numofDays = createHoliday.NoofDays; DateTime startDate = (DateTime)createHoliday.HolidayStartDate; string assigntype = createHoliday.AssignType; if (assigntype == "Weekly") { for (int i = 0; i < datediffrent; i++) { if (startDate.DayOfWeek == DayOfWeek.Monday && createHoliday.WeeklyMonday == true) { createHoliday.HolidayStartDate = startDate; createHoliday.HolidayEndDate = startDate; if (CreateAssignHoliday(createHoliday, out msg) == false) { return(false); } } else if (startDate.DayOfWeek == DayOfWeek.Tuesday && createHoliday.WeeklyTuesday == true) { createHoliday.HolidayStartDate = startDate; createHoliday.HolidayEndDate = startDate; if (CreateAssignHoliday(createHoliday, out msg) == false) { return(false); } } else if (startDate.DayOfWeek == DayOfWeek.Wednesday && createHoliday.WeeklyWednesday == true) { createHoliday.HolidayStartDate = startDate; createHoliday.HolidayEndDate = startDate; if (CreateAssignHoliday(createHoliday, out msg) == false) { return(false); } } else if (startDate.DayOfWeek == DayOfWeek.Thursday && createHoliday.WeeklyThursday == true) { createHoliday.HolidayStartDate = startDate; createHoliday.HolidayEndDate = startDate; if (CreateAssignHoliday(createHoliday, out msg) == false) { return(false); } } else if (startDate.DayOfWeek == DayOfWeek.Friday && createHoliday.WeeklyFriday == true) { createHoliday.HolidayStartDate = startDate; createHoliday.HolidayEndDate = startDate; if (CreateAssignHoliday(createHoliday, out msg) == false) { return(false); } } else if (startDate.DayOfWeek == DayOfWeek.Saturday && createHoliday.WeeklySaturday == true) { createHoliday.HolidayStartDate = startDate; createHoliday.HolidayEndDate = startDate; if (CreateAssignHoliday(createHoliday, out msg) == false) { return(false); } } else { if (startDate.DayOfWeek == DayOfWeek.Sunday && createHoliday.WeeklySunday == true) { createHoliday.HolidayStartDate = startDate; createHoliday.HolidayEndDate = startDate; if (CreateAssignHoliday(createHoliday, out msg) == false) { return(false); } } } startDate = startDate.AddDays(1); } } else { if (datediffrent >= numofDays) { for (int i = 0; i < numofDays; i++) { createHoliday.HolidayStartDate = startDate; createHoliday.HolidayEndDate = startDate; if (CreateAssignHoliday(createHoliday, out msg) == false) { return(false); } startDate = startDate.AddDays(1); } startDate = startDate.AddDays(numofDays); datediffrent = datediffrent - 2 * numofDays; } else { for (int i = 0; i < datediffrent; i++) { createHoliday.HolidayStartDate = startDate; createHoliday.HolidayEndDate = startDate; if (CreateAssignHoliday(createHoliday, out msg) == false) { return(false); } startDate = startDate.AddDays(1); } } } return(true); }