Light12306/TrainInfomationProviderService/TrainInfo/Entities/TrainTransitSearchOptions.cs
2014-12-01 02:17:47 +08:00

73 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TrainInfomationProviderService.TrainInfo.Entities
{
public class TrainTransitSearchOptions
{
/// <summary>
/// 最大允许多出来的时间
/// </summary>
public int MaxExtraMinutes { get; set; }
/// <summary>
/// 最优先推荐的线路数
/// </summary>
public int TopMostRecommandCount { get; set; }
public void InitLimit(int baseMinutes)
{
if (baseMinutes < 120)
{
//2小时内的车最大允许到6小时
MaxExtraMinutes = baseMinutes*3;
}
else if (baseMinutes < 180)
{
MaxExtraMinutes = (int)(baseMinutes * 2.5);
}
else if (baseMinutes < 300)
{
MaxExtraMinutes = (int)(baseMinutes * 2);
}
else if (baseMinutes < 900)
{
MaxExtraMinutes = (int)(baseMinutes * 1.5);
}
else
{
MaxExtraMinutes = (int)(baseMinutes * 1.3);
}
}
/// <summary>
/// 同一个车次最高保持的换乘站数
/// </summary>
public int SameLineMaxKeepStations { get; set; }
/// <summary>
/// 当换乘线路数超过此数目时,砍掉超过时间的
/// </summary>
public int StartCutLongRunningCount { get; set; }
/// <summary>
/// 砍掉超过时间比例
/// </summary>
public double CutLongRunningRate { get; set; }
/// <summary>
/// 创建 <see cref="TrainTransitSearchOptions" /> 的新实例(TrainTransitSearchOptions)
/// </summary>
public TrainTransitSearchOptions()
{
SameLineMaxKeepStations = 3;
CutLongRunningRate = 1.7;
StartCutLongRunningCount = 5;
TopMostRecommandCount = 16;
}
}
}