Example #1
0
        public async Task <SheriffLeave> UpdateSheriffLeave(SheriffLeave sheriffLeave)
        {
            _db.SheriffLeave.Update(sheriffLeave);
            await _db.SaveChangesAsync();

            return(sheriffLeave);
        }
Example #2
0
        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);
        }
Example #3
0
        public async Task <int> AddSheriffLeave(SheriffLeave sheriffLeave)
        {
            await _db.SheriffLeave.AddAsync(sheriffLeave);

            await _db.SaveChangesAsync();

            return(sheriffLeave.Id);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }