public ApiResponse ScheduleFlight(SchduleFlightRequest request)
        {
            if (request.PilotId == 0)
            {
                return(new ApiResponse(Errors.PilotId_InValid));
            }

            if (!Helper.IsDepartureAndReturnDateValid(request.DepDateTime, request.ReturnDateTime))
            {
                return(new ApiResponse(Errors.DepatureOrReturn_DateTime_InValid));
            }

            var pilotList = _repository.GetPilotList();

            if (pilotList == null || pilotList.Crew.Count == 0)
            {
                return(new ApiResponse(Errors.Database_error));
            }

            var flightList = _repository.GetFlightList();

            if (flightList == null || flightList.Flight.Count == 0)
            {
                return(new ApiResponse(Errors.Database_error));
            }

            var day          = Helper.GetDayOfWeek(request.DepDateTime);
            var pilotMatched = pilotList.Crew.Any(x => x.ID == request.PilotId && x.WorkDays.Any(y => y.Contains(day)));

            if (!pilotMatched)
            {
                return(new ApiResponse(Errors.Pilot_Not_Found));
            }

            var flightExist = flightList.Flight.Any(x => x.PilotId == request.PilotId && x.DepDateTime.Equals(request.DepDateTime) && x.ReturnDateTime.Equals(request.ReturnDateTime));

            if (flightExist)
            {
                return(new ApiResponse(Errors.Pilot_Schduled_Already));
            }

            flightList.Flight.Add(new Flight {
                PilotId = request.PilotId, DepDateTime = request.DepDateTime, ReturnDateTime = request.ReturnDateTime
            });
            _repository.ScheduleFlight(flightList);

            var response = new ScheduleFlightResponse()
            {
                PilotId        = request.PilotId,
                DepDateTime    = request.DepDateTime,
                ReturnDateTime = request.ReturnDateTime
            };

            return(new ApiResponse()
            {
                Result = response
            });
        }
        public async Task <IActionResult> SchduleFlight([FromBody] SchduleFlightRequest request)
        {
            var res = _services.ScheduleFlight(request);

            return(Ok(res));
        }