Kaynağa Gözat

1.完善webapi服务

2.调整部分代码
tags/v1.0.0
SmallChi 6 yıl önce
ebeveyn
işleme
e53bdb1473
12 değiştirilmiş dosya ile 304 ekleme ve 63 silme
  1. +0
    -33
      src/JT808.DotNetty.Abstractions/Dtos/JT808SourcePackageChannelInfoDto.cs
  2. +13
    -1
      src/JT808.DotNetty.Abstractions/JT808.DotNetty.Abstractions.csproj
  3. +12
    -0
      src/JT808.DotNetty.Codecs/JT808.DotNetty.Codecs.csproj
  4. +1
    -1
      src/JT808.DotNetty.Core/Interfaces/IJT808UnificationTcpSendService.cs
  5. +1
    -1
      src/JT808.DotNetty.Core/Interfaces/IJT808UnificationUdpSendService.cs
  6. +12
    -0
      src/JT808.DotNetty.Core/JT808.DotNetty.Core.csproj
  7. +13
    -0
      src/JT808.DotNetty.Tcp/JT808.DotNetty.Tcp.csproj
  8. +5
    -0
      src/JT808.DotNetty.Udp/Handlers/JT808UdpServerHandler.cs
  9. +13
    -1
      src/JT808.DotNetty.Udp/JT808.DotNetty.Udp.csproj
  10. +216
    -7
      src/JT808.DotNetty.WebApi/Handlers/JT808MsgIdDefaultWebApiHandler.cs
  11. +13
    -0
      src/JT808.DotNetty.WebApi/JT808.DotNetty.WebApi.csproj
  12. +5
    -19
      src/JT808.DotNetty.sln

+ 0
- 33
src/JT808.DotNetty.Abstractions/Dtos/JT808SourcePackageChannelInfoDto.cs Dosyayı Görüntüle

@@ -1,33 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace JT808.DotNetty.Abstractions.Dtos
{
/// <summary>
/// 原包通道信息
/// </summary>
public class JT808SourcePackageChannelInfoDto
{
/// <summary>
/// 远程地址
/// </summary>
public string RemoteAddress { get; set; }
/// <summary>
/// 本地地址
/// </summary>
public string LocalAddress { get; set; }
/// <summary>
/// 是否注册
/// </summary>
public bool Registered { get; set; }
/// <summary>
/// 是否活动
/// </summary>
public bool Active { get; set; }
/// <summary>
/// 是否打开
/// </summary>
public bool Open { get; set; }
}
}

+ 13
- 1
src/JT808.DotNetty.Abstractions/JT808.DotNetty.Abstractions.csproj Dosyayı Görüntüle

@@ -1,8 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>7.1</LangVersion>
<Copyright>Copyright 2018.</Copyright>
<Authors>SmallChi</Authors>
<PackageId>JT808.DotNetty.Abstractions</PackageId>
<Product>JT808.DotNetty.Abstractions</Product>
<Description>基于DotNetty实现的JT808DotNetty的抽象库</Description>
<PackageReleaseNotes>基于DotNetty实现的JT808DotNetty的抽象库</PackageReleaseNotes>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl>
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>1.0.0</Version>
</PropertyGroup>

</Project>

+ 12
- 0
src/JT808.DotNetty.Codecs/JT808.DotNetty.Codecs.csproj Dosyayı Görüntüle

@@ -3,6 +3,18 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>7.1</LangVersion>
<Copyright>Copyright 2018.</Copyright>
<Authors>SmallChi</Authors>
<PackageId>JT808.DotNetty.Codecs</PackageId>
<Product>JT808.DotNetty.Codecs</Product>
<Description>基于DotNetty实现的JT808DotNetty的编解码库</Description>
<PackageReleaseNotes>基于DotNetty实现的JT808DotNetty的编解码库</PackageReleaseNotes>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl>
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>1.0.0</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DotNetty.Codecs" Version="0.6.0" />


+ 1
- 1
src/JT808.DotNetty.Core/Interfaces/IJT808UnificationTcpSendService.cs Dosyayı Görüntüle

@@ -5,7 +5,7 @@ namespace JT808.DotNetty.Core.Interfaces
/// <summary>
/// JT808基于tcp的统一下发命令服务
/// </summary>
internal interface IJT808UnificationTcpSendService
public interface IJT808UnificationTcpSendService
{
JT808ResultDto<bool> Send(string terminalPhoneNo, byte[] data);
}


