/// <summary>
        /// Обновить Хуету
        /// </summary>
        public async Task <TripOnRouteWithStationsDto> UpdateTripOnRoute(TripOnRouteWithStationsDto input)
        {
            await CompareDaysFromTurnover(input);

            //Начинаем транзакцию
            using (var transaction = new TransactionScope(asyncFlowOption: TransactionScopeAsyncFlowOption.Enabled))
            {
                var sqlRStationOnTrip = new StantionOnTripsRepository(_logger);
                var sqlRDaysOfTrip    = new DayOfTripsRepoisitory(_logger);
                //var sqlRStationOnTripNoTransaction = new StantionOnTripsRepository(_logger);
                //Удаляем лишние станции нахуй, если есть
                var stations = await sqlRStationOnTrip.ByTripId(input.TripWithDateTimeStations.Id);

                foreach (var station in stations)
                {
                    if (input.TripWithDateTimeStations.StantionOnTripsWithStringTime.Any(e => e.Id == station.Id))
                    {
                        continue;
                    }
                    sqlRStationOnTrip.Delete(station.Id);
                }

                var currentDaysOfTrip = await sqlRDaysOfTrip.DaysByTripId(input.TripId);

                var currentDays = currentDaysOfTrip.Select(x => x.Day).ToList();
                foreach (var day in input.Days)
                {
                    if (currentDays.Contains(day))
                    {
                        await sqlRDaysOfTrip.Add(new DayOfTrip { TripId = input.TripId, Day = day });

                        currentDays.Remove(day);
                    }
                }
                if (currentDays.Count > 0)
                {
                    foreach (var currentDay in currentDays)
                    {
                        var toRemove = currentDaysOfTrip.FirstOrDefault(x => x.Day.Equals(currentDay));
                        await sqlRDaysOfTrip.Delete(toRemove.Id);
                    }
                }

                var sqlRTripOnRoute = new TripsOnRouteRepository(_logger);

                var newTripOnRoute =
                    await sqlRTripOnRoute.Update(_mapper.Map <TripOnRouteWithStationsDto, TripOnRoute>(input));

                var result = _mapper.Map <TripOnRoute, TripOnRouteWithStationsDto>(newTripOnRoute);
                result.TripWithDateTimeStations = new TripWithDateTimeStations
                {
                    StantionOnTripsWithStringTime = new List <StationOnTripWithStringDateTime>()
                };

                foreach (var item in input.TripWithDateTimeStations.StantionOnTripsWithStringTime)
                {
                    var stationOnTrip =
                        await sqlRStationOnTrip.Update(
                            _mapper.Map <StationOnTripWithStringDateTime, StantionOnTrip>(item));

                    result.TripWithDateTimeStations.StantionOnTripsWithStringTime.Add(
                        _mapper.Map <StantionOnTrip, StationOnTripWithStringDateTime>(item));
                }

                transaction.Complete();
                return(result);
            }
        }