public async Task <bool> ProposeShiftDaysForTradeAsync(int shiftTradeId, string userId, string reason, List <int> signups, CancellationToken cancellationToken = default(CancellationToken)) { var trade = await GetShiftTradeByIdAsync(shiftTradeId); var userTradeRequest = trade.Users.FirstOrDefault(x => x.UserId == userId); if (userTradeRequest != null) { userTradeRequest.Reason = reason; userTradeRequest.Offered = true; await _shiftSignupTradeUserRepository.SaveOrUpdateAsync(userTradeRequest, cancellationToken); if (signups != null && signups.Any()) { var shiftSignups = new List <ShiftSignupTradeUserShift>(); foreach (var i in signups) { var signup = await GetShiftSignupByIdAsync(i); if (signup != null) { var shift = new ShiftSignupTradeUserShift(); shift.ShiftSignupTradeUserId = userTradeRequest.ShiftSignupTradeUserId; shift.ShiftSignupId = signup.ShiftSignupId; shiftSignups.Add(shift); } } if (shiftSignups.Any()) { foreach (var shiftSignup in shiftSignups) { await _shiftSignupTradeUserShiftsRepository.SaveOrUpdateAsync(shiftSignup, cancellationToken); } } } return(true); } return(false); }
public void ProposeShiftDaysForTrade(int shiftTradeId, string userId, string reason, List <int> signups) { var trade = GetShiftTradeById(shiftTradeId); var userTradeRequest = trade.Users.FirstOrDefault(x => x.UserId == userId); if (userTradeRequest != null) { userTradeRequest.Reason = reason; userTradeRequest.Offered = true; _shiftSignupTradeUserRepository.SaveOrUpdate(userTradeRequest); if (signups != null && signups.Any()) { var shiftSignups = new List <ShiftSignupTradeUserShift>(); foreach (var i in signups) { var signup = GetShiftSignupById(i); if (signup != null) { var shift = new ShiftSignupTradeUserShift(); shift.ShiftSignupTradeUserId = userTradeRequest.ShiftSignupTradeUserId; shift.ShiftSignupId = signup.ShiftSignupId; shiftSignups.Add(shift); } } if (shiftSignups.Any()) { _shiftSignupTradeUserShiftsRepository.SaveOrUpdateAll(shiftSignups); } } } }