+ 1
- 1
src/JT808.DotNetty.Core/Interfaces/IJT808UnificationUdpSendService.cs Dosyayı Görüntüle

@@ -5,7 +5,7 @@ namespace JT808.DotNetty.Core.Interfaces
/// <summary>
/// JT808基于udp的统一下发命令服务
/// </summary>
internal interface IJT808UnificationUdpSendService
public interface IJT808UnificationUdpSendService
{
JT808ResultDto<bool> Send(string terminalPhoneNo, byte[] data);
}


+ 12
- 0
src/JT808.DotNetty.Core/JT808.DotNetty.Core.csproj Dosyayı Görüntüle

@@ -3,6 +3,18 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>7.1</LangVersion>
<Copyright>Copyright 2018.</Copyright>
<Authors>SmallChi</Authors>
<PackageId>JT808.DotNetty.Core</PackageId>
<Product>JT808.DotNetty.Core</Product>
<Description>基于DotNetty实现的JT808DotNetty的核心库</Description>
<PackageReleaseNotes>基于DotNetty实现的JT808DotNetty的核心库</PackageReleaseNotes>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl>
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>1.0.0</Version>
</PropertyGroup>

<ItemGroup>


+ 13
- 0
src/JT808.DotNetty.Tcp/JT808.DotNetty.Tcp.csproj Dosyayı Görüntüle

@@ -2,6 +2,19 @@

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>7.1</LangVersion>
<Copyright>Copyright 2018.</Copyright>
<Authors>SmallChi</Authors>
<PackageId>JT808.DotNetty.Tcp</PackageId>
<Product>JT808.DotNetty.Tcp</Product>
<Description>基于DotNetty实现的JT808DotNetty的Tcp服务</Description>
<PackageReleaseNotes>基于DotNetty实现的JT808DotNetty的Tcp服务</PackageReleaseNotes>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl>
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>1.0.0</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DotNetty.Buffers" Version="0.6.0" />


+ 5
- 0
src/JT808.DotNetty.Udp/Handlers/JT808UdpServerHandler.cs Dosyayı Görüntüle

