From c282ecffcf9a21f5f0e8a804d160aa7c808ab178 Mon Sep 17 00:00:00 2001 From: yifan_zhou <1620395434@qq.com> Date: Tue, 16 Jun 2020 09:49:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=81=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WebApi.Api/WebApi.Api.csproj" | 7 ++ .../WebApi.Data/Admin3000Context.cs" | 19 +++++ .../WebApi.Data/BaseEntity.cs" | 30 +++++++ .../WebApi.Data/Entity/Logs.cs" | 19 +++++ .../WebApi.Data/Entity/Roles.cs" | 15 ++++ .../WebApi.Data/Entity/Users.cs" | 17 ++++ .../WebApi.Data/WebApi.Data.csproj" | 12 +++ .../WebApi.Domain/EfRespository.cs" | 82 +++++++++++++++++++ .../WebApi.Domain/Enum/LogsLevel.cs" | 17 ++++ .../WebApi.Domain/IRespository.cs" | 26 ++++++ .../WebApi.Domain/WebApi.Domain.csproj" | 15 ++++ .../WebApi.Implement/WebApi.Implement.csproj" | 7 ++ .../WebApi.InterFace/EfRespository.cs" | 49 +++++++++++ .../WebApi.InterFace/IRespository.cs" | 24 ++++++ .../WebApi.InterFace/WebApi.InteFace.csproj" | 11 +++ .../WebApi.Service/WebApi.Service.csproj" | 7 ++ .../WebApi.Text/WebApi.Text.csproj" | 7 ++ .../WebApi.Util/Dbinitializer.cs" | 60 ++++++++++++++ .../Filters/GlobalExceptionFilter.cs" | 49 +++++++++++ .../WebApi.Util/WebApi.Utils.csproj" | 18 ++++ .../WebApi.sln" | 67 +++++++++++++++ 21 files changed, 558 insertions(+) create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.Api/WebApi.Api.csproj" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.Data/Admin3000Context.cs" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.Data/BaseEntity.cs" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.Data/Entity/Logs.cs" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.Data/Entity/Roles.cs" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.Data/Entity/Users.cs" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.Data/WebApi.Data.csproj" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.Domain/EfRespository.cs" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.Domain/Enum/LogsLevel.cs" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.Domain/IRespository.cs" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.Domain/WebApi.Domain.csproj" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.Implement/WebApi.Implement.csproj" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.InterFace/EfRespository.cs" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.InterFace/IRespository.cs" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.InterFace/WebApi.InteFace.csproj" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.Service/WebApi.Service.csproj" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.Text/WebApi.Text.csproj" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.Util/Dbinitializer.cs" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.Util/Filters/GlobalExceptionFilter.cs" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.Util/WebApi.Utils.csproj" create mode 100644 "\345\221\250\344\270\200\345\270\206/WebApi.sln" diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.Api/WebApi.Api.csproj" "b/\345\221\250\344\270\200\345\270\206/WebApi.Api/WebApi.Api.csproj" new file mode 100644 index 0000000..9f5c4f4 --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.Api/WebApi.Api.csproj" @@ -0,0 +1,7 @@ + + + + netstandard2.0 + + + diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.Data/Admin3000Context.cs" "b/\345\221\250\344\270\200\345\270\206/WebApi.Data/Admin3000Context.cs" new file mode 100644 index 0000000..27142a9 --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.Data/Admin3000Context.cs" @@ -0,0 +1,19 @@ +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Text; +using WebApi.Data.Entity; + +namespace WebApi.Data +{ + public class Admin3000Context : DbContext + { + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + { + optionsBuilder.UseSqlServer("sql=.;database=Admin3000;uid=sa;pwd=123456;"); + } + public DbSet Users { get; set; } + + public DbSet Roles { get; set; } + } +} diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.Data/BaseEntity.cs" "b/\345\221\250\344\270\200\345\270\206/WebApi.Data/BaseEntity.cs" new file mode 100644 index 0000000..45be4c0 --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.Data/BaseEntity.cs" @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WebApi.Data +{ + public class BaseEntity + { + public BaseEntity() + { + IsActived = true; + IsDeleted = false; + CreatedTime = DateTime.Now; + UpdatedTime = DateTime.Now; + } + public int Id { get; set; } + + public bool IsActived { get; set; } + + public bool IsDeleted { get; set; } + + public int DisPlayOrder { get; set; } + + public DateTime CreatedTime { get; set; } + + public DateTime UpdatedTime { get; set; } + + public string Remarks { get; set; } + } +} diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.Data/Entity/Logs.cs" "b/\345\221\250\344\270\200\345\270\206/WebApi.Data/Entity/Logs.cs" new file mode 100644 index 0000000..fc2c2e0 --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.Data/Entity/Logs.cs" @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WebApi.Data.Entity +{ + public class Logs:BaseEntity + { + public int LogLevel { get; set; } + + public string ShoreMessage { get; set; } + + public string FullMessage { get; set; } + + public int UserId { get; set; } + + public string ReferenceUrl { get; set; } + } +} diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.Data/Entity/Roles.cs" "b/\345\221\250\344\270\200\345\270\206/WebApi.Data/Entity/Roles.cs" new file mode 100644 index 0000000..217265f --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.Data/Entity/Roles.cs" @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WebApi.Data.Entity +{ + public class Roles : BaseEntity + { + public string RolesName { get; set; } + + public string Description { get; set; } + + public IEnumerable Users { get; set; } + } +} diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.Data/Entity/Users.cs" "b/\345\221\250\344\270\200\345\270\206/WebApi.Data/Entity/Users.cs" new file mode 100644 index 0000000..3220c45 --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.Data/Entity/Users.cs" @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WebApi.Data.Entity +{ + public class Users:BaseEntity + { + public string UsersName { get; set; } + + public string PassWord { get; set; } + + public int RoleId { get; set; } + + public Roles Roles { get; set; } + } +} diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.Data/WebApi.Data.csproj" "b/\345\221\250\344\270\200\345\270\206/WebApi.Data/WebApi.Data.csproj" new file mode 100644 index 0000000..45bf2af --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.Data/WebApi.Data.csproj" @@ -0,0 +1,12 @@ + + + + netstandard2.0 + + + + + + + + diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.Domain/EfRespository.cs" "b/\345\221\250\344\270\200\345\270\206/WebApi.Domain/EfRespository.cs" new file mode 100644 index 0000000..406ba31 --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.Domain/EfRespository.cs" @@ -0,0 +1,82 @@ +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using WebApi.Data; + +namespace WebApi.Domain +{ + public class EfRespository : IRespository where T : BaseEntity + { + + private readonly Admin3000Context db; + + public EfRespository(Admin3000Context Dbcontext) + { + db = Dbcontext; + } + + private DbSet _entity; + + protected DbSet Entity + { + get + { + if (_entity == null) + { + _entity = db.Set(); + } + return _entity; + } + } + public IQueryable Table + { + get + { + return _entity; + } + } + + public void Delete(T entity) + { + this.Entity.Remove(entity); + db.SaveChanges(); + } + + public void Delete(int id) + { + var row = Table.Where(x => x.Id == id).FirstOrDefault(); + Delete(row); + } + + public void Insert(T entity) + { + Entity.Add(entity); + db.SaveChanges(); + } + + public void InsertBulk(IEnumerable list) + { + Entity.AddRange(list); + db.SaveChanges(); + } + + public void Update(T entity) + { + Entity.Update(entity); + db.SaveChanges(); + } + + public void DeletedBulk(IEnumerable entities) + { + Entity.RemoveRange(entities); + db.SaveChanges(); + } + + public T GetById(int id) + { + return Entity.Where(x => x.Id == id).FirstOrDefault(); + } + } +} diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.Domain/Enum/LogsLevel.cs" "b/\345\221\250\344\270\200\345\270\206/WebApi.Domain/Enum/LogsLevel.cs" new file mode 100644 index 0000000..ec61091 --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.Domain/Enum/LogsLevel.cs" @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WebApi.Domain.Enum +{ + public enum LogsLevel + { + + 信息 = 10, + 调试 = 20, + 警告 = 30, + 错误 = 40, + 崩溃 = 50, + + } +} diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.Domain/IRespository.cs" "b/\345\221\250\344\270\200\345\270\206/WebApi.Domain/IRespository.cs" new file mode 100644 index 0000000..e8d402e --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.Domain/IRespository.cs" @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WebApi.Domain +{ + interface IRespository + { + IQueryable Table { get; } + void Insert(T entity); + + void InsertBulk(IEnumerable list); + + void Update(T entity); + + + void Delete(T entity); + + void Delete(int id); + + void DeletedBulk(IEnumerable entities); + + T GetById(int id); + } +} diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.Domain/WebApi.Domain.csproj" "b/\345\221\250\344\270\200\345\270\206/WebApi.Domain/WebApi.Domain.csproj" new file mode 100644 index 0000000..53ffe1f --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.Domain/WebApi.Domain.csproj" @@ -0,0 +1,15 @@ + + + + netstandard2.0 + + + + + + + + + + + diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.Implement/WebApi.Implement.csproj" "b/\345\221\250\344\270\200\345\270\206/WebApi.Implement/WebApi.Implement.csproj" new file mode 100644 index 0000000..9f5c4f4 --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.Implement/WebApi.Implement.csproj" @@ -0,0 +1,7 @@ + + + + netstandard2.0 + + + diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.InterFace/EfRespository.cs" "b/\345\221\250\344\270\200\345\270\206/WebApi.InterFace/EfRespository.cs" new file mode 100644 index 0000000..dd32286 --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.InterFace/EfRespository.cs" @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using WebApi.Data; +using WebApi.Data.Entity; + +namespace WebApi.InteFace +{ + public class EfRespository : IRespositorywhere T : BaseEntity + { + public IQueryable Table => throw new NotImplementedException(); + + public void Delted(T entity) + { + throw new NotImplementedException(); + } + + public void Delted(int id) + { + throw new NotImplementedException(); + } + + public T Getbyid(int id) + { + throw new NotImplementedException(); + } + + public void Insert(T entity) + { + throw new NotImplementedException(); + } + + public void InsertBulk(IEnumerable List) + { + throw new NotImplementedException(); + } + + public void Update(T entity) + { + throw new NotImplementedException(); + } + + public void InsertBulk(Users[] user) + { + throw new NotImplementedException(); + } + } +} diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.InterFace/IRespository.cs" "b/\345\221\250\344\270\200\345\270\206/WebApi.InterFace/IRespository.cs" new file mode 100644 index 0000000..92d3aff --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.InterFace/IRespository.cs" @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WebApi.InteFace +{ + public interface IRespository + { + IQueryable Table { get; } + + T Getbyid(int id); + + void Insert(T entity); + + void InsertBulk(IEnumerable List); + + void Update(T entity); + + void Delted(T entity); + + void Delted(int id); + } +} diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.InterFace/WebApi.InteFace.csproj" "b/\345\221\250\344\270\200\345\270\206/WebApi.InterFace/WebApi.InteFace.csproj" new file mode 100644 index 0000000..56356ba --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.InterFace/WebApi.InteFace.csproj" @@ -0,0 +1,11 @@ + + + + netstandard2.0 + + + + + + + diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.Service/WebApi.Service.csproj" "b/\345\221\250\344\270\200\345\270\206/WebApi.Service/WebApi.Service.csproj" new file mode 100644 index 0000000..9f5c4f4 --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.Service/WebApi.Service.csproj" @@ -0,0 +1,7 @@ + + + + netstandard2.0 + + + diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.Text/WebApi.Text.csproj" "b/\345\221\250\344\270\200\345\270\206/WebApi.Text/WebApi.Text.csproj" new file mode 100644 index 0000000..9f5c4f4 --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.Text/WebApi.Text.csproj" @@ -0,0 +1,7 @@ + + + + netstandard2.0 + + + diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.Util/Dbinitializer.cs" "b/\345\221\250\344\270\200\345\270\206/WebApi.Util/Dbinitializer.cs" new file mode 100644 index 0000000..782048e --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.Util/Dbinitializer.cs" @@ -0,0 +1,60 @@ +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using WebApi.Data; +using WebApi.Data.Entity; +using WebApi.InteFace; + +namespace WebApi.Utils +{ + public class Dbinitializer + { + public class DbInitializeHelper + { + public static void Initialize(IServiceProvider serviceProvider) + { + using (var scope = serviceProvider.CreateScope()) + { + var db = scope.ServiceProvider.GetService(typeof(Admin3000Context)) as Admin3000Context; + + var _userRespository = scope.ServiceProvider.GetService(typeof(IRespository)) as EfRespository; + + var _roleRespository = scope.ServiceProvider.GetService(typeof(IRespository)) as EfRespository; + + db.Database.EnsureCreated(); + + var tempRole = db.Users.Any(); + + if (!tempRole) + { + var role = new Roles + { + RolesName = "管理", + Description = "超管" + }; + + _roleRespository.Insert(role); + + _userRespository.InsertBulk(new Users[] + { + new Users + { + UsersName="zzz", + PassWord="123456789", + RoleId=role.Id + }, + new Users + { + UsersName="bbq", + PassWord="123456789", + RoleId=role.Id + } + }); + } + } + } + } + } +} diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.Util/Filters/GlobalExceptionFilter.cs" "b/\345\221\250\344\270\200\345\270\206/WebApi.Util/Filters/GlobalExceptionFilter.cs" new file mode 100644 index 0000000..f58fae7 --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.Util/Filters/GlobalExceptionFilter.cs" @@ -0,0 +1,49 @@ +using log4net; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Web.Http.ExceptionHandling; +using System.Web.Http.Filters; + +namespace WebApi.Utils.Filters +{ + public class GlobalExceptionFilter : IExceptionFilter + { + private readonly ILog _log; + + public GlobalExceptionFilter(ILog log) + { + _log = log; + } + + public bool AllowMultiple => throw new NotImplementedException(); + + public Task ExecuteExceptionFilterAsync(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken) + { + throw new NotImplementedException(); + } + + public void OnException(ExceptionContext context) + { + _log.Error(context.Exception); + + if (context.ExceptionHandled == false) + { + context.Result = new ContentResult + { + Content = context.Exception.Message, + StatusCode = StatusCodes.Status200OK, + ContentType = "text/html;charset=utf-8" + }; + } + context.ExceptionHandled = true; + } + + + + } +} diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.Util/WebApi.Utils.csproj" "b/\345\221\250\344\270\200\345\270\206/WebApi.Util/WebApi.Utils.csproj" new file mode 100644 index 0000000..24d060d --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.Util/WebApi.Utils.csproj" @@ -0,0 +1,18 @@ + + + + netstandard2.0 + + + + + + + + + + + + + + diff --git "a/\345\221\250\344\270\200\345\270\206/WebApi.sln" "b/\345\221\250\344\270\200\345\270\206/WebApi.sln" new file mode 100644 index 0000000..456b77d --- /dev/null +++ "b/\345\221\250\344\270\200\345\270\206/WebApi.sln" @@ -0,0 +1,67 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29613.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebApi.InteFace", "WebApi.InterFace\WebApi.InteFace.csproj", "{C4C6275E-B7CF-480D-9521-08DBFAF36165}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebApi.Text", "WebApi.Text\WebApi.Text.csproj", "{AE73EC1F-8C31-4CF8-9991-DAC30A248C34}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebApi.Domain", "WebApi.Domain\WebApi.Domain.csproj", "{BDB17EFA-2B64-486B-922E-F474936BE2C0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebApi.Utils", "WebApi.Util\WebApi.Utils.csproj", "{B7EEF456-AA9D-4C08-9C24-89B7CA200C1D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebApi.Service", "WebApi.Service\WebApi.Service.csproj", "{0D78F115-624D-4D23-AB28-FAC94674B5A6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebApi.Implement", "WebApi.Implement\WebApi.Implement.csproj", "{7B34541E-039A-44CF-B0BC-0210999FE85A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebApi.Data", "WebApi.Data\WebApi.Data.csproj", "{1B4DA895-4EEB-43A9-ACAC-0C5E88F8C491}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebApi.Api", "WebApi.Api\WebApi.Api.csproj", "{CF639F92-CDA9-4DC0-958E-27670A657D95}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C4C6275E-B7CF-480D-9521-08DBFAF36165}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C4C6275E-B7CF-480D-9521-08DBFAF36165}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C4C6275E-B7CF-480D-9521-08DBFAF36165}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C4C6275E-B7CF-480D-9521-08DBFAF36165}.Release|Any CPU.Build.0 = Release|Any CPU + {AE73EC1F-8C31-4CF8-9991-DAC30A248C34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AE73EC1F-8C31-4CF8-9991-DAC30A248C34}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AE73EC1F-8C31-4CF8-9991-DAC30A248C34}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AE73EC1F-8C31-4CF8-9991-DAC30A248C34}.Release|Any CPU.Build.0 = Release|Any CPU + {BDB17EFA-2B64-486B-922E-F474936BE2C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BDB17EFA-2B64-486B-922E-F474936BE2C0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BDB17EFA-2B64-486B-922E-F474936BE2C0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BDB17EFA-2B64-486B-922E-F474936BE2C0}.Release|Any CPU.Build.0 = Release|Any CPU + {B7EEF456-AA9D-4C08-9C24-89B7CA200C1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7EEF456-AA9D-4C08-9C24-89B7CA200C1D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7EEF456-AA9D-4C08-9C24-89B7CA200C1D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B7EEF456-AA9D-4C08-9C24-89B7CA200C1D}.Release|Any CPU.Build.0 = Release|Any CPU + {0D78F115-624D-4D23-AB28-FAC94674B5A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0D78F115-624D-4D23-AB28-FAC94674B5A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0D78F115-624D-4D23-AB28-FAC94674B5A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0D78F115-624D-4D23-AB28-FAC94674B5A6}.Release|Any CPU.Build.0 = Release|Any CPU + {7B34541E-039A-44CF-B0BC-0210999FE85A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7B34541E-039A-44CF-B0BC-0210999FE85A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7B34541E-039A-44CF-B0BC-0210999FE85A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7B34541E-039A-44CF-B0BC-0210999FE85A}.Release|Any CPU.Build.0 = Release|Any CPU + {1B4DA895-4EEB-43A9-ACAC-0C5E88F8C491}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B4DA895-4EEB-43A9-ACAC-0C5E88F8C491}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B4DA895-4EEB-43A9-ACAC-0C5E88F8C491}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B4DA895-4EEB-43A9-ACAC-0C5E88F8C491}.Release|Any CPU.Build.0 = Release|Any CPU + {CF639F92-CDA9-4DC0-958E-27670A657D95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF639F92-CDA9-4DC0-958E-27670A657D95}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CF639F92-CDA9-4DC0-958E-27670A657D95}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CF639F92-CDA9-4DC0-958E-27670A657D95}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {7A6084C4-6416-4B4F-A66F-07D4C0E2D03E} + EndGlobalSection +EndGlobal -- Gitee