Former-commit-id: 91292ebb04037f9d30cfceb6479924b1c12c4555
TangShanKaiPing
wanggang 6 years ago
parent 525abe200a
commit 2d38ebe3c1

@ -20,7 +20,6 @@ namespace Application.Models
public string Name { get; set; }
[Display(Name = "值")]
[Required(ErrorMessage = nameof(RequiredAttribute))]
public string Value { get; set; }
[Display(Name = "单位")]

@ -13,9 +13,17 @@ namespace Application.Models
public string Name { get; set; }
[Display(Name = "显示名称")]
[Required(ErrorMessage = nameof(RequiredAttribute))]
public string DisplayName { get; set; }
[Display(Name = "用户名")]
public string UserName { get; set; }
[Display(Name = "密码")]
public string Password { get; set; }
[Display(Name = "启用")]
public bool Enable { get; set; }
[ReadOnly(true)]
[Display(Name = "编号")]
[Required(ErrorMessage = nameof(RequiredAttribute))]

@ -0,0 +1,33 @@
using System.Linq;
using Application.Domain.Entities;
using Application.Models;
using Infrastructure.Data;
using Infrastructure.Extensions;
using Infrastructure.Web.Mvc;
using IoTShared.Controllers;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace IoTCenter.Areas.Admin.Controllers
{
[Authorize]
[Area(nameof(Admin))]
public class DataController : CrudController<Data, DataSearchModel, EditDataModel, EditDataModel>
{
private readonly AjaxController _ajax;
public DataController(IRepository<Data> repo, AjaxController ajax) : base(repo)
{
this._ajax = ajax;
}
public override IQueryable<Data> Query(DataSearchModel model, IQueryable<Data> query)
{
ViewData.SelectList(o => model.NodeId, () => this._ajax.GetNodeSelectList(model.NodeId));
ViewData.SelectList(o => model.DeviceId, () => this._ajax.GetDeviceSelectList(model.NodeId.Value, model.DeviceId), model.NodeId.HasValue);
return query.WhereIf(model.NodeId.HasValue, o => o.Device.NodeId == model.NodeId.Value)
.WhereIf(model.DeviceId.HasValue, o => o.DeviceId == model.DeviceId.Value)
.WhereIf(!string.IsNullOrEmpty(model.Keyword), o => o.Name.Contains(model.Keyword));
}
}
}

@ -0,0 +1,18 @@
using Application.Domain.Entities;
using Application.Models;
using Infrastructure.Data;
using Infrastructure.Web.Mvc;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace IoTCenter.Areas.Admin.Controllers
{
[Authorize]
[Area(nameof(Admin))]
public class DeviceController : CrudController<Device, DeviceSearchMode, EditDeviceModel, EditDeviceModel>
{
public DeviceController(IRepository<Device> repo) : base(repo)
{
}
}
}

@ -0,0 +1,19 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace UserCenter.Areas.Admin.Controllers
{
[Authorize]
[Area(nameof(Admin))]
public class HomeController : Controller
{
public HomeController()
{
}
public IActionResult Index()
{
return View();
}
}
}

@ -0,0 +1,4 @@
@{
ViewData["IsHomePage"] = true;
}
<h1>首页</h1>