@@ -51,6 +51,11 @@ namespace JT808.DotNetty.Udp.Handlers
//解析具体的消息体,具体调用JT808Serializer.Deserialize<T>
JT808HeaderPackage jT808HeaderPackage = JT808Serializer.Deserialize<JT808HeaderPackage>(msg.Buffer);
jT808UdpAtomicCounterService.MsgSuccessIncrement();
jT808UdpSessionManager.TryAdd(new JT808UdpSession {
Channel= ctx.Channel,
Sender= msg.Sender,
TerminalPhoneNo= jT808HeaderPackage.Header.TerminalPhoneNo
});
if (logger.IsEnabled(LogLevel.Debug))
{
logger.LogDebug("accept package success count<<<" + jT808UdpAtomicCounterService.MsgSuccessCount.ToString());


+ 13
- 1
src/JT808.DotNetty.Udp/JT808.DotNetty.Udp.csproj Dosyayı Görüntüle

@@ -1,8 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>7.1</LangVersion>
<Copyright>Copyright 2018.</Copyright>
<Authors>SmallChi</Authors>
<PackageId>JT808.DotNetty.Udp</PackageId>
<Product>JT808.DotNetty.Udp</Product>
<Description>基于DotNetty实现的JT808DotNetty的Udp服务</Description>
<PackageReleaseNotes>基于DotNetty实现的JT808DotNetty的Udp服务</PackageReleaseNotes>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl>
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>1.0.0</Version>
</PropertyGroup>

<ItemGroup>


+ 216
- 7
src/JT808.DotNetty.WebApi/Handlers/JT808MsgIdDefaultWebApiHandler.cs Dosyayı Görüntüle

@@ -1,27 +1,236 @@
using JT808.DotNetty.Core.Handlers;
using JT808.DotNetty.Abstractions.Dtos;
using JT808.DotNetty.Core.Handlers;
using JT808.DotNetty.Core.Interfaces;
using JT808.DotNetty.Core.Metadata;
using JT808.DotNetty.Core.Services;
using Newtonsoft.Json;

namespace JT808.DotNetty.WebApi.Handlers
{
/// <summary>
/// 默认消息处理业务实现
/// </summary>
internal class JT808MsgIdDefaultWebApiHandler : JT808MsgIdHttpHandlerBase
public class JT808MsgIdDefaultWebApiHandler : JT808MsgIdHttpHandlerBase
{
private const string sessionRoutePrefix = "Session";

private const string sourcePackagePrefix = "SourcePackage";

private const string transmitPrefix = "Transmit";

//1.TCP一套注入
//2.UDP一套注入
//3.统一的一套注入
private readonly JT808TcpAtomicCounterService jT808TcpAtomicCounterService;

private readonly JT808UdpAtomicCounterService jT808UdpAtomicCounterService;

private readonly JT808TransmitAddressFilterService jT808TransmitAddressFilterService;

private readonly IJT808TcpSessionService jT808TcpSessionService;

private readonly IJT808UnificationTcpSendService jT808UnificationTcpSendService;

private readonly IJT808UnificationUdpSendService jT808UnificationUdpSendService;

/// <summary>
/// TCP一套注入
/// </summary>
/// <param name="jT808TcpAtomicCounterService"></param>
public JT808MsgIdDefaultWebApiHandler(
IJT808UnificationTcpSendService jT808UnificationTcpSendService,
IJT808TcpSessionService jT808TcpSessionService,
JT808TransmitAddressFilterService jT808TransmitAddressFilterService,
JT808TcpAtomicCounterService jT808TcpAtomicCounterService
)
{
this.jT808UnificationTcpSendService = jT808UnificationTcpSendService;
this.jT808TcpSessionService = jT808TcpSessionService;
this.jT808TransmitAddressFilterService = jT808TransmitAddressFilterService;
this.jT808TcpAtomicCounterService = jT808TcpAtomicCounterService;
InitTcpRoute();
}

/// <summary>
/// UDP一套注入
/// </summary>
/// <param name="jT808UdpAtomicCounterService"></param>
public JT808MsgIdDefaultWebApiHandler(
IJT808UnificationUdpSendService jT808UnificationUdpSendService,
JT808UdpAtomicCounterService jT808UdpAtomicCounterService
)
{
this.jT808UnificationUdpSendService = jT808UnificationUdpSendService;
this.jT808UdpAtomicCounterService = jT808UdpAtomicCounterService;
InitUdpRoute();
}

/// <summary>
/// 统一的一套注入
/// </summary>
/// <param name="jT808TcpAtomicCounterService"></param>
/// <param name="jT808UdpAtomicCounterService"></param>
public JT808MsgIdDefaultWebApiHandler(
IJT808UnificationTcpSendService jT808UnificationTcpSendService,
IJT808UnificationUdpSendService jT808UnificationUdpSendService,
IJT808TcpSessionService jT808TcpSessionService,
JT808TransmitAddressFilterService jT808TransmitAddressFilterService,
JT808TcpAtomicCounterService jT808TcpAtomicCounterService,
JT808UdpAtomicCounterService jT808UdpAtomicCounterService
)
{
this.jT808UnificationTcpSendService = jT808UnificationTcpSendService;
this.jT808UnificationUdpSendService = jT808UnificationUdpSendService;
this.jT808TcpSessionService = jT808TcpSessionService;
this.jT808TransmitAddressFilterService = jT808TransmitAddressFilterService;
this.jT808TcpAtomicCounterService = jT808TcpAtomicCounterService;
this.jT808UdpAtomicCounterService = jT808UdpAtomicCounterService;
InitTcpRoute();
InitUdpRoute();
}

/// <summary>
/// 会话服务集合
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public JT808HttpResponse GetSessionAll(JT808HttpRequest request)
{
var result = jT808TcpSessionService.GetAll();
return CreateJT808HttpResponse(result);
}

/// <summary>
/// 会话服务-通过设备终端号移除对应会话
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public JT808HttpResponse RemoveByTerminalPhoneNo(JT808HttpRequest request)
{
if (string.IsNullOrEmpty(request.Json))
{
return EmptyHttpResponse();
}
var result = jT808TcpSessionService.RemoveByTerminalPhoneNo(request.Json);
return CreateJT808HttpResponse(result);
}

/// <summary>
/// 添加转发过滤地址
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public JT808HttpResponse AddTransmitAddress(JT808HttpRequest request)
{
if (string.IsNullOrEmpty(request.Json))
{
return EmptyHttpResponse();
}
JT808IPAddressDto jT808IPAddressDto = JsonConvert.DeserializeObject<JT808IPAddressDto>(request.Json);
return CreateJT808HttpResponse(jT808TransmitAddressFilterService.Add(jT808IPAddressDto));
}

/// <summary>
/// 删除转发过滤地址(不能删除在网关服务器配置文件配的地址)
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public JT808HttpResponse RemoveTransmitAddress(JT808HttpRequest request)
{
if (string.IsNullOrEmpty(request.Json))
{
return EmptyHttpResponse();
}
JT808IPAddressDto jT808IPAddressDto = JsonConvert.DeserializeObject<JT808IPAddressDto>(request.Json);
return CreateJT808HttpResponse(jT808TransmitAddressFilterService.Remove(jT808IPAddressDto));
}

/// <summary>
/// 获取转发过滤地址信息集合
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public JT808HttpResponse GetTransmitAll(JT808HttpRequest request)
{
return CreateJT808HttpResponse(jT808TransmitAddressFilterService.GetAll());
}

/// <summary>
/// 获取Tcp包计数器
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public JT808HttpResponse GetTcpAtomicCounter(JT808HttpRequest request)
{
JT808AtomicCounterDto jT808AtomicCounterDto = new JT808AtomicCounterDto();
jT808AtomicCounterDto.MsgFailCount = jT808TcpAtomicCounterService.MsgFailCount;
jT808AtomicCounterDto.MsgSuccessCount = jT808TcpAtomicCounterService.MsgSuccessCount;
return CreateJT808HttpResponse(new JT808ResultDto<JT808AtomicCounterDto>
{
Code = JT808ResultCode.Ok,
Data = jT808AtomicCounterDto
});
}

/// <summary>
/// 获取Udp包计数器
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public JT808HttpResponse GetUdpAtomicCounter(JT808HttpRequest request)
{
JT808AtomicCounterDto jT808AtomicCounterDto = new JT808AtomicCounterDto();
jT808AtomicCounterDto.MsgFailCount = jT808UdpAtomicCounterService.MsgFailCount;
jT808AtomicCounterDto.MsgSuccessCount = jT808UdpAtomicCounterService.MsgSuccessCount;
return CreateJT808HttpResponse(new JT808ResultDto<JT808AtomicCounterDto>
{
Code = JT808ResultCode.Ok,
Data = jT808AtomicCounterDto
});
}

/// <summary>
/// 基于Tcp的统一下发信息
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public JT808HttpResponse UnificationTcpSend(JT808HttpRequest request)
{
if (string.IsNullOrEmpty(request.Json))
{
return EmptyHttpResponse();
}
JT808UnificationSendRequestDto jT808UnificationSendRequestDto = JsonConvert.DeserializeObject<JT808UnificationSendRequestDto>(request.Json);
var result = jT808UnificationTcpSendService.Send(jT808UnificationSendRequestDto.TerminalPhoneNo, jT808UnificationSendRequestDto.Data);
return CreateJT808HttpResponse(result);
}

/// <summary>
/// 基于Udp的统一下发信息
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public JT808HttpResponse UnificationUdpSend(JT808HttpRequest request)
{
if (string.IsNullOrEmpty(request.Json))
{
return EmptyHttpResponse();
}
JT808UnificationSendRequestDto jT808UnificationSendRequestDto = JsonConvert.DeserializeObject<JT808UnificationSendRequestDto>(request.Json);
var result = jT808UnificationUdpSendService.Send(jT808UnificationSendRequestDto.TerminalPhoneNo, jT808UnificationSendRequestDto.Data);
return CreateJT808HttpResponse(result);
}

protected virtual void InitTcpRoute()
{
CreateRoute($"{transmitPrefix}/Add", AddTransmitAddress);
CreateRoute($"{transmitPrefix}/Remove", RemoveTransmitAddress);
CreateRoute($"{transmitPrefix}/GetAll", GetTransmitAll);
CreateRoute($"GetTcpAtomicCounter", GetTcpAtomicCounter);
CreateRoute($"{sessionRoutePrefix}/GetAll", GetSessionAll);
CreateRoute($"{sessionRoutePrefix}/RemoveByTerminalPhoneNo", RemoveByTerminalPhoneNo);
CreateRoute($"UnificationTcpSend", UnificationTcpSend);
}

protected virtual void InitUdpRoute()
{
CreateRoute($"GetUdpAtomicCounter", GetUdpAtomicCounter);
CreateRoute($"UnificationUdpSend", UnificationUdpSend);
}
}
}

+ 13
- 0
src/JT808.DotNetty.WebApi/JT808.DotNetty.WebApi.csproj Dosyayı Görüntüle

@@ -2,6 +2,19 @@

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>7.1</LangVersion>
<Copyright>Copyright 2018.</Copyright>
<Authors>SmallChi</Authors>
<PackageId>JT808.DotNetty.WebApi</PackageId>
<Product>JT808.DotNetty.WebApi</Product>
<Description>基于DotNetty实现的JT808DotNetty的WebApi服务</Description>
<PackageReleaseNotes>基于DotNetty实现的JT808DotNetty的WebApi服务</PackageReleaseNotes>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl>
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>1.0.0</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DotNetty.Buffers" Version="0.6.0" />


+ 5
- 19
src/JT808.DotNetty.sln Dosyayı Görüntüle

@@ -1,12 +1,8 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.28307.168
# Visual Studio Version 16
VisualStudioVersion = 16.0.28407.52
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty", "JT808.DotNetty\JT808.DotNetty.csproj", "{80C7F67E-6B7C-4178-8726-ADD3695622DD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty.Test", "JT808.DotNetty.Test\JT808.DotNetty.Test.csproj", "{7315D030-16CA-4AC8-B892-720F3D78C651}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B5A80356-5AF6-449F-9D8B-3C1BBB9D2443}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.Protocol", "JT808.Protocol\src\JT808.Protocol\JT808.Protocol.csproj", "{9FCA2EE9-8253-41AA-A64C-9883413864F9}"
@@ -17,13 +13,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty.Codecs", "JT
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty.Core", "JT808.DotNetty.Core\JT808.DotNetty.Core.csproj", "{67C5DC72-0004-48B3-BB5A-9CB7069B4F02}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JT808.DotNetty.Abstractions", "JT808.DotNetty.Abstractions\JT808.DotNetty.Abstractions.csproj", "{4DCF33C0-67C5-4179-AF1E-4E919F9F856D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty.Abstractions", "JT808.DotNetty.Abstractions\JT808.DotNetty.Abstractions.csproj", "{4DCF33C0-67C5-4179-AF1E-4E919F9F856D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{3BD7FF02-8516-4A77-A385-9FDCDD792E22}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JT808.DotNetty.Tcp", "JT808.DotNetty.Tcp\JT808.DotNetty.Tcp.csproj", "{330CD783-5564-4083-ABFC-573CDC369F50}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty.Tcp", "JT808.DotNetty.Tcp\JT808.DotNetty.Tcp.csproj", "{330CD783-5564-4083-ABFC-573CDC369F50}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JT808.DotNetty.WebApi", "JT808.DotNetty.WebApi\JT808.DotNetty.WebApi.csproj", "{B783DE53-CE2A-4225-921F-04E5E57B28F3}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty.WebApi", "JT808.DotNetty.WebApi\JT808.DotNetty.WebApi.csproj", "{B783DE53-CE2A-4225-921F-04E5E57B28F3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -31,14 +27,6 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{80C7F67E-6B7C-4178-8726-ADD3695622DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{80C7F67E-6B7C-4178-8726-ADD3695622DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{80C7F67E-6B7C-4178-8726-ADD3695622DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{80C7F67E-6B7C-4178-8726-ADD3695622DD}.Release|Any CPU.Build.0 = Release|Any CPU
{7315D030-16CA-4AC8-B892-720F3D78C651}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7315D030-16CA-4AC8-B892-720F3D78C651}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7315D030-16CA-4AC8-B892-720F3D78C651}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7315D030-16CA-4AC8-B892-720F3D78C651}.Release|Any CPU.Build.0 = Release|Any CPU
{9FCA2EE9-8253-41AA-A64C-9883413864F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9FCA2EE9-8253-41AA-A64C-9883413864F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9FCA2EE9-8253-41AA-A64C-9883413864F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -72,8 +60,6 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{80C7F67E-6B7C-4178-8726-ADD3695622DD} = {B5A80356-5AF6-449F-9D8B-3C1BBB9D2443}
{7315D030-16CA-4AC8-B892-720F3D78C651} = {3BD7FF02-8516-4A77-A385-9FDCDD792E22}
{9FCA2EE9-8253-41AA-A64C-9883413864F9} = {B5A80356-5AF6-449F-9D8B-3C1BBB9D2443}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution


Yükleniyor…
İptal
Kaydet