sync project

This commit is contained in:
木魚 2014-12-08 01:06:01 +08:00
parent b47ced3c62
commit 58cd60daf9
10 changed files with 180 additions and 124 deletions

View File

@ -103,27 +103,27 @@ namespace TrainInfomationProviderService
SameStationManager.Init();
TrainInfoSearchProvider.Instance.Init();
//if (!RunTimeContext.IsWeb)
//{
// //搜索?
// var searchProvider = TrainInfoSearchProvider.Instance;
// //var lines = searchProvider.FindDirectTrains(DateTime.Parse("2014-12-12"), "NVH", "JJG").ToArray();
// //var maxTimeRage = lines.Max(s => s.CalculatedMinutesBase);
if (!RunTimeContext.IsWeb)
{
//搜索?
var searchProvider = TrainInfoSearchProvider.Instance;
//var lines = searchProvider.FindDirectTrains(DateTime.Parse("2014-12-12"), "NVH", "JJG").ToArray();
//var maxTimeRage = lines.Max(s => s.CalculatedMinutesBase);
// var opt = new TrainTransitSearchOptions();
// opt.InitLimit(999999);
// var altLines = searchProvider.FindOnceTransitTrains(DateTime.Parse("2015-02-23"), "BJP", "CSQ", opt).ToArray();
var opt = new TrainTransitSearchOptions();
opt.InitLimit(999999);
var altLines = searchProvider.FindOnceTransitTrains(DateTime.Parse("2015-01-29"), "NVH", "JJG", opt).ToArray();
// //var availableLines = lines.Select(s => s.Train.Code + "," + s.FromStation.Name + "," + s.ToStation.Name + "," + s.ElapsedTime).ToArray();
// Array.ForEach(altLines.Select(s =>
// s.First.Train.Code + "," + s.First.FromStation.Name + "," + s.First.ToStation.Name + "," + s.First.From.Left.Value + " - " + s.First.To.Arrive.Value + " / " + s.First.ElapsedTime
// + " -> " + s.Second.Train.Code + "," + s.Second.FromStation.Name + "," + s.Second.ToStation.Name + "," + s.Second.From.Left.Value + " - " + s.Second.To.Arrive.Value + " / " + s.Second.ElapsedTime + " / 等待 " + s.WaitElaspsedTime + " / 总耗时 " + s.TotalElapsedTime
// + (s.NotRecommand ? " / 不推荐" : "")
// ).ToArray(), _ => Trace.TraceInformation(_));
//var availableLines = lines.Select(s => s.Train.Code + "," + s.FromStation.Name + "," + s.ToStation.Name + "," + s.ElapsedTime).ToArray();
Array.ForEach(altLines.Select(s =>
s.First.Train.Code + "," + s.First.FromStation.Name + "," + s.First.ToStation.Name + "," + s.First.From.Left.Value + " - " + s.First.To.Arrive.Value + " / " + s.First.ElapsedTime
+ " -> " + s.Second.Train.Code + "," + s.Second.FromStation.Name + "," + s.Second.ToStation.Name + "," + s.Second.From.Left.Value + " - " + s.Second.To.Arrive.Value + " / " + s.Second.ElapsedTime + " / 等待 " + s.WaitElaspsedTime + " / 总耗时 " + s.TotalElapsedTime
+ (s.NotRecommand ? " / 不推荐" : "")
).ToArray(), _ => Trace.TraceInformation(_));
// //runtime mode
// MessageBox.Show(StationManager.Instance.Storage.Version.ToString());
//}
//runtime mode
MessageBox.Show(StationManager.Instance.Storage.Version.ToString());
}
}
}
}

View File

@ -66,7 +66,11 @@ namespace TrainInfomationProviderService.TrainInfo.Entities
}
[OnDeserialized]
void Init(StreamingContext ctx)
internal void Init(StreamingContext ctx)
{
Init();
}
internal void Init()
{
TrainStopMap = TrainStops == null ? null : TrainStops.Where(s => !string.IsNullOrEmpty(s.Code)).ToDictionary(s => s.Code, StringComparer.OrdinalIgnoreCase);
}

