/// <summary>
        /// Returns a name identifying the method.
        /// </summary>
        /// <returns>The name of the method.</returns>
        public override string GetMethodName()
        {
            if (!string.IsNullOrWhiteSpace(Name))
            {
                return(Name);
            }
            string name = "taCR" +
                          PickBotRatio.ToString(IOConstants.EXPORT_FORMAT_SHORTER, IOConstants.FORMATTER) +
                          (OnTheFlyExtract ? "t" : "f") +
                          (OnTheFlyStore ? "t" : "f");

            name += PodSelectionConfig != null?PodSelectionConfig.GetMethodName() : "";

            switch (RestLocationOrderType)
            {
            case PrefRestLocationForBot.Random: name += "r"; break;

            case PrefRestLocationForBot.RandomSameTier: name += "t"; break;

            case PrefRestLocationForBot.Middle: name += "c"; break;

            case PrefRestLocationForBot.MiddleSameTier: name += "m"; break;

            case PrefRestLocationForBot.Nearest: name += "n"; break;

            default: throw new ArgumentException("Unexpected argument!");
            }
            return(name);
        }
        /// <summary>
        /// Returns a name identifying the method.
        /// </summary>
        /// <returns>The name of the method.</returns>
        public override string GetMethodName()
        {
            if (!string.IsNullOrWhiteSpace(Name))
            {
                return(Name);
            }
            string name = "taBA" +
                          WeightInputStations.ToString(IOConstants.EXPORT_FORMAT_SHORTER, IOConstants.FORMATTER) +
                          WeightOutputStations.ToString(IOConstants.EXPORT_FORMAT_SHORTER, IOConstants.FORMATTER) +
                          WeightRepositioning.ToString(IOConstants.EXPORT_FORMAT_SHORTER, IOConstants.FORMATTER) +
                          (ExtendSearch ? "t" : "f") +
                          (SearchAll ? "t" : "f") +
                          (RepositionBeforeRest ? "t" : "f") +
                          BotsPerStationLimit.ToString();

            name += PodSelectionConfig.GetMethodName();
            switch (RestLocationOrderType)
            {
            case PrefRestLocationForBot.Random: name += "r"; break;

            case PrefRestLocationForBot.RandomSameTier: name += "t"; break;

            case PrefRestLocationForBot.Middle: name += "c"; break;

            case PrefRestLocationForBot.MiddleSameTier: name += "m"; break;

            case PrefRestLocationForBot.Nearest: name += "n"; break;

            default: throw new ArgumentException("Unexpected argument!");
            }
            return(name);
        }