/// <summary> /// Выполняет полное копирование объекта, реализация интерфейса ICloneable /// </summary> /// <returns>Результат копирования</returns> public object Clone() { var result = new FlightSearchRQBody(); result.MultiOWRequestedSegmentNumber = MultiOWRequestedSegmentNumber; result.RequestedFlightInfo = new FlightDirection(); result.RequestedFlightInfo.ODPairs = new FlightPairList(); result.Passengers = new List <Passenger>(); result.RequestedFlightInfo.AroundDates = RequestedFlightInfo.AroundDates; result.RequestedFlightInfo.Direct = RequestedFlightInfo.Direct; result.RequestedFlightInfo.Type = RequestedFlightInfo.Type; result.RequestedFlightInfo.SubType = RequestedFlightInfo.SubType; foreach (var seg in RequestedFlightInfo.ODPairs) { result.RequestedFlightInfo.ODPairs.Add(seg.FullCopy()); } foreach (var pass in Passengers) { var tmpPass = new Passenger(); tmpPass.Count = pass.Count; tmpPass.Type = pass.Type; result.Passengers.Add(tmpPass); } if (Restrictions != null) { result.Restrictions = new AdditionalSearchInfo(); result.Restrictions.ClassPref = Restrictions.ClassPref; result.Restrictions.CurrencyCode = Restrictions.CurrencyCode; result.Restrictions.PrivateFaresOnly = Restrictions.PrivateFaresOnly; result.Restrictions.SourcePreference = Restrictions.SourcePreference; if (Restrictions.CompanyFilter != null) { result.Restrictions.CompanyFilter = new List <Company>(); foreach (var oldComp in Restrictions.CompanyFilter) { var comp = new Company(); comp.Code = oldComp.Code; comp.Include = oldComp.Include; comp.SegmentNumber = oldComp.SegmentNumber; result.Restrictions.CompanyFilter.Add(comp); } } } return(result); }
/// <summary> /// Выполняет полное копирование объекта, реализация интерфейса ICloneable /// </summary> /// <returns>Результат копирования</returns> public object Clone() { var result = new FlightSearchRQBody(); result.MultiOWRequestedSegmentNumber = MultiOWRequestedSegmentNumber; result.RequestedFlightInfo = new FlightDirection(); result.RequestedFlightInfo.ODPairs = new FlightPairList(); result.Passengers = new List<Passenger>(); result.RequestedFlightInfo.AroundDates = RequestedFlightInfo.AroundDates; result.RequestedFlightInfo.Direct = RequestedFlightInfo.Direct; result.RequestedFlightInfo.Type = RequestedFlightInfo.Type; result.RequestedFlightInfo.SubType = RequestedFlightInfo.SubType; foreach (var seg in RequestedFlightInfo.ODPairs) { result.RequestedFlightInfo.ODPairs.Add(seg.FullCopy()); } foreach (var pass in Passengers) { var tmpPass = new Passenger(); tmpPass.Count = pass.Count; tmpPass.Type = pass.Type; result.Passengers.Add(tmpPass); } if (Restrictions != null) { result.Restrictions = new AdditionalSearchInfo(); result.Restrictions.ClassPref = Restrictions.ClassPref; result.Restrictions.CurrencyCode = Restrictions.CurrencyCode; result.Restrictions.PrivateFaresOnly = Restrictions.PrivateFaresOnly; result.Restrictions.SourcePreference = Restrictions.SourcePreference; if (Restrictions.CompanyFilter != null) { result.Restrictions.CompanyFilter = new List<Company>(); foreach (var oldComp in Restrictions.CompanyFilter) { var comp = new Company(); comp.Code = oldComp.Code; comp.Include = oldComp.Include; comp.SegmentNumber = oldComp.SegmentNumber; result.Restrictions.CompanyFilter.Add(comp); } } } return result; }