View File

@ -9,6 +9,8 @@ using TrainInfomationProviderService.TrainInfo.Entities;
namespace TrainInfomationProviderService.TrainInfo
{
using Newtonsoft.Json;
public class TrainInfoSearchProvider
{
#region
@ -125,34 +127,59 @@ namespace TrainInfomationProviderService.TrainInfo
var toStop = FindStop(toTrain, to);
foreach (var tStop in toTrain.TrainStops.TakeWhile(x => toStop != x).Where(s => s != null && !string.IsNullOrEmpty(s.Code)))
{
if (fstop.Code == tStop.Code)
try
{
var firstTrain = new TrainLineSegment(fromTrain, startStop, fstop, date);
var secondTrain = new TrainLineSegment(toTrain, tStop, toStop, firstTrain.ArriveTime);
//一个中转点
var line = new TrainTransitOnceResult(
firstTrain,
secondTrain,
date
);
result.Add(line);
break;
if (fstop.Code == tStop.Code)
{
var firstTrain = new TrainLineSegment(fromTrain, startStop, fstop, date);
var secondTrain = new TrainLineSegment(toTrain, tStop, toStop, firstTrain.ArriveTime);
//一个中转点
var line = new TrainTransitOnceResult(
firstTrain,
secondTrain,
date
);
result.Add(line);
break;
}
if (IsStopInclude(fstop.Code, tStop.Code))
{
var firstTrain = new TrainLineSegment(fromTrain, startStop, fstop, date);
var secondTrain = new TrainLineSegment(toTrain, tStop, toStop, firstTrain.ArriveTime);
//一个中转点
var line = new TrainTransitOnceResult(
firstTrain,
secondTrain,
date,
true
);
result.Add(line);
break;
}
}
if (IsStopInclude(fstop.Code, tStop.Code))
catch (Exception ex)
{
var firstTrain = new TrainLineSegment(fromTrain, startStop, fstop, date);
var secondTrain = new TrainLineSegment(toTrain, tStop, toStop, firstTrain.ArriveTime);
//一个中转点
var line = new TrainTransitOnceResult(
firstTrain,
secondTrain,
date,
true
);
result.Add(line);
break;
var msg = new StringBuilder(0x400);
msg.AppendLine("无法创建检测,错误信息:" + ex.ToString() + "\r\n\r\n相关数据\r\n=====================\r\n");
msg.Append("前车:");
msg.AppendLine(fromTrain == null ? "null" : JsonConvert.SerializeObject(fromTrain));
msg.Append("前车发站:");
msg.AppendLine(startStop == null ? "null" : JsonConvert.SerializeObject(startStop));
msg.Append("前车到站:");
msg.AppendLine(fstop == null ? "null" : JsonConvert.SerializeObject(fstop));
msg.Append("后车:");
msg.AppendLine(toTrain == null ? "null" : JsonConvert.SerializeObject(toTrain));
msg.Append("后车发站:");
msg.AppendLine(tStop == null ? "null" : JsonConvert.SerializeObject(tStop));
msg.Append("后车到站:");
msg.AppendLine(toStop == null ? "null" : JsonConvert.SerializeObject(toStop));
msg.Append("前车发站:");
msg.AppendLine(startStop == null ? "null" : JsonConvert.SerializeObject(startStop));
throw new Exception(msg.ToString(), ex);
}
}
}
}
}

View File

