public async Task <IActionResult> Edit(int id, [Bind("Id,Created,StartDateTime,EndDateTime,JobType,JobCapacity")] BarcoJob barcoJob) { if (id != barcoJob.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(barcoJob); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BarcoJobExists(barcoJob.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(barcoJob)); }
public static BarcoMember GetMemberForJob(BarcoJob barcoJob, List <BarcoMember> membersPool) { BarcoMember selectedMember = null; foreach (var member in membersPool) { bool memberAlreadyInJob = false; foreach (var shift in barcoJob.Shifts) { if (shift.BarcoMember.UserName == member.UserName) { memberAlreadyInJob = true; break; } } if (!memberAlreadyInJob) { selectedMember = member; } } if (selectedMember != null) { membersPool.Remove(selectedMember); } return(selectedMember); }
public async Task <IActionResult> Create([Bind("Id,WorkPackageId,Created,StartDateTime,EndDateTime,JobType,JobCapacity")] BarcoJob barcoJob) { if (ModelState.IsValid) { _context.Add(barcoJob); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(barcoJob)); }
public BarcoJobViewModel(BarcoJob job) { Id = job.Id; Date = job.StartDateTime.Day; MonthCode = job.StartDateTime.ToString("MMM"); Shifts = job.Shifts.Where(s => s.ShiftStatus != ShiftStatus.Cancelled).Select(s => new BarcoShiftViewModel(s)).ToList(); NumberOfFilledShifts = Shifts.Count; JobCapacity = job.JobCapacity; JobType = job.JobType; OpeningTime = job.StartDateTime.ToString("HH:mm"); ClosingTime = job.EndDateTime.ToString("HH:mm"); }
public DaySummaryViewModel(DateTime date, BarcoJob job) { Date = date.Day; MonthCode = date.ToString("MMM"); if (job == null) { IsOpen = false; } else { IsOpen = true; JobType = job.JobType; Shifts = job.Shifts.Select(s => new BarcoShiftViewModel(s)).ToList(); } }
public static BarcoShift AddShift(BarcoJob job, BarcoMember member) { if (job.Shifts.Count < job.JobCapacity) { var shift = new BarcoShift { BarcoMember = member, ShiftStatus = ShiftStatus.Planned, BarcoJob = job }; job.Shifts.Add(shift); return(shift); } else { return(null); } }
private void PushShift(BarcoShift shift, BarcoJob job) { var dueInterval = TimeSpan.FromHours(10); if (shift.ShiftStatus == ShiftStatus.Planned && DateTime.Now > job.StartDateTime - dueInterval) { //notify NotifyDueShifts(shift); shift.ShiftStatus = ShiftStatus.Notified; } else if (shift.ShiftStatus == ShiftStatus.Started && job.EndDateTime < DateTime.Now) { //close it shift.ShiftStatus = ShiftStatus.Worked; } else if (shift.ShiftStatus == ShiftStatus.Planned && job.EndDateTime < DateTime.Now) { //fail it shift.ShiftStatus = ShiftStatus.UnWorked; } }
public BarcoShiftViewModel(BarcoShift shift, BarcoJob job) : this(shift) { Date = job.StartDateTime.Day; MonthCode = job.StartDateTime.ToString("MMM"); }