public async Task <ActionResult <Travel> > JoinTravels(int id, [FromBody] JoinTravelRequest request) { try { var travel = await _travelRepository.FindById(request.Id); var employeeTravels = await _employeeTravelRepository.FindByTravelId(request.Id); var travelMain = await _travelRepository.FindById(id); if (Math.Abs((travel.StartTime - travelMain.StartTime).Days) <= 1) { foreach (var employeeTravel in employeeTravels) { employeeTravel.Travel = travelMain; await _employeeTravelRepository.Update(employeeTravel); } await _travelRepository.Delete(travel); return(Ok()); } else { return(Conflict("Too different start dates")); } } catch (ArgumentException e) { return(Conflict(e.Message)); } catch (InvalidOperationException e) { return(Conflict(e.Message)); } }