@ -15,6 +15,8 @@ using TrainInfomationProviderService.TrainInfo.Entities;
namespace TrainInfomationProviderService.TrainInfo
{
using System.Runtime.Serialization;
class WebDataProvider
{
class TrainListInfoItem
@ -127,6 +129,8 @@ namespace TrainInfomationProviderService.TrainInfo
{
curStorage = new TrainInfoStorage();
curStorage.Init();
curStorage.InitStationTrainData();
indexStorage.TrainInfoStorages.Add(date, curStorage);
}
var allkeys = curStorage.Trains.Select(s => s.Key).ToHashSet(StringComparer.OrdinalIgnoreCase);
@ -154,6 +158,7 @@ namespace TrainInfomationProviderService.TrainInfo
if (curStorage.HashStore.Contains(train.TrainHash))
continue;
train.Init();
curStorage.HashStore.Add(train.TrainHash);
TrainInfoManager.Instance.DataStore.TrainData.AddOrUpdate(train.TrainHash, train);
}

View File

@ -11,6 +11,8 @@ using TrainInfomationProviderService.TrainInfo.Entities;
namespace TrainInfomationProviderService.Web.Controllers
{
using System.IO;
public class TransitController : Controller
{
#region Overrides of Controller
@ -100,12 +102,25 @@ namespace TrainInfomationProviderService.Web.Controllers
if (date < DateTime.Now.Date || date > DateTime.Now.Date.AddDays(59))
return Json(new { ret = false, msg = "request paramter out of range." }, JsonRequestBehavior.AllowGet);
var current = DateTime.Now;
var maxMinute = maxAge ?? 99999;
var opt = new TrainTransitSearchOptions();
opt.InitLimit(maxMinute);
var provider = TrainInfoSearchProvider.Instance;
var result = provider.FindOnceTransitTrains(date, from, to, opt);
TrainTransitOnceResultCollection result = null;
try
{
result = provider.FindOnceTransitTrains(date, from, to, opt);
}
catch (Exception ex)
{
var error = Server.MapPath("~/errors/");
Directory.CreateDirectory(error);
System.IO.File.WriteAllText(PathUtility.Combine(error, DateTime.Now.ToString("yyyyMMddhhmmss") + ".log"), "URL: " + Request.RawUrl + "\r\n" + ex.ToString());
return Json(new { ret = false, msg = "很抱歉服务器出现错误,请稍后再试。" }, JsonRequestBehavior.AllowGet);
}
if (result == null)
return Json(new { ret = false, msg = "no routing found." }, JsonRequestBehavior.AllowGet);
@ -156,6 +171,7 @@ namespace TrainInfomationProviderService.Web.Controllers
var data = new
{
@base = result.Date.ToString(),
timecost = (int)(DateTime.Now - current).TotalMilliseconds,
cities,
corder = result.CityOrder,
lines,

Binary file not shown.

View File

@ -1,6 +1,6 @@
// Type definitions for jQuery 1.10.x / 2.0.x
// Project: http://jquery.com/
// Definitions by: Boris Yankov <https://github.com/borisyankov/>, Christian Hoffmeister <https://github.com/choffmeister>, Steve Fenton <https://github.com/Steve-Fenton>, Diullei Gomes <https://github.com/Diullei>, Tass Iliopoulos <https://github.com/tasoili>, Jason Swearingen <https://github.com/jasons-novaleaf>, Sean Hill <https://github.com/seanski>, Guus Goossens <https://github.com/Guuz>, Kelly Summerlin <https://github.com/ksummerlin>, Basarat Ali Syed <https://github.com/basarat>, Nicholas Wolverson <https://github.com/nwolverson>, Derek Cicerone <https://github.com/derekcicerone>, Andrew Gaspar <https://github.com/AndrewGaspar>, James Harrison Fisher <https://github.com/jameshfisher>, Seikichi Kondo <https://github.com/seikichi>, Benjamin Jackman <https://github.com/benjaminjackman>, Poul Sorensen <https://github.com/s093294>, Josh Strobl <https://github.com/JoshStrobl>, John Reilly <https://github.com/johnnyreilly/>
// Definitions by: Boris Yankov <https://github.com/borisyankov/>, Christian Hoffmeister <https://github.com/choffmeister>, Steve Fenton <https://github.com/Steve-Fenton>, Diullei Gomes <https://github.com/Diullei>, Tass Iliopoulos <https://github.com/tasoili>, Jason Swearingen <https://github.com/jasons-novaleaf>, Sean Hill <https://github.com/seanski>, Guus Goossens <https://github.com/Guuz>, Kelly Summerlin <https://github.com/ksummerlin>, Basarat Ali Syed <https://github.com/basarat>, Nicholas Wolverson <https://github.com/nwolverson>, Derek Cicerone <https://github.com/derekcicerone>, Andrew Gaspar <https://github.com/AndrewGaspar>, James Harrison Fisher <https://github.com/jameshfisher>, Seikichi Kondo <https://github.com/seikichi>, Benjamin Jackman <https://github.com/benjaminjackman>, Poul Sorensen <https://github.com/s093294>, Josh Strobl <https://github.com/JoshStrobl>, John Reilly <https://github.com/johnnyreilly/>, Dick van den Brink <https://github.com/DickvdBrink>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/* *****************************************************************************
@ -307,6 +307,11 @@ interface JQueryPromiseCallback<T> {
(value?: T, ...args: any[]): void;
}
interface JQueryPromiseOperator<T, R> {
(callback: JQueryPromiseCallback<T>, ...callbacks: JQueryPromiseCallback<T>[]): JQueryPromise<R>;
(callback: JQueryPromiseCallback<T>[], ...callbacks: JQueryPromiseCallback<T>[]): JQueryPromise<R>;
}
/**
* Interface for the JQuery promise, part of callbacks
*/
@ -317,52 +322,28 @@ interface JQueryPromise<T> {
* @param alwaysCallbacks1 A function, or array of functions, that is called when the Deferred is resolved or rejected.
* @param alwaysCallbacks2 Optional additional functions, or arrays of functions, that are called when the Deferred is resolved or rejected.
*/
always(alwaysCallbacks1?: JQueryPromiseCallback<T>, ...alwaysCallbacks2: JQueryPromiseCallback<T>[]): JQueryDeferred<T>;
always: JQueryPromiseOperator<any, T>;
/**
* Add handlers to be called when the Deferred object is resolved.
*
* @param doneCallbacks1 A function, or array of functions, that are called when the Deferred is resolved.
* @param doneCallbacks2 Optional additional functions, or arrays of functions, that are called when the Deferred is resolved.
*/
done(doneCallbacks1?: JQueryPromiseCallback<T>, ...doneCallbacks2: JQueryPromiseCallback<T>[]): JQueryDeferred<T>;
done: JQueryPromiseOperator<T, T>;
/**
* Add handlers to be called when the Deferred object is rejected.
*
* @param failCallbacks1 A function, or array of functions, that are called when the Deferred is rejected.
* @param failCallbacks2 Optional additional functions, or arrays of functions, that are called when the Deferred is rejected.
*/
fail(failCallbacks1?: JQueryPromiseCallback<T>, ...failCallbacks2: JQueryPromiseCallback<T>[]): JQueryDeferred<T>;
fail: JQueryPromiseOperator<any, T>;
/**
* Add handlers to be called when the Deferred object generates progress notifications.
*
* @param progressCallbacks A function, or array of functions, to be called when the Deferred generates progress notifications.
*/
progress(...progressCallbacks: JQueryPromiseCallback<T>[]): JQueryDeferred<T>;
/**
* Add handlers to be called when the Deferred object is either resolved or rejected.
*
* @param alwaysCallbacks A function, or array of functions, that is called when the Deferred is resolved or rejected.
*/
always(...alwaysCallbacks: any[]): JQueryPromise<T>;
/**
* Add handlers to be called when the Deferred object is resolved.
*
* @param doneCallbacks A function, or array of functions, that are called when the Deferred is resolved.
*/
done(...doneCallbacks: any[]): JQueryPromise<T>;
/**
* Add handlers to be called when the Deferred object is rejected.
*
* @param failCallbacks A function, or array of functions, that are called when the Deferred is rejected.
*/
fail(...failCallbacks: any[]): JQueryPromise<T>;
/**
* Add handlers to be called when the Deferred object generates progress notifications.
*
* @param progressCallbacks A function, or array of functions, to be called when the Deferred generates progress notifications.
*/
progress(...progressCallbacks: any[]): JQueryPromise<T>;
progress(progressCallback: JQueryPromiseCallback<T>): JQueryPromise<T>;
progress(progressCallbacks: JQueryPromiseCallback<T>[]): JQueryPromise<T>;
/**
* Determine the current state of a Deferred object.
@ -479,8 +460,9 @@ interface JQueryDeferred<T> extends JQueryPromise<T> {
*
* @param progressCallbacks A function, or array of functions, to be called when the Deferred generates progress notifications.
*/
progress(...progressCallbacks: JQueryPromiseCallback<T>[]): JQueryDeferred<T>;
progress(progressCallback: JQueryPromiseCallback<T>): JQueryDeferred<T>;
progress(progressCallbacks: JQueryPromiseCallback<T>[]): JQueryDeferred<T>;
/**
* Call the progressCallbacks on a Deferred object with the given args.
*
@ -525,10 +507,6 @@ interface JQueryDeferred<T> extends JQueryPromise<T> {
* @param args An optional array of arguments that are passed to the doneCallbacks.
*/
resolveWith(context: any, ...args: any[]): JQueryDeferred<T>;
/**
* Determine the current state of a Deferred object.
*/
state(): string;
/**
* Return a Deferred's Promise object.
@ -651,6 +629,14 @@ interface JQueryCoordinates {
top: number;
}
/**
* Elements in the array returned by serializeArray()
*/
interface JQuerySerializeArrayElement {
name: string;
value: string;
}
interface JQueryAnimationOptions {
/**
* A string or number determining how long the animation will run.
@ -1343,7 +1329,7 @@ interface JQuery {
/**
* Encode a set of form elements as an array of names and values.
*/
serializeArray(): Object[];
serializeArray(): JQuerySerializeArrayElement[];
/**
* Adds the specified class(es) to each of the set of matched elements.
@ -2767,7 +2753,14 @@ interface JQuery {
* @param selector A selector string to filter the descendants of the selected elements that will call the handler. If the selector is null or omitted, the handler is always called when it reaches the selected element.
* @param data Data to be passed to the handler in event.data when an event occurs.
*/
on(events: { [key: string]: any; }, selector?: any, data?: any): JQuery;
on(events: { [key: string]: any; }, selector?: string, data?: any): JQuery;
/**
* Attach an event handler function for one or more events to the selected elements.
*
* @param events An object in which the string keys represent one or more space-separated event types and optional namespaces, and the values represent a handler function to be called for the event(s).
* @param data Data to be passed to the handler in event.data when an event occurs.
*/
on(events: { [key: string]: any; }, data?: any): JQuery;
/**
* Attach a handler to an event for the elements. The handler is executed at most once per element per event type.
@ -2812,6 +2805,14 @@ interface JQuery {
*/
one(events: { [key: string]: any; }, selector?: string, data?: any): JQuery;
/**
* Attach a handler to an event for the elements. The handler is executed at most once per element per event type.
*
* @param events An object in which the string keys represent one or more space-separated event types and optional namespaces, and the values represent a handler function to be called for the event(s).
* @param data Data to be passed to the handler in event.data when an event occurs.
*/
one(events: { [key: string]: any; }, data?: any): JQuery;
/**
* Specify a function to execute when the DOM is fully loaded.

View File

@ -11,29 +11,29 @@
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="12306_trainsuggestion_maxradio" value="0.7" />
<add key="dataStoragePath" value="~/App_Data/12306"/>
<add key="12306_keepaliveurl" value="http://test.fishlee.net/tt/keepalive"/>
<add key="dataStoragePath" value="~/App_Data/12306" />
<add key="12306_keepaliveurl" value="http://test.fishlee.net/tt/keepalive" />
<add key="local_disable_train_provider" value="1"/>
<add key="local_disable_train_provider" value="1" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<customErrors mode="RemoteOnly">
<error statusCode="500" redirect="http://store.fishlee.net/static/errors/500.html"/>
<error statusCode="500" redirect="http://store.fishlee.net/static/errors/500.html" />
</customErrors>
</system.web>
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="ChatServersHandler" path="ChatHandler.ashx" verb="*" type="Web12306.ChatServers" />
<add name="TrainSuggestHandler" path="ts" verb="*" type="Web12306.TrainSuggestion" />
<add name="CrxHandler" path="crx" verb="*" type="Web12306.CrxHandler" />
</handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" /><remove name="OPTIONSVerbHandler" /><remove name="TRACEVerbHandler" /><add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /></handlers>
<staticContent>
<mimeMap fileExtension=".crx" mimeType="application/octet-stream" />
</staticContent>
@ -46,7 +46,7 @@
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
@ -64,6 +64,10 @@
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@ -43,15 +43,23 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\Private\Packages\Nuget\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll</HintPath>
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\Private\Packages\Nuget\Newtonsoft.Json.6.0.6\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Data.Entity" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http.Formatting, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\Private\Packages\Nuget\Microsoft.AspNet.WebApi.Client.5.2.2\lib\net45\System.Net.Http.Formatting.dll</HintPath>
</Reference>
<Reference Include="System.Web.DynamicData" />
<Reference Include="System.Web.Entity" />
<Reference Include="System.Web.ApplicationServices" />
@ -62,6 +70,14 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.2\lib\net45\System.Web.Helpers.dll</HintPath>
</Reference>
<Reference Include="System.Web.Http, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\Private\Packages\Nuget\Microsoft.AspNet.WebApi.Core.5.2.2\lib\net45\System.Web.Http.dll</HintPath>
</Reference>
<Reference Include="System.Web.Http.WebHost, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\Private\Packages\Nuget\Microsoft.AspNet.WebApi.WebHost.5.2.2\lib\net45\System.Web.Http.WebHost.dll</HintPath>
</Reference>
<Reference Include="System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.2\lib\net45\System.Web.Mvc.dll</HintPath>
@ -102,24 +118,9 @@
<Reference Include="System.Web.Optimization">
<HintPath>..\packages\Microsoft.AspNet.Web.Optimization.1.1.1\lib\net40\System.Web.Optimization.dll</HintPath>
</Reference>
<Reference Include="WebGrease">
<Private>True</Private>
<HintPath>..\packages\WebGrease.1.5.2\lib\WebGrease.dll</HintPath>
</Reference>
<Reference Include="Antlr3.Runtime">
<Private>True</Private>
<HintPath>..\packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Reference Include="System.Net.Http.Formatting">
<HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.0.0\lib\net45\System.Net.Http.Formatting.dll</HintPath>
</Reference>
<Reference Include="System.Web.Http">
<HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.0.0\lib\net45\System.Web.Http.dll</HintPath>
</Reference>
<Reference Include="System.Web.Http.WebHost">
<HintPath>..\packages\Microsoft.AspNet.WebApi.WebHost.5.0.0\lib\net45\System.Web.Http.WebHost.dll</HintPath>
<Reference Include="WebGrease, Version=1.6.5135.21930, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\Private\Packages\Nuget\WebGrease.1.6.0\lib\WebGrease.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>

View File

@ -1,25 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Antlr" version="3.4.1.9004" targetFramework="net45" />
<package id="bootstrap" version="3.0.0" targetFramework="net45" />
<package id="jQuery" version="1.10.2" targetFramework="net45" />
<package id="jquery.TypeScript.DefinitelyTyped" version="1.3.7" targetFramework="net45" />
<package id="Antlr" version="3.5.0.2" targetFramework="net45" />
<package id="jquery.TypeScript.DefinitelyTyped" version="1.4.1" targetFramework="net45" />
<package id="Microsoft.AspNet.Mvc" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.Razor" version="3.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.Web.Optimization.zh-Hans" version="1.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Client.zh-Hans" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Core.zh-Hans" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost.zh-Hans" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Client.zh-Hans" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Core.zh-Hans" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost.zh-Hans" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebPages" version="3.2.2" targetFramework="net45" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
<package id="Modernizr" version="2.6.2" targetFramework="net45" />
<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" />
<package id="Newtonsoft.Json" version="6.0.6" targetFramework="net45" />
<package id="Respond" version="1.2.0" targetFramework="net45" />
<package id="underscore.TypeScript.DefinitelyTyped" version="0.4.4" targetFramework="net45" />
<package id="WebGrease" version="1.5.2" targetFramework="net45" />
<package id="WebGrease" version="1.6.0" targetFramework="net45" />
</packages>