private VMRosterApplication GetRosterApplication(List <RosterDetail> rosterDetails, RosterApplication rosterApp, VMRosterContinue obj) { VMRosterApplication vm = new VMRosterApplication(); vm.DateEnded = obj.EndDate; vm.DateStarted = rosterApp.DateEnded.Value.AddDays(1); vm.CrewID = (int)rosterApp.CriteriaData; vm.RosterTypeID = (byte)rosterApp.RotaTypeID; vm.RotaApplD = rosterApp.RotaAppID; vm.ShiftID = (int)rosterApp.ShiftID; vm.FriMin = GetWorkMinutes(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Friday).First()); vm.FriStartTime = GetShiftStartTime(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Friday).First()); vm.SatMin = GetWorkMinutes(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Saturday).First()); vm.SatStartTime = GetShiftStartTime(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Saturday).First()); vm.SunMin = GetWorkMinutes(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Sunday).First()); vm.SunStartTime = GetShiftStartTime(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Sunday).First()); vm.MonMin = GetWorkMinutes(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Monday).First()); vm.MonStartTime = GetShiftStartTime(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Monday).First()); vm.TueMin = GetWorkMinutes(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Tuesday).First()); vm.TueStartTime = GetShiftStartTime(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Tuesday).First()); vm.WedMin = GetWorkMinutes(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Wednesday).First()); vm.WedStartTime = GetShiftStartTime(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Wednesday).First()); vm.ThruMin = GetWorkMinutes(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Thursday).First()); vm.ThruStartTime = GetShiftStartTime(rosterDetails.Where(aa => aa.RosterDate.Value.DayOfWeek == DayOfWeek.Thursday).First()); return(vm); }
private VMRosterModel CalculateRosterFields(VMRosterApplication vm, int _RotaAppID) { VAT_Shift shift = DDService.GetShift().Where(aa => aa.PShiftID == vm.ShiftID).First(); VMRosterModel _objmodel = new VMRosterModel(); try { int endPoint = 0; if (vm.RosterTypeID == 2) { endPoint = (vm.DateEnded.Value - vm.DateStarted.Value).Days + 1; } else if (vm.RosterTypeID == 3) { endPoint = 15; } else if (vm.RosterTypeID == 4) { endPoint = System.DateTime.DaysInMonth(vm.DateStarted.Value.Year, vm.DateEnded.Value.Month); } else if (vm.RosterTypeID == 4) { endPoint = 84; } _objmodel._RosterAttributes = new List <RosterAttributes>(); _objmodel.Criteria = ConvertCriteriaAbrvToFull("C"); _objmodel.RotaAppID = _RotaAppID; _objmodel.CriteriaValue = vm.CrewID; _objmodel.ShiftID = vm.ShiftID; _objmodel.StartDate = vm.DateStarted.Value; _objmodel.EndDate = vm.DateEnded.Value; _objmodel.NoOfDays = endPoint; _objmodel.CriteriaValueName = DDService.GetCrew().Where(aa => aa.PCrewID == vm.CrewID).First().CrewName; _objmodel.ShiftName = shift.ShiftName; DateTime _StartDate = vm.DateStarted.Value; for (int i = 1; i <= endPoint; i++) { string _day = _StartDate.Date.ToString("dddd"); string _date = _StartDate.Date.ToString("dd-MMM-yyyy"); string shiftStartTimeString = GetShiftStartTimeString(_StartDate.DayOfWeek, vm); TimeSpan shiftStartTime = ATAssistant.ConvertTime(shiftStartTimeString); int workMin = GetWorkMinutesForSpecificDates(_StartDate, vm); _objmodel._RosterAttributes.Add(new RosterAttributes { ID = i, DateString = _date, Day = _day, DutyDate = _StartDate.Date, DutyTimeString = shiftStartTimeString, DutyTime = shiftStartTime, WorkMin = workMin }); _StartDate = _StartDate.AddDays(1); } Expression <Func <RosterApplication, bool> > SpecificEntries = c => c.RotaAppID == _RotaAppID; RosterApplication rosterApp = RosterApplicationService.GetIndexSpecific(SpecificEntries).First(); rosterApp.DateEnded = _StartDate.AddDays(-1); RosterApplicationService.PostEdit(rosterApp); return(_objmodel); } catch (Exception ex) { return(_objmodel); } }
public ActionResult Create1() { VMRosterApplication vm = new VMRosterApplication(); CreateHelper(); ViewBag.ErrorList = ""; return(View("Create1", vm)); }
public VMRosterModel ContinueRoster(VMRosterContinue vm) { RosterApplication rosterApp = RosterApplicationService.GetEdit(vm.RotaAppID); Expression <Func <RosterDetail, bool> > SpecificEntries = c => c.RosterAppID == vm.RotaAppID; List <RosterDetail> rosterDetails = RosterDetailService.GetIndexSpecific(SpecificEntries); VMRosterApplication vmRotaApp = GetRosterApplication(rosterDetails, rosterApp, vm); rosterApp.DateEnded = vm.EndDate; RosterApplicationService.PostEdit(rosterApp); return(CalculateRosterFields(vmRotaApp, rosterApp.RotaAppID)); }
public ActionResult RosterDelete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } VMRosterApplication vm = new VMRosterApplication(); vm.RotaApplD = (int)id; //DeleteRoster((int)id); return(View("Delete", vm)); }
public VMRosterModel PostCreate1(VMRosterApplication vm, VMLoggedUser LoggedInUser) { //Saves the entry in the database table RosterApplication RosterApplication ra = new RosterApplication() { DateStarted = vm.DateStarted, DateEnded = vm.DateEnded, DateCreated = DateTime.Now, RosterCriteria = "C", CriteriaData = vm.CrewID, RotaTypeID = (byte)vm.RosterTypeID, Status = true, ShiftID = (byte)vm.ShiftID, UserID = LoggedInUser.PUserID }; RosterApplicationService.PostCreate(ra); return(CalculateRosterFields(vm, ra.RotaAppID)); }
public ActionResult Delete(VMRosterApplication obj) { RosterApplication RApp = new RosterApplication(); //User uid = new User(); RApp = RosterApplicationService.GetEdit(obj.RotaApplD); try { Expression <Func <RosterDetail, bool> > SpecificEntries = c => c.RosterAppID == obj.RotaApplD; List <RosterDetail> RAppDetail = RosterDetailService.GetIndexSpecific(SpecificEntries); foreach (var item in RAppDetail) { RosterDetailService.PostDelete(item); } } catch (Exception) { throw; } RosterApplicationService.PostDelete(RApp); return(RedirectToAction("Index")); }
public ActionResult Create1(VMRosterApplication obj) { List <string> ValidationError = new List <string>(); // check for validation Expression <Func <RosterApplication, bool> > SpecificEntries = item => obj.DateStarted <item.DateEnded && item.DateEnded> item.DateStarted && item.CriteriaData == obj.CrewID; List <RosterApplication> tempVM = RosterApplicationService.GetIndexSpecific(SpecificEntries); if (tempVM.Count > 0) { ValidationError.Add("Rosters already created with same criteria"); } if (ValidationError.Count == 0) { VMLoggedUser LoggedInUser = Session["LoggedInUser"] as VMLoggedUser; VMRosterModel vm = RosterService.PostCreate1(obj, LoggedInUser); return(View("Create2", vm)); } else { ViewBag.ErrorList = ValidationError.ToList(); CreateHelper(); return(View("Create1", obj)); } }
private int GetWorkMinutesForSpecificDates(DateTime startDate, VMRosterApplication vm) { int workMin = 0; switch (startDate.DayOfWeek) { case DayOfWeek.Monday: workMin = vm.MonMin; break; case DayOfWeek.Tuesday: workMin = vm.TueMin; break; case DayOfWeek.Wednesday: workMin = vm.WedMin; break; case DayOfWeek.Thursday: workMin = vm.ThruMin; break; case DayOfWeek.Friday: workMin = vm.FriMin; break; case DayOfWeek.Saturday: workMin = vm.SatMin; break; case DayOfWeek.Sunday: workMin = vm.SunMin; break; } return(workMin); }
private string GetShiftStartTimeString(DayOfWeek dayOfWeek, VMRosterApplication vm) { string time = "0000"; switch (dayOfWeek) { case DayOfWeek.Monday: time = vm.MonStartTime; break; case DayOfWeek.Tuesday: time = vm.TueStartTime; break; case DayOfWeek.Wednesday: time = vm.WedStartTime; break; case DayOfWeek.Thursday: time = vm.ThruStartTime; break; case DayOfWeek.Friday: time = vm.FriStartTime; break; case DayOfWeek.Saturday: time = vm.SatStartTime; break; case DayOfWeek.Sunday: time = vm.SunStartTime; break; } return(time); }