/// <summary> /// Получение предпочитаемого места для определённого сегмента /// </summary> /// <param name="segNum">Номер сегмента(нумерация с 1)</param> /// <returns>Предпочитаемое место для указанного сегмента</returns> public PreferedPlace GetPlaceForSegNum(int segNum) { if (PreferedPlaces != null) { return(PreferedPlaces.Find(pp => pp.SegNumber == segNum)); } else { return(null); } }
/// <summary> /// Выполняет модификацию хранимой информации о предпочитаемых местах пассажира /// </summary> /// <param name="placeInfo">Новая информация о предпочитаемых местах</param> /// <param name="specificPlaceModified">Ассоциативный массив индикаторов какие из мест были модифицированы</param> public void ModifyPlaceInfo(List <TravellerPreferedPlace> placeInfo, Dictionary <int, bool> specificPlaceModified) { PreferedPlace tmpPlace, oldPlaceInfo; if (placeInfo != null && placeInfo.Count > 0) { foreach (TravellerPreferedPlace newPlaceInfo in placeInfo) { if (PreferedPlaces == null) { PreferedPlaces = new List <PreferedPlace>(); } //находим старую информацию о предпочитаемом месте oldPlaceInfo = PreferedPlaces.Find(place => place.SegNumber == newPlaceInfo.SegNum); //если есть новая информация о неконкретном (не через карту мест) предпочитаемом месте if (newPlaceInfo.NewNotSpecificPlace != null) { if (oldPlaceInfo != null) { oldPlaceInfo.SmokingAllowed = newPlaceInfo.NewNotSpecificPlace.SmokingAllowed; oldPlaceInfo.Location = newPlaceInfo.NewNotSpecificPlace.Location; } else { tmpPlace = new PreferedPlace(); tmpPlace.SmokingAllowed = newPlaceInfo.NewNotSpecificPlace.SmokingAllowed; tmpPlace.Location = newPlaceInfo.NewNotSpecificPlace.Location; PreferedPlaces.Add(tmpPlace); } } //если есть новая информация о конкретном месте и оно было модифицировано if (newPlaceInfo.NewSpecificPlace != null && specificPlaceModified[newPlaceInfo.SegNum]) { if (oldPlaceInfo != null) { oldPlaceInfo.PlaceNumber = newPlaceInfo.NewSpecificPlace.PlaceNumber; oldPlaceInfo.RowNumber = newPlaceInfo.NewSpecificPlace.RowNumber; } else { tmpPlace = new PreferedPlace(); tmpPlace.PlaceNumber = newPlaceInfo.NewSpecificPlace.PlaceNumber; tmpPlace.RowNumber = newPlaceInfo.NewSpecificPlace.RowNumber; PreferedPlaces.Add(tmpPlace); } } } } }