public async Task Resign(string staffId, DateTime?lastWorkingDay) { if (Config.AutomaticFlightRequestResignation != true) { return; } var staff = _staffRepo.GetByStaffId(staffId); if (staff == null) { Logger.Warning("Could not find staff with staffId, aborting send resign to f2w", new { staffId }); return; } DateTime?dateOfBirth = null; DateTime d2; bool success = DateTime.TryParse(staff.DateOfBirth, out d2); if (success) { dateOfBirth = d2; } var currentPositionAssign = _positionRepo.GetCtxResignModel(staff.StaffID); SendModel resign = new SendModel { Id = staff.StaffID, FirstName = staff.FirstName, LastName = staff.LastName, LastName2 = staff.LastName2, DateOfBirth = dateOfBirth, SourceMarket = staff.SourceMarket, Gender = staff.Title, Phone = staff.PhoneHome, PositionStart = currentPositionAssign?.StartDate, Destination = currentPositionAssign?.Destination, JobTitle = currentPositionAssign?.JobTitle, Direction = "Departing", IataCode = currentPositionAssign?.IataCode, PositionAssignId = currentPositionAssign?.Id, TypeOfFlight = "Resignation", ConfirmedFlightDate = currentPositionAssign?.ConfirmedFlightDate, YearRound = currentPositionAssign?.Season == "YR" }; Uri uri = new Uri($"{Config.CtxEndpoint}/staff/resign/basic"); var req = new { originalStaffId = staffId, lastWorkingDay, resign }; var result = await _f2wRestClient.Post <List <ResignFlightRequestResultModel>, dynamic>(uri, req); var user = _userRepo.GetUser(); if (!result.Succeeded) { Logger.Warning("Could not delete flight requests for resigned staff", new { staffId, result, user }); } else { if (result.Data.Any(m => m.ok == false)) { Logger.Warning("Could not delete one or more flight requests for resigned staff", new { staffId, result, user }); } else { Logger.Info("Successfully resigned staff in f2w", new { staffId, result, user }); } } }