Commit 96315f3c authored by 黄奎's avatar 黄奎

初始化

parent 3c1435a8
This diff is collapsed.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="VTX.FW" Version="1.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\EduSpider.Model\EduSpider.Model.csproj" />
</ItemGroup>
</Project>
using EduSpider.Model.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VTX.FW.Config;
using VTX.FW.DB;
namespace EduSpider.Repository
{
/// <summary>
/// 课程仓储接口
/// </summary>
public interface ICourseRepository : IDBRepository<Course>, IDependency
{
/// <summary>
/// 批量新增课程
/// </summary>
/// <param name="courses"></param>
/// <returns></returns>
public bool BatchSetCourse(List<Course> courses);
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="VTX.FW" Version="1.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\EduSpider.IRepository\EduSpider.IRepository.csproj" />
<ProjectReference Include="..\EduSpider.Model\EduSpider.Model.csproj" />
<ProjectReference Include="..\EduSpider.Repository\EduSpider.Repository.csproj" />
</ItemGroup>
</Project>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VTX.FW.Config;
namespace EduSpider.IServices
{
/// <summary>
/// 课程服务层接口
/// </summary>
public interface ICourseService : IDependency
{
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="VTX.FW" Version="1.0.0" />
</ItemGroup>
</Project>
using System;
using VTX.FW.Attr;
namespace EduSpider.Model.Entity
{
/// <summary>
/// 课程实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class Course
{
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="VTX.FW" Version="1.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\EduSpider.Model\EduSpider.Model.csproj" />
<ProjectReference Include="..\EduSpider.Repository\EduSpider.Repository.csproj" />
</ItemGroup>
</Project>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VTX.FW.Attr;
using VTX.FW.DB;
using VTX.FW.DB.Enumeration;
namespace EduSpider.Repository.Base
{
/// <summary>
/// 仓储基类
/// </summary>
/// <typeparam name="T"></typeparam>
public class BaseRepository<T> : DBRepository<T> where T : class, new()
{
/// <summary>
/// 数据库连接字符串
/// </summary>
private readonly string DBConnStr = "";
private readonly DataBaseTypeEnum dbType = DataBaseTypeEnum.MySql;
public BaseRepository()
{
string connKey = "";
try
{
var classAttribute = (DBAttribute)Attribute.GetCustomAttribute(typeof(T), typeof(DBAttribute));
connKey = classAttribute?.ConnectionName ?? "DefaultConnection";
}
catch
{
}
DBConnStr = VTX.FW.Helper.ConfigHelper.GetConnectionString(connKey);
}
public override string ConnectionStr { get => DBConnStr; set => base.ConnectionStr = DBConnStr; }
public override DataBaseTypeEnum DBType { get => dbType; set => base.DBType = dbType; }
}
}
using EduSpider.Model.Entity;
using EduSpider.Repository.Base;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EduSpider.Repository
{
/// <summary>
/// 课程仓储层
/// </summary>
public class CourseRepository : BaseRepository<Course>, ICourseRepository
{
/// <summary>
/// 批量新增课程
/// </summary>
/// <param name="courses"></param>
/// <returns></returns>
public bool BatchSetCourse(List<Course> courses)
{
bool flag;
flag = base.BatchInsert(courses, isReplace: true);
return flag;
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="VTX.FW" Version="1.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\EduSpider.IRepository\EduSpider.IRepository.csproj" />
<ProjectReference Include="..\EduSpider.Model\EduSpider.Model.csproj" />
</ItemGroup>
</Project>

using EduSpider.IServices;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EduSpider.Services
{
/// <summary>
/// 课程服务实现
/// </summary>
public class CourseService : ICourseService
{
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="VTX.FW" Version="1.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\EduSpider.IRepository\EduSpider.IRepository.csproj" />
<ProjectReference Include="..\EduSpider.IServices\EduSpider.IServices.csproj" />
<ProjectReference Include="..\EduSpider.Model\EduSpider.Model.csproj" />
<ProjectReference Include="..\EduSpider.Repository\EduSpider.Repository.csproj" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="VTX.FW" Version="1.0.0" />
</ItemGroup>
</Project>
using Newtonsoft.Json.Linq;
using System;
using System.IO;
using System.Net;
using System.Text;
using VTX.FW.Helper;
namespace EduSpider.Utility
{
/// <summary>
/// Http请求帮助类
/// </summary>
public class HttpHelper
{
/// <summary>
/// 域名
/// </summary>
private static string domain = "https://console.eeo.cn/saasajax";
/// <summary>
/// Cookie
/// </summary>
private static string Cookie = "sajssdk_2015_cross_new_user=1; _eeos_uid=12780052; _eeos_useraccount=18140082327; _eeos_userlogo=%2Fupload%2Fimages%2F20200126%2F709df9532bee722f2268_70.jpg; _eeos_domain=.eeo.cn; _eeos_remember=1; _eeos_traffic=EqlIOFq4S2hz5FTTtHzNUViBYcWCixrJYMCF6Y5yJuD8eq8ZwPvVSHMvUkLFA5lzNoaTrDBpGhG4CE5Tjuw%2BomVQCAXfwH%2BefAyKrRMPc3g%3D; _eeos_sid=12780052; _eeos_nsid=kspGu2gfMu%2BU2EFgLpSGyg%3D%3D; locationArgumentLang=zh-CN; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2212780052%22%2C%22first_id%22%3A%22180f54ced3048f-02eaffc35f728a-3e604809-2073600-180f54ced316ee%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E8%87%AA%E7%84%B6%E6%90%9C%E7%B4%A2%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC%22%2C%22%24latest_referrer%22%3A%22https%3A%2F%2Fwww.baidu.com%2Flink%22%7D%2C%22%24device_id%22%3A%22180f54ced3048f-02eaffc35f728a-3e604809-2073600-180f54ced316ee%22%7D; PHPSESSID=sd33g5i5ta97b7a8d19vld71q2; __tk_id=0a89552a4b2a69f62bc9ad086c6402e1";
/// <summary>
/// 类型
/// </summary>
private static string contentType = "application/x-www-form-urlencoded";
/// <summary>
/// 获取班级信息
/// </summary>
/// <returns></returns>
public static string GetClassQuery()
{
string url = "/course.ajax.php?action=getCourseList";
string ApiUrl = domain + url;
string apiResult = HttpPost(ApiUrl, "", contentType:contentType, cookie: Cookie);
if (!string.IsNullOrWhiteSpace(apiResult))
{
JObject rootObj = JObject.Parse(apiResult);
int PageSize = rootObj.GetInt("PageSize");
int PageCount= rootObj.GetInt("PageCount");
}
return apiResult;
}
public static string GetData(string url)
{
return "";
}
/// <summary>
/// Post提交数据
/// </summary>
/// <param name="url">url地址</param>
/// <param name="body">参数</param>
/// <param name="contentType">参数</param>
/// <returns></returns>
public static string HttpPost(string url, string body, string contentType = "", string cookie = "")
{
string result = "";
try
{
Encoding encoding = Encoding.UTF8;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.Accept = "application/json, text/javascript, */*";
request.ContentType = "application/json; charset=utf-8";
if (contentType != "")
{
request.ContentType = contentType;
}
if (!string.IsNullOrWhiteSpace(cookie))
{
request.Headers.Add("cookie", cookie);
}
byte[] buffer = encoding.GetBytes(body);
request.ContentLength = buffer.Length;
request.GetRequestStream().Write(buffer, 0, buffer.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using StreamReader reader = new StreamReader(response.GetResponseStream(), encoding);
result = reader.ReadToEnd();
}
catch (WebException ex)
{
LogHelper.WriteError("HttpPost", string.Format("HttpHelper_HttpPost:url:{0} body:{1} contentType:{2}", url, body, contentType), ex: ex);
}
return result;
}
/// <summary>
/// 执行HTTP GET请求。
/// </summary>
/// <param name="url">请求地址</param>
/// <returns>HTTP响应</returns>
public static string HttpGet(string url)
{
string result = "";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "GET";
req.ContentType = "application/json";
HttpWebResponse rsp = (HttpWebResponse)req.GetResponse();
Encoding encoding = Encoding.UTF8;
if (!string.IsNullOrWhiteSpace(rsp.CharacterSet))
{
encoding = Encoding.GetEncoding(rsp.CharacterSet);
}
Stream stream = null;
StreamReader reader = null;
try
{
// 以字符流的方式读取HTTP响应
stream = rsp.GetResponseStream();
reader = new StreamReader(stream, encoding);
result = reader.ReadToEnd();
}
catch (Exception ex)
{
LogHelper.WriteError("HttpHelper_HttpGet", string.Format("url:{0}", url), ex);
result = "";
}
finally
{
// 释放资源
if (reader != null) reader.Close();
if (stream != null) stream.Close();
if (rsp != null) rsp.Close();
}
return result;
}
}
}
\ No newline at end of file
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using VTX.FW.VtController;
namespace EduSpider.WebApi.Controllers.Base
{
[EnableCors("AllowCors")]
[Route("api/[controller]/[action]")]
[ApiController]
public class BaseController : ApiBaseController
{
}
}
using EduSpider.IServices;
using EduSpider.WebApi.Controllers.Base;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using VTX.FW.Api;
using VTX.FW.Attr;
namespace EduSpider.WebApi.Controllers
{
/// <summary>
/// 课程控制器
/// </summary>
public class CourseController : BaseController
{
/// <summary>
/// 获取课程列表
/// </summary>
/// <returns></returns>
[HttpPost]
[HttpGet]
public ApiResult GetCoursePage()
{
string roomApi = "api/Classroom/Query";
string classQuery = "api/Class/Query";
string str = Utility.HttpHelper.GetData(classQuery);
return ApiResult.Success(data: str, message: "成功!");
}
}
}
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Autofac" Version="6.3.0" />
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="7.2.0" />
<PackageReference Include="Autofac.Extras.DynamicProxy" Version="6.0.1" />
<PackageReference Include="Castle.Core" Version="4.4.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="SqlSugarCore" Version="5.0.8.3" />
<PackageReference Include="StackExchange.Redis" Version="2.0.601" />
<PackageReference Include="VTX.FW" Version="1.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\EduSpider.IRepository\EduSpider.IRepository.csproj" />
<ProjectReference Include="..\EduSpider.IServices\EduSpider.IServices.csproj" />
<ProjectReference Include="..\EduSpider.Model\EduSpider.Model.csproj" />
<ProjectReference Include="..\EduSpider.Repository\EduSpider.Repository.csproj" />
<ProjectReference Include="..\EduSpider.Services\EduSpider.Services.csproj" />
<ProjectReference Include="..\EduSpider.Utility\EduSpider.Utility.csproj" />
</ItemGroup>
</Project>
using Autofac.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using System.IO;
namespace EduSpider.WebApi
{
public class Program
{
public static void Main(string[] args)
{
new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddCommandLine(args)
.Build();
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.UseServiceProviderFactory(new AutofacServiceProviderFactory());//Autofacʵע;
}
}
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:37700",
"sslPort": 0
}
},
"$schema": "http://json.schemastore.org/launchsettings.json",
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchUrl": "weatherforecast",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"nativeDebugging": true
},
"EduSpider.WebApi": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "weatherforecast",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:5000"
}
}
}
\ No newline at end of file
using Autofac;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc.Controllers;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Hosting;
using System.Collections.Generic;
using VTX.FW.Config;
using VTX.FW.Filter;
using VTX.FW.Helper;
namespace EduSpider.WebApi
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureContainer(ContainerBuilder containerBuilder)
{
containerBuilder.RegisterModule<ConfigureAutofac>();
}
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
//ActoFac注入
services.Replace(ServiceDescriptor.Transient<IControllerActivator, ServiceBasedControllerActivator>());
List<string> corsArray = new List<string>()
{
"http://localhost:7100",
"http://localhost:7200",
};
services.AddCors(options => options.AddPolicy("AllowCors", policy => policy.AllowAnyHeader().AllowAnyMethod().AllowCredentials().WithOrigins(corsArray.ToArray())));
services.AddControllers();
services.AddMvc(options =>
{
options.Filters.Add<ApiExceptionFilterAttribute>();
options.Filters.Add<ApiFilterAttribute>();
});
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
// 允许所有跨域,cors是在ConfigureServices方法中配置的跨域策略名称
app.UseCors("AllowCors");
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
}
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
}
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
//
"corsArray": [
"http://localhost",
"http://localhost:7100",
"http://192.168.10.214:7100",
"http://localhost:7200",
"http://192.168.10.214:7200",
"http://localhost:8081",
"http://localhost:8080",
"http://localhost:8181",
"http://localhost:8182",
"http://localhost:8082",
"http://localhost:7302"
],
//ַ
"ConnectionStrings": {
"DefaultConnection": "server=192.168.10.214;user id=reborn;password=Reborn@2018;database=reborn_user;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"DefaultConnectionPName": "MySql.Data.MySqlClient"
}
}
@echo off
echo ASPNETCORE_ENVIRONMENT=Development
dotnet build
start "EduSpider.WebApi" dotnet bin\Debug\net5.0\EduSpider.WebApi.dll --urls http://0.0.0.0:5004 --ip="127.0.0.1" --port=5004
exit
\ No newline at end of file

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31729.503
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EduSpider.Model", "EduSpider.Model\EduSpider.Model.csproj", "{58B2199B-FE72-4F48-972D-F7FE32A28A0F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EduSpider.Repository", "EduSpider.Repository\EduSpider.Repository.csproj", "{132DB610-CFCB-4AEE-BBA1-390DCE5179F1}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Data", "Data", "{1BE47B3D-D38F-4CAE-8E6A-4A1FA95109FD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EduSpider.IRepository", "EduSpider.IRepository\EduSpider.IRepository.csproj", "{475C87FA-98C5-48AA-BBB3-E5AFE8533645}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EduSpider.IServices", "EduSpider.IServices\EduSpider.IServices.csproj", "{996CD42D-034F-44CC-8035-B2AA0B300548}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Services", "Services", "{C2A22F96-320A-4FB5-9567-CEEBC8F9E29D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EduSpider.Services", "EduSpider.Services\EduSpider.Services.csproj", "{96EAC74C-BF18-49CB-9732-3E07829F00F3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EduSpider.WebApi", "EduSpider.WebApi\EduSpider.WebApi.csproj", "{F0A5853B-7AA9-43BF-8E81-98B65F44A269}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EduSpider.Utility", "EduSpider.Utility\EduSpider.Utility.csproj", "{0C1E337D-74C6-45D7-94A5-4D5F4E552FC4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EduSpider", "EduSpider\EduSpider.csproj", "{DAC5E8C6-98DF-4B33-9E2C-452DDE54A5FA}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{58B2199B-FE72-4F48-972D-F7FE32A28A0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{58B2199B-FE72-4F48-972D-F7FE32A28A0F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{58B2199B-FE72-4F48-972D-F7FE32A28A0F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{58B2199B-FE72-4F48-972D-F7FE32A28A0F}.Release|Any CPU.Build.0 = Release|Any CPU
{132DB610-CFCB-4AEE-BBA1-390DCE5179F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{132DB610-CFCB-4AEE-BBA1-390DCE5179F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{132DB610-CFCB-4AEE-BBA1-390DCE5179F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{132DB610-CFCB-4AEE-BBA1-390DCE5179F1}.Release|Any CPU.Build.0 = Release|Any CPU
{475C87FA-98C5-48AA-BBB3-E5AFE8533645}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{475C87FA-98C5-48AA-BBB3-E5AFE8533645}.Debug|Any CPU.Build.0 = Debug|Any CPU
{475C87FA-98C5-48AA-BBB3-E5AFE8533645}.Release|Any CPU.ActiveCfg = Release|Any CPU
{475C87FA-98C5-48AA-BBB3-E5AFE8533645}.Release|Any CPU.Build.0 = Release|Any CPU
{996CD42D-034F-44CC-8035-B2AA0B300548}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{996CD42D-034F-44CC-8035-B2AA0B300548}.Debug|Any CPU.Build.0 = Debug|Any CPU
{996CD42D-034F-44CC-8035-B2AA0B300548}.Release|Any CPU.ActiveCfg = Release|Any CPU
{996CD42D-034F-44CC-8035-B2AA0B300548}.Release|Any CPU.Build.0 = Release|Any CPU
{96EAC74C-BF18-49CB-9732-3E07829F00F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{96EAC74C-BF18-49CB-9732-3E07829F00F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{96EAC74C-BF18-49CB-9732-3E07829F00F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{96EAC74C-BF18-49CB-9732-3E07829F00F3}.Release|Any CPU.Build.0 = Release|Any CPU
{F0A5853B-7AA9-43BF-8E81-98B65F44A269}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F0A5853B-7AA9-43BF-8E81-98B65F44A269}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F0A5853B-7AA9-43BF-8E81-98B65F44A269}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F0A5853B-7AA9-43BF-8E81-98B65F44A269}.Release|Any CPU.Build.0 = Release|Any CPU
{0C1E337D-74C6-45D7-94A5-4D5F4E552FC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0C1E337D-74C6-45D7-94A5-4D5F4E552FC4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0C1E337D-74C6-45D7-94A5-4D5F4E552FC4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0C1E337D-74C6-45D7-94A5-4D5F4E552FC4}.Release|Any CPU.Build.0 = Release|Any CPU
{DAC5E8C6-98DF-4B33-9E2C-452DDE54A5FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DAC5E8C6-98DF-4B33-9E2C-452DDE54A5FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DAC5E8C6-98DF-4B33-9E2C-452DDE54A5FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DAC5E8C6-98DF-4B33-9E2C-452DDE54A5FA}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{58B2199B-FE72-4F48-972D-F7FE32A28A0F} = {1BE47B3D-D38F-4CAE-8E6A-4A1FA95109FD}
{132DB610-CFCB-4AEE-BBA1-390DCE5179F1} = {1BE47B3D-D38F-4CAE-8E6A-4A1FA95109FD}
{475C87FA-98C5-48AA-BBB3-E5AFE8533645} = {1BE47B3D-D38F-4CAE-8E6A-4A1FA95109FD}
{996CD42D-034F-44CC-8035-B2AA0B300548} = {C2A22F96-320A-4FB5-9567-CEEBC8F9E29D}
{96EAC74C-BF18-49CB-9732-3E07829F00F3} = {C2A22F96-320A-4FB5-9567-CEEBC8F9E29D}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {4E86499B-6FCF-4495-8E89-18944F3DB179}
EndGlobalSection
EndGlobal
......@@ -27,9 +27,7 @@
<Content Include="Spiders\EasterLineRule\PassengerHelper.cs" />
<Content Include="Spiders\EasterLineRule\QueryFlightHelper.cs" />
<Content Include="Spiders\EasterLineRule\TicketOrderHelper.cs" />
<Content Include="zh_CN.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
......@@ -37,11 +35,11 @@
<PackageReference Include="OpenCvSharp4.Windows" Version="4.5.5.20211231" />
<PackageReference Include="Selenium.WebDriver" Version="4.1.0" />
<PackageReference Include="Selenium.WebDriver.ChromeDriver" Version="100.0.4896.6000" />
<PackageReference Include="Serilog.AspNetCore" Version="3.4.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.RollingFile" Version="3.3.0" />
<PackageReference Include="Serilog.Sinks.PeriodicBatching" Version="2.3.0" />
<PackageReference Include="System.Drawing.Common" Version="6.0.0" />
<PackageReference Include="Serilog.AspNetCore" Version="3.4.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.RollingFile" Version="3.3.0" />
<PackageReference Include="Serilog.Sinks.PeriodicBatching" Version="2.3.0" />
<PackageReference Include="System.Drawing.Common" Version="6.0.0" />
</ItemGroup>
</Project>

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.1.32210.238
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TicketSpider", "TicketSpider.csproj", "{53EAE111-750E-4BB3-8E84-3EC67776A4DC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{53EAE111-750E-4BB3-8E84-3EC67776A4DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{53EAE111-750E-4BB3-8E84-3EC67776A4DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{53EAE111-750E-4BB3-8E84-3EC67776A4DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{53EAE111-750E-4BB3-8E84-3EC67776A4DC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {8F140037-DD2A-4035-B86C-323926118022}
EndGlobalSection
EndGlobal
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment