From 8c2c01e71f2a3a56922b1ac638e74d643a3365be Mon Sep 17 00:00:00 2001 From: wanggang <76527413@qq.com> Date: Tue, 14 Apr 2020 11:10:00 +0800 Subject: [PATCH] 1.0.0-beta.414.1 Former-commit-id: db5716604343df2afb405cac03f474a82f335c1d --- projects/Infrastructure/Data/EfDbContext.cs | 29 ++++++++-- .../Events/EntityInsertedEvent.cs | 4 +- .../Infrastructure/Events/EventPublisher.cs | 5 +- projects/Infrastructure/Infrastructure.csproj | 2 +- projects/IoT.Shared/IoT.Shared.csproj | 2 +- projects/IoT.Shared/Services/DataService.cs | 54 ++----------------- .../Services/IoTCenter/IoTCenterHub.cs | 3 -- projects/IoTCenter/Api/ApiController.cs | 22 +++++--- .../Controllers/GlobalSceneController.cs | 21 +------- .../GlobalSceneTiggerController.cs | 19 ------- .../Controllers/GlobalSceneTimerController.cs | 19 ------- projects/IoTCenter/IoTCenter.csproj | 2 +- .../Services/IoTCenterEventHandler.cs | 9 ++-- projects/IoTCenter/Startup.cs | 23 +++++++- projects/IoTCenter/appsettings.json | 6 +++ .../DeviceServices/BaseDeviceService.cs | 2 - projects/IoTNode/IoTNode.csproj | 2 +- .../IoTNode/Services/IoTNodeEventHandler.cs | 17 +++--- projects/JobServer/JobServer.csproj | 2 +- projects/StudyCenter/StudyCenter.csproj | 2 +- projects/UserCenter/UserCenter.csproj | 2 +- projects/WebMVC/WebMVC.csproj | 2 +- projects/WebSPA/WebSPA.csproj | 2 +- 23 files changed, 95 insertions(+), 156 deletions(-) diff --git a/projects/Infrastructure/Data/EfDbContext.cs b/projects/Infrastructure/Data/EfDbContext.cs index e894e517..63c49a72 100644 --- a/projects/Infrastructure/Data/EfDbContext.cs +++ b/projects/Infrastructure/Data/EfDbContext.cs @@ -1,4 +1,5 @@ using Infrastructure.Domain; +using Infrastructure.Events; using Infrastructure.Extensions; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; @@ -23,13 +24,15 @@ namespace Infrastructure.Data private readonly IHostEnvironment _env; private readonly IConfiguration _cfg; private readonly IDbConfig _dbConfig; + private readonly IEventPublisher _publisher; - public EfDbContext(DbContextOptions options, ILogger logger, IHostEnvironment env, IConfiguration cfg, IDbConfig dbConfig) : base(options) + public EfDbContext(DbContextOptions options, ILogger logger, IHostEnvironment env, IConfiguration cfg, IDbConfig dbConfig, IEventPublisher publisher) : base(options) { this._logger = logger; this._env = env; this._cfg = cfg; this._dbConfig = dbConfig; + this._publisher = publisher; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) @@ -69,8 +72,8 @@ namespace Infrastructure.Data public override int SaveChanges() { this.ChangeTracker.DetectChanges(); - var entries = this.ChangeTracker.Entries().Where(o => o.State == EntityState.Added || - o.State == EntityState.Modified || o.State == EntityState.Deleted).ToList(); + var entries = this.ChangeTracker.Entries().Where(o => o.State == EntityState.Added || o.State == EntityState.Modified || o.State == EntityState.Deleted).ToList(); + var events = new List(); foreach (var entry in entries) { var entity = entry.Entity as BaseEntity; @@ -86,12 +89,28 @@ namespace Infrastructure.Data { (entity as IVersionEntity).RowVersion = Guid.NewGuid().ToString(); } - + if (entry.State == EntityState.Added) + { + events.Add(Activator.CreateInstance(typeof(EntityInsertedEvent<>).MakeGenericType(entry.Entity.GetType()), entry.Entity)); + } + else if (entry.State == EntityState.Modified) + { + events.Add(Activator.CreateInstance(typeof(EntityUpdatedEvent<>).MakeGenericType(entry.Entity.GetType()), entry.Entity)); + } + else if (entry.State == EntityState.Deleted) + { + events.Add(Activator.CreateInstance(typeof(EntityDeletedEvent<>).MakeGenericType(entry.Entity.GetType()), entry.Entity)); + } this._logger.LogDebug($"{nameof(EfDbContext)}>{entity.GetType().Name}:{entry.State}"); } try { - return base.SaveChanges(); + var result = base.SaveChanges(); + if (events.Count > 0) + { + events.ForEach(o => this._publisher.Publish(o)); + } + return result; } catch (DbUpdateException ex) { diff --git a/projects/Infrastructure/Events/EntityInsertedEvent.cs b/projects/Infrastructure/Events/EntityInsertedEvent.cs index 8f5c8b1f..c118d3dd 100644 --- a/projects/Infrastructure/Events/EntityInsertedEvent.cs +++ b/projects/Infrastructure/Events/EntityInsertedEvent.cs @@ -1,6 +1,4 @@ -using System; - -namespace Infrastructure.Events +namespace Infrastructure.Events { public class EntityInsertedEvent : BaseEvent { diff --git a/projects/Infrastructure/Events/EventPublisher.cs b/projects/Infrastructure/Events/EventPublisher.cs index 2febac15..773f14bd 100644 --- a/projects/Infrastructure/Events/EventPublisher.cs +++ b/projects/Infrastructure/Events/EventPublisher.cs @@ -20,13 +20,12 @@ namespace Infrastructure.Events Task.Run(() => { using var scope = _applicationServices.CreateScope(); - var fullName = typeof(IEventHander).FullName; - var subscribers = scope.ServiceProvider.GetServices>().ToList(); + var subscribers = scope.ServiceProvider.GetServices(typeof(IEventHander<>).MakeGenericType(eventMessage.GetType())).ToList(); subscribers.ForEach(subscriber => { try { - subscriber.Handle(eventMessage); + subscriber.GetType().GetMethod("Handle", new Type[] { eventMessage.GetType() }).Invoke(subscriber, new object[] { eventMessage }); } catch (Exception ex) { diff --git a/projects/Infrastructure/Infrastructure.csproj b/projects/Infrastructure/Infrastructure.csproj index 0d010440..6a6426e7 100644 --- a/projects/Infrastructure/Infrastructure.csproj +++ b/projects/Infrastructure/Infrastructure.csproj @@ -5,7 +5,7 @@ true true true - 1.0.0-beta.413 + 1.0.0-beta.414 diff --git a/projects/IoT.Shared/IoT.Shared.csproj b/projects/IoT.Shared/IoT.Shared.csproj index 2b7ef953..34690c8d 100644 --- a/projects/IoT.Shared/IoT.Shared.csproj +++ b/projects/IoT.Shared/IoT.Shared.csproj @@ -5,7 +5,7 @@ true true true - 1.0.0-beta.413 + 1.0.0-beta.414 diff --git a/projects/IoT.Shared/Services/DataService.cs b/projects/IoT.Shared/Services/DataService.cs index 9d90e131..137604e8 100644 --- a/projects/IoT.Shared/Services/DataService.cs +++ b/projects/IoT.Shared/Services/DataService.cs @@ -1,10 +1,7 @@ -using Application.Domain.Entities; -using Infrastructure.Application; +using Infrastructure.Application; using Infrastructure.Data; using Infrastructure.Domain; -using Infrastructure.Events; using Infrastructure.Extensions; -using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; @@ -31,11 +28,7 @@ namespace IoT.Shared.Services foreach (var entity in entities) { repo.Delete(entity); - if (repo.SaveChanges() > 0) - { - var eventPublisher = scope.ServiceProvider.GetService(); - eventPublisher.Publish(new EntityDeletedEvent(entity)); - } + repo.SaveChanges(); } } @@ -47,26 +40,13 @@ namespace IoT.Shared.Services var repo = scope.ServiceProvider.GetService>(); var model = message.FromJson(); var entity = repo.Table().FirstOrDefault(o => o.Id == model.Id); - var isNew = false; if (entity == null) { entity = Activator.CreateInstance(); repo.Add(entity); - isNew = true; } entity.From(model); - if (repo.SaveChanges() > 0) - { - var eventPublisher = scope.ServiceProvider.GetService(); - if (isNew) - { - eventPublisher.Publish(new EntityInsertedEvent(entity)); - } - else - { - eventPublisher.Publish(new EntityUpdatedEvent(entity)); - } - } + repo.SaveChanges(); } public T Edit(TEditModel model) @@ -76,33 +56,13 @@ namespace IoT.Shared.Services using var scope = this._services.CreateScope(); var repo = scope.ServiceProvider.GetService>(); var entity = repo.Table().FirstOrDefault(o => o.Id == model.Id); - var isNew = false; if (entity == null) { entity = Activator.CreateInstance(); repo.Add(entity); - isNew = true; } entity.From(model); - if (repo.SaveChanges() > 0) - { - if (entity is Data) - { - var data = entity as Data; - data.Device = scope.ServiceProvider.GetService>().ReadOnlyTable().Include(o => o.Node) - .Where(o => o.Id == data.DeviceId) - .Select(o => new Device { DisplayName = o.DisplayName, Node = new Node { Name = o.Node.Name } }).FirstOrDefault(); - } - var eventPublisher = scope.ServiceProvider.GetService(); - if (isNew) - { - eventPublisher.Publish(new EntityInsertedEvent(entity)); - } - else - { - eventPublisher.Publish(new EntityUpdatedEvent(entity)); - } - } + repo.SaveChanges(); return entity; } @@ -118,11 +78,7 @@ namespace IoT.Shared.Services if (entity != null) { repo.Delete(entity); - if (repo.SaveChanges() > 0) - { - var eventPublisher = scope.ServiceProvider.GetService(); - eventPublisher.Publish(new EntityDeletedEvent(entity)); - } + repo.SaveChanges(); } } catch (Exception ex) diff --git a/projects/IoT.Shared/Services/IoTCenter/IoTCenterHub.cs b/projects/IoT.Shared/Services/IoTCenter/IoTCenterHub.cs index 9e9d0622..e4461fb1 100644 --- a/projects/IoT.Shared/Services/IoTCenter/IoTCenterHub.cs +++ b/projects/IoT.Shared/Services/IoTCenter/IoTCenterHub.cs @@ -24,7 +24,6 @@ namespace IoTCenter.Services { private readonly IConfiguration _cfg; private readonly ILogger _logger; - private readonly IEventPublisher _eventPublisher; private readonly IRepository _nodeRepo; private readonly IRepository _deviceRepo; private readonly IRepository _dataRepo; @@ -41,7 +40,6 @@ namespace IoTCenter.Services public IoTCenterHub(IConfiguration cfg, ILogger logger, - IEventPublisher eventPublisher, IRepository nodeRepo, IRepository deviceRepo, IRepository dataRepo, @@ -58,7 +56,6 @@ namespace IoTCenter.Services { this._cfg = cfg; this._logger = logger; - this._eventPublisher = eventPublisher; this._nodeRepo = nodeRepo; this._deviceRepo = deviceRepo; this._dataRepo = dataRepo; diff --git a/projects/IoTCenter/Api/ApiController.cs b/projects/IoTCenter/Api/ApiController.cs index b7dffed0..d36f4fbc 100644 --- a/projects/IoTCenter/Api/ApiController.cs +++ b/projects/IoTCenter/Api/ApiController.cs @@ -128,18 +128,24 @@ namespace UserCenter.Controllers var timer = this._sceneTimerRepo.ReadOnlyTable() .Include(o => o.Scene).ThenInclude(o => o.SceneCommands).ThenInclude(o => o.Command).ThenInclude(o => o.Device).ThenInclude(o => o.Node) .FirstOrDefault(o => o.Id == id); - - foreach (var sceneCommand in timer.Scene.SceneCommands) + if (timer != null) { - try - { - this._hub.ServerToClient(Methods.ExecCommand, sceneCommand.CommandId, sceneCommand.Command.Device.Node.Number, null); - } - catch (Exception ex) + foreach (var sceneCommand in timer.Scene.SceneCommands) { - ex.PrintStack(); + try + { + this._hub.ServerToClient(Methods.ExecCommand, sceneCommand.CommandId, sceneCommand.Command.Device.Node.Number, null); + } + catch (Exception ex) + { + ex.PrintStack(); + } } } + else + { + this._logger.LogError($"timer {id} does not exist"); + } return Ok(); } catch (Exception ex) diff --git a/projects/IoTCenter/Areas/Admin/Controllers/GlobalSceneController.cs b/projects/IoTCenter/Areas/Admin/Controllers/GlobalSceneController.cs index df6a7a97..34b1e762 100644 --- a/projects/IoTCenter/Areas/Admin/Controllers/GlobalSceneController.cs +++ b/projects/IoTCenter/Areas/Admin/Controllers/GlobalSceneController.cs @@ -1,7 +1,6 @@ using Application.Domain.Entities; using Infrastructure.Application; using Infrastructure.Data; -using Infrastructure.Events; using Infrastructure.Web.Mvc; using IoTCenter.Application.Models; using Microsoft.AspNetCore.Authorization; @@ -14,11 +13,8 @@ namespace IoTCenter.Areas.Admin.Controllers [Area(nameof(Admin))] public class GlobalSceneController : CrudController, EditGlobalSceneModel, EditGlobalSceneModel> { - private readonly IEventPublisher _publiser; - - public GlobalSceneController(IRepository repo, IEventPublisher publisher) : base(repo) + public GlobalSceneController(IRepository repo) : base(repo) { - this._publiser = publisher; } public override IQueryable Query(PagedListModel model, IQueryable query) @@ -30,20 +26,5 @@ namespace IoTCenter.Areas.Admin.Controllers { base.ToDisplayModel(entity, model); } - - public override void OnInserted(Scene entity) - { - this._publiser.Publish(new EntityInsertedEvent(entity)); - } - - public override void OnUpdated(Scene entity) - { - this._publiser.Publish(new EntityUpdatedEvent(entity)); - } - - public override void OnDeleted(Scene entity) - { - this._publiser.Publish(new EntityDeletedEvent(entity)); - } } } \ No newline at end of file diff --git a/projects/IoTCenter/Areas/Admin/Controllers/GlobalSceneTiggerController.cs b/projects/IoTCenter/Areas/Admin/Controllers/GlobalSceneTiggerController.cs index 928ad0fa..384fe971 100644 --- a/projects/IoTCenter/Areas/Admin/Controllers/GlobalSceneTiggerController.cs +++ b/projects/IoTCenter/Areas/Admin/Controllers/GlobalSceneTiggerController.cs @@ -61,24 +61,5 @@ namespace IoTCenter.Areas.Admin.Controllers ViewData.Add(model.DeviceId, entity.Data.Device.DisplayName); } } - - public override void OnInserted(SceneTigger entity) - { - using var scope = this._sp.CreateScope(); - var eventPublisher = scope.ServiceProvider.GetService(); - eventPublisher.Publish(new EntityUpdatedEvent(entity)); - } - - public override void OnUpdated(SceneTigger entity) - { - this.OnInserted(entity); - } - - public override void OnDeleted(SceneTigger entity) - { - using var scope = this._sp.CreateScope(); - var eventPublisher = scope.ServiceProvider.GetService(); - eventPublisher.Publish(new EntityDeletedEvent(entity)); - } } } \ No newline at end of file diff --git a/projects/IoTCenter/Areas/Admin/Controllers/GlobalSceneTimerController.cs b/projects/IoTCenter/Areas/Admin/Controllers/GlobalSceneTimerController.cs index f7b6bdb3..a9056165 100644 --- a/projects/IoTCenter/Areas/Admin/Controllers/GlobalSceneTimerController.cs +++ b/projects/IoTCenter/Areas/Admin/Controllers/GlobalSceneTimerController.cs @@ -50,24 +50,5 @@ namespace IoTCenter.Areas.Admin.Controllers ViewData.Add(model.SceneId, entity.Scene.Name); } } - - public override void OnInserted(SceneTimer entity) - { - using var scope = this._sp.CreateScope(); - var eventPublisher = scope.ServiceProvider.GetService(); - eventPublisher.Publish(new EntityUpdatedEvent(entity)); - } - - public override void OnUpdated(SceneTimer entity) - { - this.OnInserted(entity); - } - - public override void OnDeleted(SceneTimer entity) - { - using var scope = this._sp.CreateScope(); - var eventPublisher = scope.ServiceProvider.GetService(); - eventPublisher.Publish(new EntityDeletedEvent(entity)); - } } } \ No newline at end of file diff --git a/projects/IoTCenter/IoTCenter.csproj b/projects/IoTCenter/IoTCenter.csproj index 1771f93e..a0e6871d 100644 --- a/projects/IoTCenter/IoTCenter.csproj +++ b/projects/IoTCenter/IoTCenter.csproj @@ -2,7 +2,7 @@ netcoreapp3.1 true - 1.0.0-beta.413 + 1.0.0-beta.414.1 diff --git a/projects/IoTCenter/Services/IoTCenterEventHandler.cs b/projects/IoTCenter/Services/IoTCenterEventHandler.cs index ed91819c..f6cecbec 100644 --- a/projects/IoTCenter/Services/IoTCenterEventHandler.cs +++ b/projects/IoTCenter/Services/IoTCenterEventHandler.cs @@ -82,7 +82,7 @@ namespace IoTCenter.Services { var url = _cfg.GetConnectionString("JobServer") + "/RecurringJob/AddOrUpdate"; var id = timer.Id.ToString(); - this.PostToJobServer(url, new + this.UpdateJobServer(url, new { id, url = $"{_cfg.GetConnectionString("JobCallBack")}/{id}", @@ -98,7 +98,7 @@ namespace IoTCenter.Services { var url = _cfg.GetConnectionString("JobServer") + "/RecurringJob/AddOrUpdate"; var id = timer.Id.ToString(); - this.PostToJobServer(url, new + this.UpdateJobServer(url, new { id, url = $"{_cfg.GetConnectionString("JobCallBack")}/{id}", @@ -113,7 +113,7 @@ namespace IoTCenter.Services if (_sceneRepo.ReadOnlyTable().Any(o => o.Id == timer.SceneId && o.NodeId == null)) { var url = _cfg.GetConnectionString("JobServer") + $"/RecurringJob/Remove/{timer.Id}"; - this.PostToJobServer(url); + this.UpdateJobServer(url); } } @@ -220,6 +220,7 @@ namespace IoTCenter.Services public void Handle(EntityUpdatedEvent message) { + message.Data.Device = _deviceRepo.ReadOnlyTable().Include(o => o.Node).Where(o => o.Id == message.Data.DeviceId).FirstOrDefault(); this.Notify(message); this.TiggerHandle(message); this.LogData(message.Data); @@ -270,7 +271,7 @@ namespace IoTCenter.Services #endregion Scene - private void PostToJobServer(string url, object data = null) + private void UpdateJobServer(string url, object data = null) { try { diff --git a/projects/IoTCenter/Startup.cs b/projects/IoTCenter/Startup.cs index 5cc72d12..706d936e 100644 --- a/projects/IoTCenter/Startup.cs +++ b/projects/IoTCenter/Startup.cs @@ -1,15 +1,20 @@ -using Infrastructure.Data; +using Application.Domain.Entities; +using Infrastructure.Data; using Infrastructure.Email; using Infrastructure.Sms; using Infrastructure.UI; using Infrastructure.Web; using IoT.Shared.Services; using IoTCenter.Services; +using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Routing; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; namespace IoTCenter { @@ -29,6 +34,22 @@ namespace IoTCenter base.ConfigureServices(services); } + public override void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) + { + base.Configure(app, env, loggerFactory); + // + Task.Run(() => + { + using var scope = app.ApplicationServices.CreateScope(); + var tiggerRepo = scope.ServiceProvider.GetService>(); + var tiggers = tiggerRepo.ReadOnlyTable().Where(o => o.Scene.NodeId == null).ToList(); + foreach (var tigger in tiggers) + { + IoTCenterEventHandler.Tiggers.TryAdd(tigger.Id, tigger); + } + }); + } + public override void ConfigureOptions(IServiceCollection services) { services.ConfigureOptions(new FileConfigureOptions(Env, new List { "IoT.Shared" })); diff --git a/projects/IoTCenter/appsettings.json b/projects/IoTCenter/appsettings.json index 9d48c0b7..de5c24fb 100644 --- a/projects/IoTCenter/appsettings.json +++ b/projects/IoTCenter/appsettings.json @@ -1,6 +1,12 @@ { "server.urls": "http://*:8011", "BasePath": "/IoTCenter", + "Logging": { + "LogLevel": { + "Default": "Warning", + "Microsoft": "Warning" + } + }, "tableprefix": "iot", "useRedisSignalR": "false", "useConfigServer": "false", diff --git a/projects/IoTNode/DeviceServices/BaseDeviceService.cs b/projects/IoTNode/DeviceServices/BaseDeviceService.cs index fa835bbd..32b4a687 100644 --- a/projects/IoTNode/DeviceServices/BaseDeviceService.cs +++ b/projects/IoTNode/DeviceServices/BaseDeviceService.cs @@ -72,8 +72,6 @@ namespace IoTNode.DeviceServices using var scope = _applicationServices.CreateScope(); var iotNodeClient = scope.ServiceProvider.GetService(); iotNodeClient.ClientToServer($"Edit{typeof(Data).Name}", data.To(), null); - var eventPubliser = scope.ServiceProvider.GetService(); - eventPubliser.Publish(new EntityUpdatedEvent(data)); } public void UpdateDevice(IRepository repo, Device device) diff --git a/projects/IoTNode/IoTNode.csproj b/projects/IoTNode/IoTNode.csproj index 144862ff..884674e5 100644 --- a/projects/IoTNode/IoTNode.csproj +++ b/projects/IoTNode/IoTNode.csproj @@ -2,7 +2,7 @@ netcoreapp3.1 true - 1.0.0-beta.413 + 1.0.0-beta.414 diff --git a/projects/IoTNode/Services/IoTNodeEventHandler.cs b/projects/IoTNode/Services/IoTNodeEventHandler.cs index 84dfc656..8c878301 100644 --- a/projects/IoTNode/Services/IoTNodeEventHandler.cs +++ b/projects/IoTNode/Services/IoTNodeEventHandler.cs @@ -1,13 +1,10 @@ using Application.Domain.Entities; using CSScriptLib; using Hangfire; -using Infrastructure.Data; using Infrastructure.Events; using Infrastructure.Extensions; -using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Concurrent; -using System.Linq; namespace IoTNode.Services { @@ -21,11 +18,11 @@ namespace IoTNode.Services IEventHander> { public static ConcurrentDictionary Tiggers = new ConcurrentDictionary(); - private readonly IServiceProvider _sp; + private readonly IoTNodeJob _job; - public IoTNodeEventHandler(IServiceProvider sp) + public IoTNodeEventHandler(IoTNodeJob job) { - this._sp = sp; + this._job = job; } public void Handle(EntityInsertedEvent message) @@ -50,19 +47,18 @@ namespace IoTNode.Services public void Handle(EntityUpdatedEvent message) { - Tiggers.TryRemove(message.Data.Id, out SceneTigger tigger); + Tiggers.TryRemove(message.Data.Id, out _); Tiggers.TryAdd(message.Data.Id, message.Data); } public void Handle(EntityDeletedEvent message) { - Tiggers.TryRemove(message.Data.Id, out SceneTigger tigger); + Tiggers.TryRemove(message.Data.Id, out _); } public void Handle(EntityUpdatedEvent message) { var data = message.Data; - using var scope = this._sp.CreateScope(); foreach (var item in Tiggers) { var tigger = item.Value; @@ -76,8 +72,7 @@ namespace IoTNode.Services var result = method.Valid(data.Name, data.Key, value, data.Description); if (result) { - var job = scope.ServiceProvider.GetService(); - job.TiggerHandle(tigger.Id); + _job.TiggerHandle(tigger.Id); } } catch (Exception ex) diff --git a/projects/JobServer/JobServer.csproj b/projects/JobServer/JobServer.csproj index 4fec8e42..d19fff29 100644 --- a/projects/JobServer/JobServer.csproj +++ b/projects/JobServer/JobServer.csproj @@ -3,7 +3,7 @@ netcoreapp3.1 true - 1.0.0-beta.413 + 1.0.0-beta.414 diff --git a/projects/StudyCenter/StudyCenter.csproj b/projects/StudyCenter/StudyCenter.csproj index fd224100..c78e8097 100644 --- a/projects/StudyCenter/StudyCenter.csproj +++ b/projects/StudyCenter/StudyCenter.csproj @@ -2,7 +2,7 @@ netcoreapp3.1 true - 1.0.0-beta.413 + 1.0.0-beta.414 diff --git a/projects/UserCenter/UserCenter.csproj b/projects/UserCenter/UserCenter.csproj index f3df78f9..847b72a8 100644 --- a/projects/UserCenter/UserCenter.csproj +++ b/projects/UserCenter/UserCenter.csproj @@ -2,7 +2,7 @@ netcoreapp3.1 true - 1.0.0-beta.413 + 1.0.0-beta.414 diff --git a/projects/WebMVC/WebMVC.csproj b/projects/WebMVC/WebMVC.csproj index 54ac6bd7..7d1836c9 100644 --- a/projects/WebMVC/WebMVC.csproj +++ b/projects/WebMVC/WebMVC.csproj @@ -2,7 +2,7 @@ netcoreapp3.1 - 1.0.0-beta.413 + 1.0.0-beta.414 diff --git a/projects/WebSPA/WebSPA.csproj b/projects/WebSPA/WebSPA.csproj index bcaa7dc3..7327732e 100644 --- a/projects/WebSPA/WebSPA.csproj +++ b/projects/WebSPA/WebSPA.csproj @@ -2,7 +2,7 @@ netcoreapp3.1 - 1.0.0-beta.413 + 1.0.0-beta.414