@ -1,7 +1,7 @@
<section class="sidebar" style="height: auto;">
<ul class="sidebar-menu" data-widget="tree">
<li class="@GetClass("Home")"><a href="@Url.Action("Index","Home")"><i class="fa fa-circle-o"></i><span>首页</span></a></li>
<li class="@GetClass("Configuration")"><a href="@Url.Action("Index","Configuration")"><i class="fa fa-circle-o"></i><span>系统配置</span></a></li>
<li class="@GetClass("Configuration")"><a href="@Url.Action("Index","Configuration")"><i class="fa fa-circle-o"></i><span>网站配置</span></a></li>
<li class="treeview @GetClass("User","Role","Permission")">
<a href="javascript:;" class="dropdown-toggle">
<i class="fa fa-list"></i>
@ -16,7 +16,24 @@
<li class="@GetClass("Permission")"><a href="@Url.Action("Index","Permission")"><i class="fa fa-circle-o"></i><span>权限管理</span></a></li>
</ul>
</li>
<li class="@GetClass("Camera")"><a href="@Url.Action("Index","Home")"><i class="fa fa-circle-o"></i><span>摄像头管理</span></a></li>
<li class="treeview @GetClass("Node","Device","Data","Api","Parameter","Sence","Command")">
<a href="javascript:;" class="dropdown-toggle">
<i class="fa fa-list"></i>
<span>设备管理</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<li class="@GetClass("Node")"><a href="@Url.Action("Index","Node")"><i class="fa fa-circle-o"></i><span>节点管理</span></a></li>
<li class="@GetClass("Device")"><a href="@Url.Action("Index","Device")"><i class="fa fa-circle-o"></i><span>设备管理</span></a></li>
<li class="@GetClass("Data")"><a href="@Url.Action("Index","Data")"><i class="fa fa-circle-o"></i><span>数据管理</span></a></li>
<li class="@GetClass("Api")"><a href="@Url.Action("Index","Api")"><i class="fa fa-circle-o"></i><span>接口管理</span></a></li>
<li class="@GetClass("Parameter")"><a href="@Url.Action("Index","Parameter")"><i class="fa fa-circle-o"></i><span>参数管理</span></a></li>
<li class="@GetClass("Sence")"><a href="@Url.Action("Index","Sence")"><i class="fa fa-circle-o"></i><span>场景管理</span></a></li>
<li class="@GetClass("Command")"><a href="@Url.Action("Index","Command")"><i class="fa fa-circle-o"></i><span>命令管理</span></a></li>
</ul>
</li>
</ul>
</section>
@functions{

@ -0,0 +1,24 @@
<script>
function clear() {
for (var i = 0; i < arguments.length; i++) {
$(arguments[i]).find('option').not('[value=""]').remove();
}
}
function update(url, id) {
$.getJSON(url, function (data) {
$.each(data, function (i, v) {
$(id).append('<option value="' + v.Value + '">' + v.Text + '</option>');
});
});
}
$(function () {
$('#NodeId').change(function () {
var id = $(this).find(':selected').val();
clear('#DeviceId');
if (id) {
var url = '@Url.Action("GetDeviceJson", "Ajax")?parentId=' + encodeURI(id);
update(url,'#DeviceId');
}
});
});
</script>

@ -0,0 +1,7 @@
@inherits Infrastructure.Web.Mvc.Razor.MyRazorPage<TModel>
@using Infrastructure.Application
@using Infrastructure.Extensions
@using Infrastructure.Data
@using Application.Domain.Entities
@using Application.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

@ -1,43 +0,0 @@
using System;
using System.Collections.Generic;
using Application.Domain.Entities;
using Infrastructure.Application;
using Infrastructure.Data;
using Infrastructure.Web.Mvc;
using Microsoft.AspNetCore.Mvc;
using SPService.Applicaiton.Models;
namespace FBeeService.Areas.Controllers
{
[Area("Admin")]
public class HomeController : CrudController<Device, PagedListModel<EditGatewayModel>, EditGatewayModel, EditGatewayModel>
{
private readonly DeviceService _deviceService;
public HomeController(IRepository<Device> repo, DeviceService deviceService) : base(repo)
{
this._deviceService = deviceService;
}
public override IActionResult Add(EditGatewayModel model)
{
var result = base.Add(model);
this._deviceService.Execute();
return result;
}
public override IActionResult Edit(EditGatewayModel model)
{
var result = base.Edit(model);
this._deviceService.Execute();
return result;
}
public override IActionResult Delete(List<Guid> list)
{
var result = base.Delete(list);
this._deviceService.Execute();
return result;
}
}
}

@ -25,7 +25,7 @@ namespace FBeeService
new EFConfigurationValue { Id = "email:user", Value= "admin@nbaxp.com"},
new EFConfigurationValue { Id = "email:password", Value= "aA123456"},
new EFConfigurationValue { Id = "server.ip", Value= "" },
new EFConfigurationValue { Id = "server.urls", Value= "http://*:8008" },
new EFConfigurationValue { Id = "server.urls", Value= "http://*:8009" },
new EFConfigurationValue { Id = "notify:enabled", Value= "false"},
new EFConfigurationValue { Id = "notify:host", Value= $"{host}:8001"},
new EFConfigurationValue { Id = "timer.seconds", Value="600"},

@ -0,0 +1,33 @@
using System.Linq;
using Application.Domain.Entities;
using Application.Models;
using Infrastructure.Data;
using Infrastructure.Extensions;
using Infrastructure.Web.Mvc;
using IoTShared.Controllers;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace IoTCenter.Areas.Admin.Controllers
{
[Authorize]
[Area(nameof(Admin))]
public class DataController : CrudController<Data, DataSearchModel, EditDataModel, EditDataModel>
{
private readonly AjaxController _ajax;
public DataController(IRepository<Data> repo, AjaxController ajax) : base(repo)
{
this._ajax = ajax;
}
public override IQueryable<Data> Query(DataSearchModel model, IQueryable<Data> query)
{
ViewData.SelectList(o => model.NodeId, () => this._ajax.GetNodeSelectList(model.NodeId));
ViewData.SelectList(o => model.DeviceId, () => this._ajax.GetDeviceSelectList(model.NodeId.Value, model.DeviceId), model.NodeId.HasValue);
return query.WhereIf(model.NodeId.HasValue, o => o.Device.NodeId == model.NodeId.Value)
.WhereIf(model.DeviceId.HasValue, o => o.DeviceId == model.DeviceId.Value)
.WhereIf(!string.IsNullOrEmpty(model.Keyword), o => o.Name.Contains(model.Keyword));
}
}
}

@ -0,0 +1,18 @@
using Application.Domain.Entities;
using Application.Models;
using Infrastructure.Data;
using Infrastructure.Web.Mvc;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace IoTCenter.Areas.Admin.Controllers
{
[Authorize]
[Area(nameof(Admin))]
public class DeviceController : CrudController<Device, DeviceSearchMode, EditDeviceModel, EditDeviceModel>
{
public DeviceController(IRepository<Device> repo) : base(repo)
{
}
}
}

@ -0,0 +1,19 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace UserCenter.Areas.Admin.Controllers
{
[Authorize]
[Area(nameof(Admin))]
public class HomeController : Controller
{
public HomeController()
{
}
public IActionResult Index()
{
return View();
}
}
}

@ -0,0 +1,4 @@
@{
ViewData["IsHomePage"] = true;
}
<h1>首页</h1>

@ -0,0 +1,52 @@
<section class="sidebar" style="height: auto;">
<ul class="sidebar-menu" data-widget="tree">
<li class="@GetClass("Home")"><a href="@Url.Action("Index","Home")"><i class="fa fa-circle-o"></i><span>首页</span></a></li>
<li class="@GetClass("Configuration")"><a href="@Url.Action("Index","Configuration")"><i class="fa fa-circle-o"></i><span>网站配置</span></a></li>
<li class="treeview @GetClass("User","Role","Permission")">
<a href="javascript:;" class="dropdown-toggle">
<i class="fa fa-list"></i>
<span>权限管理</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<li class="@GetClass("User")"><a href="@Url.Action("Index","User")"><i class="fa fa-circle-o"></i><span>用户管理</span></a></li>
<li class="@GetClass("Role")"><a href="@Url.Action("Index","Role")"><i class="fa fa-circle-o"></i><span>角色管理</span></a></li>
<li class="@GetClass("Permission")"><a href="@Url.Action("Index","Permission")"><i class="fa fa-circle-o"></i><span>权限管理</span></a></li>
</ul>
</li>
<li class="treeview @GetClass("Node","Device","Data","Api","Parameter","Sence","Command")">
<a href="javascript:;" class="dropdown-toggle">
<i class="fa fa-list"></i>
<span>设备管理</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<li class="@GetClass("Node")"><a href="@Url.Action("Index","Node")"><i class="fa fa-circle-o"></i><span>节点管理</span></a></li>
<li class="@GetClass("Device")"><a href="@Url.Action("Index","Device")"><i class="fa fa-circle-o"></i><span>设备管理</span></a></li>
<li class="@GetClass("Data")"><a href="@Url.Action("Index","Data")"><i class="fa fa-circle-o"></i><span>数据管理</span></a></li>
<li class="@GetClass("Api")"><a href="@Url.Action("Index","Api")"><i class="fa fa-circle-o"></i><span>接口管理</span></a></li>
<li class="@GetClass("Parameter")"><a href="@Url.Action("Index","Parameter")"><i class="fa fa-circle-o"></i><span>参数管理</span></a></li>
<li class="@GetClass("Sence")"><a href="@Url.Action("Index","Sence")"><i class="fa fa-circle-o"></i><span>场景管理</span></a></li>
<li class="@GetClass("Command")"><a href="@Url.Action("Index","Command")"><i class="fa fa-circle-o"></i><span>命令管理</span></a></li>
</ul>
</li>
</ul>
</section>
@functions{
public string GetClass(params string[] controllers)
{
if (controllers.Select(o => o.ToLower()).Contains(this.ViewContext.RouteData.Values["controller"].ToString().ToLower()))
{
if (controllers.Length > 1)
{
return "active open";
}
return "active";
}
return "";
}
}

@ -0,0 +1,24 @@
<script>
function clear() {
for (var i = 0; i < arguments.length; i++) {
$(arguments[i]).find('option').not('[value=""]').remove();
}
}
function update(url, id) {
$.getJSON(url, function (data) {
$.each(data, function (i, v) {
$(id).append('<option value="' + v.Value + '">' + v.Text + '</option>');
});
});
}
$(function () {
$('#NodeId').change(function () {
var id = $(this).find(':selected').val();
clear('#DeviceId');
if (id) {
var url = '@Url.Action("GetDeviceJson", "Ajax")?parentId=' + encodeURI(id);
update(url,'#DeviceId');
}
});
});
</script>

@ -0,0 +1,7 @@
@inherits Infrastructure.Web.Mvc.Razor.MyRazorPage<TModel>
@using Infrastructure.Application
@using Infrastructure.Extensions
@using Infrastructure.Data
@using Application.Domain.Entities
@using Application.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

@ -0,0 +1,22 @@
using Application.Domain.Entities;
using Infrastructure.Data;
using Infrastructure.Email;
using Infrastructure.Resources;
using Infrastructure.Security;
using IoT.UI.Shard.Controllers;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Localization;
namespace ONVIFService.Controllers
{
public class AccountController : BaseAccountController
{
public AccountController(IConfiguration configuration,
IRepository<User> userRepo,
IEncryptionService encryptionService,
IStringLocalizer<Resource> localizer,
IEmailSender emaliSender) : base(configuration, userRepo, encryptionService, localizer, emaliSender)
{
}
}
}

@ -1,27 +1,25 @@
using Application.Domain.Entities;
using Infrastructure.Data;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using System.Linq;
using System.Net.Http;
namespace ONVIFService.Controllers
{
public class HomeController : Controller
{
private readonly IRepository<Device> _cameraRepo;
private readonly IHttpClientFactory _httpClientFactory;
private readonly DeviceService _onvifService;
public HomeController(IHttpClientFactory httpClientFactory, DeviceService onvifService, IRepository<Device> cameraRepo)
public HomeController(DeviceService onvifService, IRepository<Device> cameraRepo)
{
this._cameraRepo = cameraRepo;
this._httpClientFactory = httpClientFactory;
this._onvifService = onvifService;
}
public IActionResult Index()
{
var model = this._cameraRepo.ReadOnlyTable().ToList();
var model = this._cameraRepo.ReadOnlyTable().Include(o => o.Data).ToList();
return View(model);
}
}

@ -130,6 +130,7 @@ namespace ONVIFService
device.AddorUpdateData("subhls", $"http://{this._configuration["stream.hls"]}/live/sub{ipCamera.Id}.m3u8", DeviceDataType.String, "子码流hls");
device.AddorUpdateData("ffmpeg.file", this._configuration["ffmpeg.file"], DeviceDataType.String, "ffmpeg.file", hidden: true);
device.AddorUpdateData("ffmpeg.args", this._configuration["ffmpeg.args"], DeviceDataType.String, "ffmpeg.args", hidden: true);
device.AddorUpdateData("CustomFile", "", DeviceDataType.String, "自定义ffmpeg路径", hidden: true);
device.ConnectId = this._configuration["connectId"];
device.NodeNumber = this._configuration["node.number"];
deviceRepo.Add(device);
@ -289,11 +290,11 @@ namespace ONVIFService
var file = Path.Combine(this._env.WebRootPath, fileName);
var mainRtmp = camera.Data.FirstOrDefault(o => o.Key == "mainrtmp").Value;
var subRtmp = camera.Data.FirstOrDefault(o => o.Key == "subrtmp").Value;
//if (camera.UseCustomFile)
//{
// file = camera.File;
//}
var customFile = camera.GetData("CustomFile")?.Value;
if (!string.IsNullOrEmpty(customFile))
{
file = customFile;
}
Console.WriteLine(file);
var arguments = camera.Data.FirstOrDefault(o => o.Key == "ffmpeg.args").Value;
Process main = null, sub = null;

@ -42,7 +42,7 @@ namespace ONVIFService
{
var doc = XDocument.Parse(this.GetCapabilitiesXml);
this.MediaUrl = doc.Descendants().FirstOrDefault(o => o.Name.LocalName == "Media").Elements().FirstOrDefault(o => o.Name.LocalName == "XAddr").Value;
this.PTZAddress = doc.Descendants().FirstOrDefault(o => o.Name.LocalName == "PTZ").Elements().FirstOrDefault(o => o.Name.LocalName == "XAddr").Value;
this.PTZAddress = doc.Descendants().FirstOrDefault(o => o.Name.LocalName == "PTZ")?.Elements().FirstOrDefault(o => o.Name.LocalName == "XAddr")?.Value;
this.Ptz3DZoomSupport = string.IsNullOrWhiteSpace(this.PTZAddress) ? false : true;
}

@ -19,4 +19,24 @@
<ItemGroup>
<Folder Include="Application\Domain\Entities\" />
</ItemGroup>
<ItemGroup>
<Content Update="Areas\Admin\Views\Shared\_Menu.cshtml">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Update="Areas\Admin\Views\_ViewImports.cshtml">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Update="Areas\Admin\Views\_ViewStart.cshtml">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<UpToDateCheckInput Remove="Areas\Admin\Views\Shared\_Script.cshtml" />
</ItemGroup>
<ItemGroup>
<_ContentIncludedByDefault Remove="Areas\Admin\Views\Shared\_Script.cshtml" />
</ItemGroup>
</Project>

@ -342,9 +342,11 @@
<None Include="Assets\StreamingAssets\obj\Debug\netcoreapp2.2\IoT.Resources.csproj.FileListAbsolute.txt" />
<None Include="Assets\StreamingAssets\obj\Debug\netcoreapp2.2\Microsoft.Extensions.FileProviders.Embedded.Manifest.xml" />
<None Include="Assets\UniversalMediaPlayer\Shaders\UMP-EquirectangularCanvas.shader" />
<None Include="Assets\StreamingAssets\obj\Release\netcoreapp2.2\IoT.Resources.csproj.FileListAbsolute.txt" />
<None Include="Assets\UniversalMediaPlayer\Shaders\UMP-ARVideoCanvas.shader" />
<None Include="Assets\StreamingAssets\text\trained_classifier_erGrouping.xml" />
<None Include="Assets\UniWebView\README.txt" />
<None Include="Assets\StreamingAssets\obj\Release\netcoreapp2.2\Microsoft.Extensions.FileProviders.Embedded.Manifest.xml" />
<None Include="Assets\StreamingAssets\text\OCRHMM_transitions_table.xml" />
<None Include="Assets\StreamingAssets\text\trained_classifierNM1.xml" />
<None Include="Assets\OpenCVForUnity\OpenCVLicense.txt" />

@ -640,20 +640,22 @@
<div class="block block-strong">
<div class="row">
<div class="col-100 tablet-50 desktop-25" v-for="device in getDevices('摄像头')">
<video class="flv video" muted controls autoplay :src="getData(device,'主码流flv')"></video>
<div class="row" style="text-align:center;">
<a class="button button-large button-raised button-fill" href="javascript: ;" v-on:click="call('',device.Number,'/Camera/Up')"></a>
</div>
<div class="row">
<a class="button button-large button-raised button-fill" href="javascript: ;" v-on:click="call('',device.Number,'/Camera/Zoomin')"></a>
<a class="button button-large button-raised button-fill" href="javascript: ;" v-on:click="call('',device.Number,'/Camera/Left')"></a>
<a class="button button-large button-raised button-fill" href="javascript: ;" v-on:click="call('',device.Number,'/Camera/Stop')"></a>
<a class="button button-large button-raised button-fill" href="javascript: ;" v-on:click="call('',device.Number,'/Camera/Right')"></a>
<a class="button button-large button-raised button-fill" href="javascript: ;" v-on:click="call('',device.Number,'/Camera/Zoomout')"></a>
</div>
<div class="row">
<a class="button button-large button-raised button-fill" href="javascript: ;" v-on:click="call('',device.Number,'/Camera/Down')"></a>
</div>
<video class="flv video" muted controls autoplay :src="getData(device,'主码流flv')" :data-ext="getData(device,'缩放支持')"></video>
<template v-if="getData(device,'缩放支持')=='是'">
<div class="row">
<a class="button button-large button-raised button-fill" href="javascript: ;" v-on:click="call('',device.Number,'/Camera/Up')"></a>
</div>
<div class="row">
<a class="button button-large button-raised button-fill" href="javascript: ;" v-on:click="call('',device.Number,'/Camera/Zoomin')"></a>
<a class="button button-large button-raised button-fill" href="javascript: ;" v-on:click="call('',device.Number,'/Camera/Left')"></a>
<a class="button button-large button-raised button-fill" href="javascript: ;" v-on:click="call('',device.Number,'/Camera/Stop')"></a>
<a class="button button-large button-raised button-fill" href="javascript: ;" v-on:click="call('',device.Number,'/Camera/Right')"></a>
<a class="button button-large button-raised button-fill" href="javascript: ;" v-on:click="call('',device.Number,'/Camera/Zoomout')"></a>
</div>
<div class="row">
<a class="button button-large button-raised button-fill" href="javascript: ;" v-on:click="call('',device.Number,'/Camera/Down')"></a>
</div>
</template>
</div>
</div>
</div>

@ -21,29 +21,29 @@ namespace UserCenter.Services
public FaceRecognitionService(IServiceProvider serviceProvider)
{
this._serviceProvider = serviceProvider;
using (var scope = this._serviceProvider.CreateScope())
{
this._env = scope.ServiceProvider.GetService<IHostingEnvironment>();
this._faceRecognition = FaceRecognition.Create(Path.Combine(this._env.WebRootPath, "face"));
var userRepo = scope.ServiceProvider.GetService<IRepository<User>>();
var users = userRepo.ReadOnlyTable().Where(o => o.FaceImage != null).ToList();
foreach (var user in users)
{
if (!string.IsNullOrEmpty(user.FaceImage))
{
try
{
var faceEndoding = this.GetFaceImageEncoding(user.FaceImage);
this._faces.TryAdd(user.UserName, faceEndoding);
}
catch (Exception ex)
{
ex.PrintStack(ex.Message);
}
}
}
}
//this._serviceProvider = serviceProvider;
//using (var scope = this._serviceProvider.CreateScope())
//{
// this._env = scope.ServiceProvider.GetService<IHostingEnvironment>();
// this._faceRecognition = FaceRecognition.Create(Path.Combine(this._env.WebRootPath, "face"));
// var userRepo = scope.ServiceProvider.GetService<IRepository<User>>();
// var users = userRepo.ReadOnlyTable().Where(o => o.FaceImage != null).ToList();
// foreach (var user in users)
// {
// if (!string.IsNullOrEmpty(user.FaceImage))
// {
// try
// {
// var faceEndoding = this.GetFaceImageEncoding(user.FaceImage);
// this._faces.TryAdd(user.UserName, faceEndoding);
// }
// catch (Exception ex)
// {
// ex.PrintStack(ex.Message);
// }
// }
// }
//}
}
private FaceEncoding GetFaceImageEncoding(string faceImage)

@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
<MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
<MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AspNet.Security.OAuth.GitHub" Version="2.1.0" />

@ -5,16 +5,16 @@ rd /q/s "./dist/"
echo d|xcopy "./src" "./dist/" /s /e /y /f
dotnet publish ../projects/UserCenter/UserCenter.csproj -c Release -o ../../publish/dist/linux-x64/publish/apps/UserCenter
dotnet publish ../projects/IoTCenter/IoTCenter.csproj -c Release -o ../../publish/dist/linux-x64/publish/apps/IoTCenter
dotnet publish ../projects/UserCenter/UserCenter.csproj -c Release -r linux-x64 -o ../publish/dist/linux-x64/publish/apps/UserCenter
dotnet publish ../projects/IoTCenter/IoTCenter.csproj -c Release -r linux-x64 -o ../publish/dist/linux-x64/publish/apps/IoTCenter
dotnet publish ../projects/IoT/IoTNode/IoTNode.csproj -c Release -o ../../../publish/dist/linux-arm64/publish/apps/IoTNode
dotnet publish ../projects/IoT/IoTServices/WinService/WinService.csproj -c Release -r win-x86 -o "../../../../publish/dist/win-x86/Program Files (x86)/WinService"
dotnet publish ../projects/IoT/IoTServices/APService/APService.csproj -c Release -o ../../../../publish/dist/linux-arm64/publish/apps/APService
dotnet publish ../projects/IoT/IoTServices/ONVIFService/ONVIFService.csproj -c Release -o ../../../../publish/dist/linux-x64/publish/apps/ONVIFService
dotnet publish ../projects/IoT/IoTServices/ONVIFService/ONVIFService.csproj -c Release -o ../../../../publish/dist/linux-arm64/publish/apps/ONVIFService
dotnet publish ../projects/IoT/IoTServices/SerialPortService/SerialPortService.csproj -c Release -o ../../../../publish/dist/linux-arm64/publish/apps/SerialPortService
dotnet publish ../projects/IoT/IoTServices/LiChuangService/LiChuangService.csproj -c Release -o ../../../../publish/dist/linux-arm64/publish/apps/LiChuangService
dotnet publish ../projects/IoT/IoTNode/IoTNode.csproj -c Release -o ../../publish/dist/linux-arm64/publish/apps/IoTNode
dotnet publish ../projects/IoT/IoTServices/WinService/WinService.csproj -c Release -r win-x86 -o "../../publish/dist/win-x86/Program Files (x86)/WinService"
dotnet publish ../projects/IoT/IoTServices/APService/APService.csproj -c Release -o ../../publish/dist/linux-arm64/publish/apps/APService
dotnet publish ../projects/IoT/IoTServices/FBeeService/FBeeService.csproj -c Release -r linux-arm64 -o ../publish/dist/linux-arm64/publish/apps/FBeeService
dotnet publish ../projects/IoT/IoTServices/ONVIFService/ONVIFService.csproj -c Release -r linux-arm64 -o ../publish/dist/linux-arm64/publish/apps/ONVIFService
dotnet publish ../projects/IoT/IoTServices/SerialPortService/SerialPortService.csproj -c Release -o ../../publish/dist/linux-arm64/publish/apps/SerialPortService
dotnet publish ../projects/IoT/IoTServices/LiChuangService/LiChuangService.csproj -c Release -o ../../publish/dist/linux-arm64/publish/apps/LiChuangService
gradle build -p ../projects/IoT/IoTServices/NJWLService
set endtime=%time%

Loading…
Cancel
Save