public async Task <SheriffLeave> UpdateSheriffLeave(SheriffLeave sheriffLeave) { _db.SheriffLeave.Update(sheriffLeave); await _db.SaveChangesAsync(); return(sheriffLeave); }
public async Task <SheriffLeave> UpdateSheriffLeave(SheriffLeave sheriffLeave) { ValidateStartAndEndDates(sheriffLeave.StartDate, sheriffLeave.EndDate); await ValidateSheriffExists(sheriffLeave.SheriffId); var savedLeave = await Db.SheriffLeave.FindAsync(sheriffLeave.Id); savedLeave.ThrowBusinessExceptionIfNull( $"{nameof(SheriffLeave)} with the id: {sheriffLeave.Id} could not be found. "); if (savedLeave.ExpiryDate.HasValue) { throw new BusinessLayerException($"{nameof(SheriffLeave)} with the id: {sheriffLeave.Id} has been expired"); } await ValidateNoOverlapAsync(sheriffLeave, sheriffLeave.Id); Db.Entry(savedLeave).CurrentValues.SetValues(sheriffLeave); Db.Entry(savedLeave).Property(x => x.SheriffId).IsModified = false; Db.Entry(savedLeave).Property(x => x.ExpiryDate).IsModified = false; Db.Entry(savedLeave).Property(x => x.ExpiryReason).IsModified = false; await Db.SaveChangesAsync(); return(savedLeave); }
public async Task <int> AddSheriffLeave(SheriffLeave sheriffLeave) { await _db.SheriffLeave.AddAsync(sheriffLeave); await _db.SaveChangesAsync(); return(sheriffLeave.Id); }
public async Task <SheriffLeave> AddSheriffLeave(SheriffLeave sheriffLeave) { ValidateStartAndEndDates(sheriffLeave.StartDate, sheriffLeave.EndDate); await ValidateSheriffExists(sheriffLeave.SheriffId); await ValidateNoOverlapAsync(sheriffLeave); sheriffLeave.LeaveType = await Db.LookupCode.FindAsync(sheriffLeave.LeaveTypeId); sheriffLeave.Sheriff = await Db.Sheriff.FindAsync(sheriffLeave.SheriffId); await Db.SheriffLeave.AddAsync(sheriffLeave); await Db.SaveChangesAsync(); return(sheriffLeave); }
public async Task <SheriffLeave> AddSheriffLeave(DutyRosterService dutyRosterService, ShiftService shiftService, SheriffLeave sheriffLeave, bool overrideConflicts) { ValidateStartAndEndDates(sheriffLeave.StartDate, sheriffLeave.EndDate); await ValidateSheriffExists(sheriffLeave.SheriffId); await ValidateNoOverlapAsync(dutyRosterService, shiftService, sheriffLeave, overrideConflicts); sheriffLeave.LeaveType = await Db.LookupCode.FindAsync(sheriffLeave.LeaveTypeId); sheriffLeave.Sheriff = await Db.Sheriff.FindAsync(sheriffLeave.SheriffId); await Db.SheriffLeave.AddAsync(sheriffLeave); await Db.SaveChangesAsync(); return(sheriffLeave); }