Готов Wizard
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 12s

This commit is contained in:
2026-07-14 17:45:41 +03:00
parent 2883b537ab
commit fa9fd1e06a
11 changed files with 88 additions and 59 deletions
+1 -1
View File
@@ -9,7 +9,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.6" /> <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.6" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.6" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.4" /> <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="9.0.4" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="10.1.7" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="10.1.7" />
<PackageReference Include="Telegram.Bot" Version="19.0.0" /> <PackageReference Include="Telegram.Bot" Version="19.0.0" />
</ItemGroup> </ItemGroup>
+1 -1
View File
@@ -14,7 +14,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.6" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.6" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.4" /> <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="9.0.4" />
<PackageReference Include="Selenium.WebDriver" Version="4.21.0" /> <PackageReference Include="Selenium.WebDriver" Version="4.21.0" />
<PackageReference Include="Telegram.Bot" Version="19.0.0" /> <PackageReference Include="Telegram.Bot" Version="19.0.0" />
</ItemGroup> </ItemGroup>
+2 -2
View File
@@ -23,7 +23,7 @@ public class DeviceController : ControllerBase
[HttpGet("GetDeviceById")] [HttpGet("GetDeviceById")]
[ProducesResponseType<DeviceItem>(StatusCodes.Status200OK)] [ProducesResponseType<DeviceItem>(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status204NoContent)] [ProducesResponseType(StatusCodes.Status204NoContent)]
public IActionResult GetById(int id) // Получить устройство по id public IActionResult GetById(Guid id) // Получить устройство по id
{ {
using (var db = new SQLiteService()) using (var db = new SQLiteService())
{ {
@@ -69,7 +69,7 @@ public class DeviceController : ControllerBase
#region DELETE #region DELETE
[HttpDelete("DelDevice")] [HttpDelete("DelDevice")]
public IActionResult DelDevice(int id) //Удалить устройство по id public IActionResult DelDevice(Guid id) //Удалить устройство по id
{ {
using (var db = new SQLiteService()) using (var db = new SQLiteService())
{ {
+2 -2
View File
@@ -29,7 +29,7 @@ public class ObjectController : ControllerBase
[HttpGet("GetObjectById")] [HttpGet("GetObjectById")]
[ProducesResponseType<ObjectItem>(StatusCodes.Status200OK)] [ProducesResponseType<ObjectItem>(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status204NoContent)] [ProducesResponseType(StatusCodes.Status204NoContent)]
public IActionResult GetById(int id) public IActionResult GetById(Guid id)
{ {
using (var db = new SQLiteService()) using (var db = new SQLiteService())
{ {
@@ -69,7 +69,7 @@ public class ObjectController : ControllerBase
//========================= DELETE ====================================// //========================= DELETE ====================================//
[HttpDelete("DelObject")] [HttpDelete("DelObject")]
public IActionResult DelObject(int id) public IActionResult DelObject(Guid id)
{ {
using (var db = new SQLiteService()) using (var db = new SQLiteService())
{ {
+2 -2
View File
@@ -31,7 +31,7 @@ public class TypeController : ControllerBase
[HttpGet("GetTypeById")] [HttpGet("GetTypeById")]
[ProducesResponseType<DeviceItem>(StatusCodes.Status200OK)] [ProducesResponseType<DeviceItem>(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status204NoContent)] [ProducesResponseType(StatusCodes.Status204NoContent)]
public IActionResult GetById(int id) // Получить устройство по id public IActionResult GetById(Guid id) // Получить устройство по id
{ {
using (var db = new SQLiteService()) using (var db = new SQLiteService())
{ {
@@ -63,7 +63,7 @@ public class TypeController : ControllerBase
//========================= DELETE ====================================// //========================= DELETE ====================================//
#region DELETE #region DELETE
[HttpDelete("DelType")] [HttpDelete("DelType")]
public IActionResult DelType(int id) //Удалить тип устройства по id public IActionResult DelType(Guid id) //Удалить тип устройства по id
{ {
using (var db = new SQLiteService()) using (var db = new SQLiteService())
{ {
+4 -4
View File
@@ -8,10 +8,10 @@
public string? Description { get; set; } public string? Description { get; set; }
public string? Name { get; set; } public string? Name { get; set; }
public string? Location { get; set; } public string? Location { get; set; }
public List<DeviceItem>? ListDevices { get; set; } public List<Guid>? ListDevices { get; set; }
public DeviceType? DeviceType { get; set; } public Guid? DeviceType { get; set; }
public ObjectItem? DeviceObject { get; set; } public Guid? DeviceObject { get; set; }
public Guid ConnectedToSwitchId { get; set; } public Guid? ConnectedToSwitchId { get; set; }
public int ConnectedToPortOnSwitch { get; set; } public int ConnectedToPortOnSwitch { get; set; }
} }
+2 -2
View File
@@ -14,8 +14,8 @@ namespace Strela.Services
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{ {
//optionsBuilder.UseNpgsql("Host=172.24.12.201;Port=5432;Database=Notifications;Username=postgres;Password=4NUDZhJ7"); optionsBuilder.UseNpgsql("Host=172.22.10.39;Port=5432;Database=strela;Username=postgres;Password=4NUDZhJ7");
optionsBuilder.UseSqlite("Data Source=Services/DataBase.db"); //optionsBuilder.UseSqlite("Data Source=Services/DataBase.db");
} }
//protected override void OnModelCreating(ModelBuilder modelBuilder) //protected override void OnModelCreating(ModelBuilder modelBuilder)
+1
View File
@@ -23,6 +23,7 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.22.1" /> <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.22.1" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="9.0.4" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" />
</ItemGroup> </ItemGroup>
+4 -4
View File
@@ -8,10 +8,10 @@
public string? Description { get; set; } public string? Description { get; set; }
public string? Name { get; set; } public string? Name { get; set; }
public string? Location { get; set; } public string? Location { get; set; }
public List<DeviceItems>? ListDevices { get; set; } public List<Guid>? ListDevices { get; set; }
public DeviceTypeItems? DeviceType { get; set; } public Guid? DeviceType { get; set; }
public ObjectItems? DeviceObject { get; set; } public Guid? DeviceObject { get; set; }
public Guid ConnectedToSwitchId { get; set; } public Guid? ConnectedToSwitchId { get; set; }
public int ConnectedToPortOnSwitch { get; set; } public int ConnectedToPortOnSwitch { get; set; }
} }
+69 -40
View File
@@ -44,6 +44,9 @@
<Button Color="Color.Primary" Clicked="@AddNewObject"> <Button Color="Color.Primary" Clicked="@AddNewObject">
<Icon Name="IconName.Add" /> <Icon Name="IconName.Add" />
</Button> </Button>
<Button Color="Color.Primary" Clicked="@GetCurrentObject">
<Icon Name="IconName.Redo" />
</Button>
</Field> </Field>
</CardText> </CardText>
</CardBody> </CardBody>
@@ -142,7 +145,7 @@
<AddonLabel Width="Width.Is25">IP</AddonLabel> <AddonLabel Width="Width.Is25">IP</AddonLabel>
</Addon> </Addon>
<Addon AddonType="AddonType.Body"> <Addon AddonType="AddonType.Body">
<InputMask @bind-Value="dev_ip" Width="Width.Is50" Mask="999.999.999.999" MaskPlaceholder="X" Placeholder="Введите IP" /> <InputMask @bind-Value="dev_ip" Width="Width.Is50" Placeholder="Введите IP" />
</Addon> </Addon>
</Addons> </Addons>
<Addons Size="Size.Small"> <Addons Size="Size.Small">
@@ -150,7 +153,7 @@
<AddonLabel Width="Width.Is25">MAC</AddonLabel> <AddonLabel Width="Width.Is25">MAC</AddonLabel>
</Addon> </Addon>
<Addon AddonType="AddonType.Body"> <Addon AddonType="AddonType.Body">
<InputMask @bind-Value="dev_mac" Width="Width.Is50" Mask="****-****-****" MaskPlaceholder="X" Placeholder="Введите MAC" /> <InputMask @bind-Value="dev_mac" Width="Width.Is50" Placeholder="Введите MAC" />
</Addon> </Addon>
</Addons> </Addons>
<Addons Size="Size.Small"> <Addons Size="Size.Small">
@@ -211,18 +214,18 @@
</Addon> </Addon>
<Addon AddonType="AddonType.Body"> <Addon AddonType="AddonType.Body">
<Select Width="Width.Is50" TValue="Guid" @bind-Value="@id_dev"> <Select Width="Width.Is50" TValue="Guid" @bind-Value="@id_dev">
<SelectItem Value="999">коммутатор</SelectItem> <SelectItem Value="999">Коммутатор</SelectItem>
@foreach (var sel in _list_switch) @foreach (var sel in _list_switch)
{ {
<SelectItem Value="@sel.Id">@sel.Name</SelectItem> <SelectItem Value="@sel.Id">@sel.Name</SelectItem>
} }
</Select> </Select>
</Addon> </Addon>
<Addon AddonType="AddonType.End"> @* <Addon AddonType="AddonType.End">
<Button Clicked="@RefreshListSwitch"> <Button Clicked="@RefreshListSwitch">
<Icon Name="IconName.Undo" /> <Icon Name="IconName.Undo" />
</Button> </Button>
</Addon> </Addon> *@
</Addons> </Addons>
<Addons Size="Size.Small"> <Addons Size="Size.Small">
<Addon AddonType="AddonType.Start"> <Addon AddonType="AddonType.Start">
@@ -246,7 +249,6 @@
<TableRow> <TableRow>
<TableHeaderCell>Имя</TableHeaderCell> <TableHeaderCell>Имя</TableHeaderCell>
<TableHeaderCell>Адрес</TableHeaderCell> <TableHeaderCell>Адрес</TableHeaderCell>
<TableHeaderCell>Тип</TableHeaderCell>
</TableRow> </TableRow>
</TableHeader> </TableHeader>
<TableBody> <TableBody>
@@ -255,7 +257,6 @@
<TableRow> <TableRow>
<TableRowCell>@item.Name</TableRowCell> <TableRowCell>@item.Name</TableRowCell>
<TableRowCell>@item.Ip</TableRowCell> <TableRowCell>@item.Ip</TableRowCell>
<TableRowCell>@item.DeviceType.Name</TableRowCell>
</TableRow> </TableRow>
} }
</TableBody> </TableBody>
@@ -272,7 +273,7 @@
<Card> <Card>
<CardBody> <CardBody>
<CardTitle TextAlignment="TextAlignment.Center"> <CardTitle TextAlignment="TextAlignment.Center">
ОБЪЕКТЫ ОБЪЕКТЫ
</CardTitle> </CardTitle>
<CardText> <CardText>
Объектов к добавлению - @_list_obj.Count Объектов к добавлению - @_list_obj.Count
@@ -372,13 +373,12 @@
return Task.FromResult(true); return Task.FromResult(true);
} }
private void RefreshListSwitch()
{
_list_switch = _list_dev.Where(s => s.DeviceType.Name.Contains("Switch")).ToList();
}
private async void AddNewObject() private async void AddNewObject()
{ {
if (obj_name == null)
{
return;
}
obj_item = new() obj_item = new()
{ {
Id = Guid.NewGuid(), Id = Guid.NewGuid(),
@@ -391,6 +391,10 @@
} }
private async void AddNewType() private async void AddNewType()
{ {
if (type_name == null)
{
return;
}
type_item = new() type_item = new()
{ {
Id = Guid.NewGuid(), Id = Guid.NewGuid(),
@@ -403,6 +407,8 @@
} }
private async void AddNewDev() private async void AddNewDev()
{ {
if (dev_ip == null || dev_mac == null || dev_name == null) return;
dev_item = new() dev_item = new()
{ {
Id = Guid.NewGuid(), Id = Guid.NewGuid(),
@@ -411,12 +417,13 @@
Description = dev_desc, Description = dev_desc,
Name = dev_name, Name = dev_name,
Location = dev_loc, Location = dev_loc,
DeviceType = _list_type.SingleOrDefault(t => t.Id == id_type), ListDevices = null,
DeviceObject = _list_obj.SingleOrDefault(o => o.Id == id_obj), DeviceType = _list_type.Single(t => t.Id == id_type).Id,
DeviceObject = _list_obj.Single(o => o.Id == id_obj).Id,
ConnectedToPortOnSwitch = num_port ConnectedToPortOnSwitch = num_port
}; };
_list_dev.Add(dev_item); _list_dev.Add(dev_item);
if (dev_item.DeviceType.Name.Contains("Switch")) _list_switch.Add(dev_item); if (list_type.First(d => d.Id == dev_item.DeviceType).Name.Contains("Switch")) _list_switch.Add(dev_item);
dev_ip = string.Empty; dev_ip = string.Empty;
dev_mac = string.Empty; dev_mac = string.Empty;
dev_desc = string.Empty; dev_desc = string.Empty;
@@ -426,41 +433,63 @@
private async void clickSave() private async void clickSave()
{ {
if (nextButton == "Далее") stepsRef.NextStep(); if (nextButton == "Далее") await stepsRef.NextStep();
else else
{ {
visibleProgress = Visibility.Visible; visibleProgress = Visibility.Visible;
foreach (var item in _list_obj) try
{ {
var p = await AllPubData.http.PostAsJsonAsync("api/Object/AddObject", item); foreach (var item in _list_obj)
if (!p.IsSuccessStatusCode)
{ {
error_group = "ОБЪЕКТ"; var p = await AllPubData.http.PostAsJsonAsync("api/Object/AddObject", item);
error_msg = $"{item.NameObject} не добавлено.\r\nСтатус код: {p.StatusCode}"; if (!p.IsSuccessStatusCode)
toastError = true; {
error_group = "ОБЪЕКТ";
error_msg = $"{item.NameObject} не добавлено.\r\nСтатус код: {p.StatusCode}";
toastError = true;
//await Task.Delay(500);
}
}
foreach (var item in _list_type)
{
var p = await AllPubData.http.PostAsJsonAsync("api/Type/AddType", item);
if (!p.IsSuccessStatusCode)
{
error_group = "ТИП";
error_msg = $"{item.Name} не добавлено.\r\nСтатус код: {p.StatusCode}";
toastError = true;
//await Task.Delay(500);
}
}
foreach (var item in _list_dev)
{
var p = await AllPubData.http.PostAsJsonAsync("api/Device/AddDevice", item);
if (!p.IsSuccessStatusCode)
{
error_group = "УСТРОЙСТВА";
error_msg = $"{item.Name} не добавлено.\r\nСтатус код: {p.StatusCode}";
toastError = true;
//await Task.Delay(500);
}
} }
} }
foreach (var item in _list_type) catch (Exception)
{ {
var p = await AllPubData.http.PostAsJsonAsync("api/Type/AddType", item); error_group = "ПРОЦЕСС";
if (!p.IsSuccessStatusCode) error_msg = $"Во время добавления произошел сбой.";
{ toastError = true;
error_group = "ТИП";
error_msg = $"{item.Name} не добавлено.\r\nСтатус код: {p.StatusCode}";
toastError = true;
}
} }
foreach (var item in _list_dev) finally
{ {
var p = await AllPubData.http.PostAsJsonAsync("api/Device/AddDevice", item); visibleProgress = Visibility.Invisible;
if (!p.IsSuccessStatusCode)
{
error_group = "УСТРОЙСТВА";
error_msg = $"{item.Name} не добавлено.\r\nСтатус код: {p.StatusCode}";
toastError = true;
}
} }
visibleProgress = Visibility.Invisible;
} }
} }
private void GetCurrentObject()
{
_list_obj = AllPubData.ListObjectItems;
_list_type = AllPubData.ListDeviceTypeItems;
_list_dev = AllPubData.ListDeviceItems;
}
} }
-1
View File
@@ -29,6 +29,5 @@
<Project Path="SettingSNMPDahua/SettingSNMPDahua.csproj" Id="6a5aeee0-a683-473f-87b7-2815c2144027" /> <Project Path="SettingSNMPDahua/SettingSNMPDahua.csproj" Id="6a5aeee0-a683-473f-87b7-2815c2144027" />
<Project Path="SetVideoDataHikvision/SetVideoDataHikvision.csproj" Id="c4e10081-462c-4be5-9f58-9e1926325c9d" /> <Project Path="SetVideoDataHikvision/SetVideoDataHikvision.csproj" Id="c4e10081-462c-4be5-9f58-9e1926325c9d" />
<Project Path="SwitchDahua/SwitchDahua.csproj" Id="12504b58-758f-444b-a79b-4ce2db8398cc" /> <Project Path="SwitchDahua/SwitchDahua.csproj" Id="12504b58-758f-444b-a79b-4ce2db8398cc" />
<Project Path="Web/Web.csproj" />
<Project Path="Wiking/Wiking.csproj" Id="fa0eb4bd-8bfb-4873-bb71-1c2a608ab911" /> <Project Path="Wiking/Wiking.csproj" Id="fa0eb4bd-8bfb-4873-bb71-1c2a608ab911" />
</Solution> </Solution>