Exemple #1
0
        /// <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;
		}