This commit is contained in:
@@ -17,16 +17,12 @@ public class ObjectController : ControllerBase
|
||||
|
||||
//=========================== GET =================================//
|
||||
[HttpGet("GetObject")]
|
||||
[ProducesResponseType<List<ObjectItem>>(StatusCodes.Status200OK)]
|
||||
[ProducesResponseType(StatusCodes.Status204NoContent)]
|
||||
public IActionResult GetList()
|
||||
{
|
||||
using (var db = new SQLiteService())
|
||||
{
|
||||
var oi = db.ObjectItems.ToList();
|
||||
//if (oi.Count != 0)
|
||||
return Ok(oi);
|
||||
//else return NoContent();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,7 +61,7 @@ public class ObjectController : ControllerBase
|
||||
{
|
||||
using (var db = new SQLiteService())
|
||||
{
|
||||
db.ObjectItems.Add(o);//.Where(u => u.Name == name).FirstOrDefault();
|
||||
db.ObjectItems.Add(o);
|
||||
db.SaveChanges();
|
||||
return Created();
|
||||
}
|
||||
|
||||
@@ -10,17 +10,18 @@
|
||||
public string? Location { get; set; }
|
||||
public List<DeviceItem>? ListDevices { get; set; }
|
||||
public DeviceType? DeviceType { get; set; }
|
||||
public ObjectItem? DeviceObject { get; set; }
|
||||
public int ConnectedToSwitchId { get; set; }
|
||||
public int ConnectedToPortOnSwitch { get; set; }
|
||||
|
||||
}
|
||||
|
||||
//Unknown = 0,
|
||||
//SwitchCore = 1,
|
||||
//SwitchAccess = 2,
|
||||
//Camera = 3,
|
||||
//Server = 4,
|
||||
//WorkStation = 5,
|
||||
//PDU_AVR = 6,
|
||||
|
||||
|
||||
//Unknown = 0,
|
||||
//SwitchCore = 1,
|
||||
//SwitchAccess = 2,
|
||||
//Camera = 3,
|
||||
//Server = 4,
|
||||
//WorkStation = 5,
|
||||
//PDU_AVR = 6,
|
||||
|
||||
}
|
||||
|
||||
@@ -4,5 +4,6 @@
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string? Description { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string NameObject { get; set; } = "Unknown";
|
||||
public string DescriptionObject { get; set; } = string.Empty;
|
||||
public string? DescriptionObject { get; set; } = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,25 +32,18 @@
|
||||
</BarDropdown>
|
||||
</BarItem>
|
||||
</BarStart>
|
||||
@* <BarEnd>
|
||||
<BarEnd>
|
||||
<BarItem>
|
||||
<BarDropdown>
|
||||
<BarDropdownToggle>
|
||||
<BarIcon IconName="IconName.Smartphone" />
|
||||
Apps
|
||||
</BarDropdownToggle>
|
||||
<BarDropdownMenu>
|
||||
<BarDropdownItem To="/apps/todo">
|
||||
Todo
|
||||
</BarDropdownItem>
|
||||
</BarDropdownMenu>
|
||||
</BarDropdown>
|
||||
<BarLink To="/setting/wizard">
|
||||
<BarIcon IconName="IconName.CaretSquareRight" />
|
||||
Wizard
|
||||
</BarLink>
|
||||
</BarItem>
|
||||
</BarEnd> *@
|
||||
</BarEnd>
|
||||
</BarMenu>
|
||||
</Bar>
|
||||
@code {
|
||||
private bool pagesBarVisible = false;
|
||||
|
||||
RenderFragment customIcon =@<img src="/brand-logo.png" style="width:32px; height: 32px" />;
|
||||
RenderFragment customIcon = @<img src="/brand-logo.png" style="width:32px; height: 32px" />;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
namespace Visor.Models
|
||||
{
|
||||
public class DeviceItems
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string? Ip { get; set; }
|
||||
public string? Mac { get; set; }
|
||||
public string? Description { get; set; }
|
||||
public string? Name { get; set; }
|
||||
public string? Location { get; set; }
|
||||
public List<DeviceItems>? ListDevices { get; set; }
|
||||
public DeviceTypeItems? DeviceType { get; set; }
|
||||
public ObjectItems? DeviceObject { get; set; }
|
||||
public int ConnectedToSwitchId { get; set; }
|
||||
public int ConnectedToPortOnSwitch { get; set; }
|
||||
|
||||
}
|
||||
|
||||
//Unknown = 0,
|
||||
//SwitchCore = 1,
|
||||
//SwitchAccess = 2,
|
||||
//Camera = 3,
|
||||
//Server = 4,
|
||||
//WorkStation = 5,
|
||||
//PDU_AVR = 6,
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
namespace Visor.Models
|
||||
{
|
||||
public class DeviceTypeItems
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string? Description { get; set; } = null;
|
||||
}
|
||||
}
|
||||
@@ -161,7 +161,7 @@
|
||||
<AddonLabel>Id</AddonLabel>
|
||||
</Addon>
|
||||
<Addon AddonType="AddonType.Body">
|
||||
<Select TValue="int" @bind-Value="@select_id">
|
||||
<Select @bind-Value="@select_id">
|
||||
<SelectItem Value="9999">Объект</SelectItem>
|
||||
@foreach (var item in listObjects)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,314 @@
|
||||
@page "/setting/wizard"
|
||||
@using Visor.Models
|
||||
<h3>Wizard</h3>
|
||||
|
||||
<Steps @ref="stepsRef" @bind-SelectedStep="@selectedStep" NavigationAllowed="NavigationAllowed">
|
||||
<Items>
|
||||
<Step Name="1">Объекты</Step>
|
||||
<Step Name="2">Типы</Step>
|
||||
<Step Name="3">Устройства</Step>
|
||||
<Step Name="4">Итог</Step>
|
||||
</Items>
|
||||
<Content>
|
||||
<StepPanel Name="1">
|
||||
<Row>
|
||||
<Column ColumnSize="ColumnSize.Is3">
|
||||
<Field>
|
||||
<TextInput Autofocus="true" @bind-Value="obj_name" Placeholder="Название объекта">
|
||||
<FieldHelp>Введите название объекта. Например: VNK, SPB...</FieldHelp>
|
||||
</TextInput>
|
||||
</Field>
|
||||
</Column>
|
||||
<Column ColumnSize="ColumnSize.Is8">
|
||||
<Field>
|
||||
<TextInput @bind-Value="obj_desc" Placeholder="Описание объекта">
|
||||
<FieldHelp>Введите текстовое описание объекта</FieldHelp>
|
||||
</TextInput>
|
||||
</Field>
|
||||
</Column>
|
||||
<Column ColumnSize="ColumnSize.Is1">
|
||||
<Field>
|
||||
<Button Color="Color.Primary" Clicked="@AddNewObject">
|
||||
<Icon Name="IconName.Add" />
|
||||
</Button>
|
||||
</Field>
|
||||
</Column>
|
||||
</Row>
|
||||
<Row>
|
||||
<Table>
|
||||
<TableHeader>
|
||||
<TableRow>
|
||||
<TableHeaderCell>#</TableHeaderCell>
|
||||
<TableHeaderCell>Название объекта</TableHeaderCell>
|
||||
<TableHeaderCell>Описание объекта</TableHeaderCell>
|
||||
</TableRow>
|
||||
</TableHeader>
|
||||
<TableBody>
|
||||
@foreach (var item in list_obj)
|
||||
{
|
||||
<TableRow>
|
||||
<TableRowHeader>@item.Id</TableRowHeader>
|
||||
<TableRowCell>@item.NameObject</TableRowCell>
|
||||
<TableRowCell>@item.DescriptionObject</TableRowCell>
|
||||
</TableRow>
|
||||
}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</Row>
|
||||
</StepPanel>
|
||||
<StepPanel Name="2">
|
||||
<Row>
|
||||
<Column ColumnSize="ColumnSize.Is3">
|
||||
<Field>
|
||||
<TextInput Autofocus="true" @bind-Value="type_name" Placeholder="Название типа устройства">
|
||||
<FieldHelp>Введите название типа. Например: Server, Switch...</FieldHelp>
|
||||
</TextInput>
|
||||
</Field>
|
||||
</Column>
|
||||
<Column ColumnSize="ColumnSize.Is8">
|
||||
<Field>
|
||||
<TextInput @bind-Value="type_desc" Placeholder="Описание типа">
|
||||
<FieldHelp>Введите текстовое описание типа устройства</FieldHelp>
|
||||
</TextInput>
|
||||
</Field>
|
||||
</Column>
|
||||
<Column ColumnSize="ColumnSize.Is1">
|
||||
<Field>
|
||||
<Button Clicked="@AddNewType">
|
||||
<Icon Name="IconName.Add" />
|
||||
</Button>
|
||||
</Field>
|
||||
</Column>
|
||||
</Row>
|
||||
<Row>
|
||||
<Table>
|
||||
<TableHeader>
|
||||
<TableRow>
|
||||
<TableHeaderCell>#</TableHeaderCell>
|
||||
<TableHeaderCell>Тип устройства</TableHeaderCell>
|
||||
<TableHeaderCell>Описание типа устройств</TableHeaderCell>
|
||||
</TableRow>
|
||||
</TableHeader>
|
||||
<TableBody>
|
||||
@foreach (var item in list_type)
|
||||
{
|
||||
<TableRow>
|
||||
<TableRowHeader>@item.Id</TableRowHeader>
|
||||
<TableRowCell>@item.Name</TableRowCell>
|
||||
<TableRowCell>@item.Description</TableRowCell>
|
||||
</TableRow>
|
||||
}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</Row>
|
||||
</StepPanel>
|
||||
<StepPanel Name="3">
|
||||
<Card>
|
||||
<CardBody>
|
||||
<CardTitle Size="HeadingSize.Is2">
|
||||
Добавление устройства
|
||||
</CardTitle>
|
||||
<CardText>
|
||||
<Addons Size="Size.Small">
|
||||
<Addon AddonType="AddonType.Start" >
|
||||
<AddonLabel Width="Width.Is25">IP</AddonLabel>
|
||||
</Addon>
|
||||
<Addon AddonType="AddonType.Body">
|
||||
<InputMask Width="Width.Is50" Mask="999.999.999.999" MaskPlaceholder="X" Placeholder="Введите IP" />
|
||||
</Addon>
|
||||
</Addons>
|
||||
<Addons Size="Size.Small">
|
||||
<Addon AddonType="AddonType.Start">
|
||||
<AddonLabel Width="Width.Is25">MAC</AddonLabel>
|
||||
</Addon>
|
||||
<Addon AddonType="AddonType.Body">
|
||||
<InputMask Width="Width.Is50" Mask="****-****-****" MaskPlaceholder="X" Placeholder="Введите MAC" />
|
||||
</Addon>
|
||||
</Addons>
|
||||
<Addons Size="Size.Small">
|
||||
<Addon AddonType="AddonType.Start">
|
||||
<AddonLabel Width="Width.Is25">Название</AddonLabel>
|
||||
</Addon>
|
||||
<Addon AddonType="AddonType.Body">
|
||||
<TextInput Width="Width.Is50" Placeholder="Введите название устройства" />
|
||||
</Addon>
|
||||
</Addons>
|
||||
<Addons Size="Size.Small">
|
||||
<Addon AddonType="AddonType.Start">
|
||||
<AddonLabel Width="Width.Is25">Описание</AddonLabel>
|
||||
</Addon>
|
||||
<Addon AddonType="AddonType.Body">
|
||||
<TextInput Width="Width.Is50" Placeholder="Введите описание устройства"/>
|
||||
</Addon>
|
||||
</Addons>
|
||||
<Addons Size="Size.Small">
|
||||
<Addon AddonType="AddonType.Start">
|
||||
<AddonLabel Width="Width.Is25">Место установки</AddonLabel>
|
||||
</Addon>
|
||||
<Addon AddonType="AddonType.Body">
|
||||
<TextInput Width="Width.Is50" Placeholder="Введите где установлено устройство" />
|
||||
</Addon>
|
||||
</Addons>
|
||||
<Addons Size="Size.Small">
|
||||
<Addon AddonType="AddonType.Start">
|
||||
<AddonLabel Width="Width.Is25">Тип устройства</AddonLabel>
|
||||
</Addon>
|
||||
<Addon AddonType="AddonType.Body">
|
||||
<Select Width="Width.Is50" TValue="int" @bind-Value="@id_type">
|
||||
<SelectItem Value="999">Тип устройства</SelectItem>
|
||||
@foreach (var sel in list_type)
|
||||
{
|
||||
<SelectItem Value="@sel.Id">@sel.Name</SelectItem>
|
||||
}
|
||||
</Select>
|
||||
</Addon>
|
||||
</Addons>
|
||||
<Addons Size="Size.Small">
|
||||
<Addon AddonType="AddonType.Start">
|
||||
<AddonLabel Width="Width.Is25">Объект</AddonLabel>
|
||||
</Addon>
|
||||
<Addon AddonType="AddonType.Body">
|
||||
<Select Width="Width.Is50" TValue="int" @bind-Value="@id_obj">
|
||||
<SelectItem Value="999">На объекте</SelectItem>
|
||||
@foreach (var sel in list_obj)
|
||||
{
|
||||
<SelectItem Value="@sel.Id">@sel.NameObject</SelectItem>
|
||||
}
|
||||
</Select>
|
||||
</Addon>
|
||||
</Addons>
|
||||
<Addons Size="Size.Small">
|
||||
<Addon AddonType="AddonType.Start">
|
||||
<AddonLabel Width="Width.Is25">Подключен к</AddonLabel>
|
||||
</Addon>
|
||||
<Addon AddonType="AddonType.Body">
|
||||
<Select Width="Width.Is50" TValue="int" @bind-Value="@id_dev">
|
||||
<SelectItem Value="999">коммутатор</SelectItem>
|
||||
@foreach (var sel in list_switch)
|
||||
{
|
||||
<SelectItem Value="@sel.Id">@sel.Name</SelectItem>
|
||||
}
|
||||
</Select>
|
||||
</Addon>
|
||||
<Addon AddonType="AddonType.End">
|
||||
<Button Clicked="@RefreshListSwitch">
|
||||
<Icon Name="IconName.Undo"/>
|
||||
</Button>
|
||||
</Addon>
|
||||
</Addons>
|
||||
<Addons Size="Size.Small">
|
||||
<Addon AddonType="AddonType.Start">
|
||||
<AddonLabel Width="Width.Is25">Порт подключения</AddonLabel>
|
||||
</Addon>
|
||||
<Addon AddonType="AddonType.Body">
|
||||
<NumericInput @bind-Value="@num_port" Min="1" Max="28" Width="Width.Is50"/>
|
||||
</Addon>
|
||||
</Addons>
|
||||
<Button Width="Width.Is100" Clicked="@AddNewDev">Добавить</Button>
|
||||
</CardText>
|
||||
</CardBody>
|
||||
</Card>
|
||||
</StepPanel>
|
||||
<StepPanel Name="4">
|
||||
Итог
|
||||
</StepPanel>
|
||||
</Content>
|
||||
</Steps>
|
||||
<Div Flex="Flex.JustifyContent.Center">
|
||||
<Button Color="Color.Secondary" Margin="Margin.Is2.FromEnd" Clicked="() => stepsRef.PreviousStep()">
|
||||
Назад
|
||||
</Button>
|
||||
<Button Color="Color.Primary" Clicked="() => stepsRef.NextStep()">
|
||||
@nextButton
|
||||
</Button>
|
||||
</Div>
|
||||
|
||||
@code {
|
||||
private Steps stepsRef;
|
||||
private ObjectItems obj_item;
|
||||
private DeviceTypeItems type_item;
|
||||
private DeviceItems dev_item;
|
||||
|
||||
private List<ObjectItems> list_obj = new();
|
||||
private List<DeviceTypeItems> list_type = new();
|
||||
private static List<DeviceItems> list_dev = new();
|
||||
private List<DeviceItems> list_switch = new();
|
||||
|
||||
private string email, nextButton = "Далее";
|
||||
private string selectedStep = "1";
|
||||
|
||||
private int id_type, id_obj, id_dev, num_port;
|
||||
private string obj_name, obj_desc;
|
||||
private string type_name, type_desc;
|
||||
|
||||
private string dev_ip, dev_mac, dev_desc, dev_name, dev_loc;
|
||||
|
||||
|
||||
private Task<bool> NavigationAllowed(StepNavigationContext context)
|
||||
{
|
||||
if (context.CurrentStepIndex == 3 && context.NextStepIndex == 4)
|
||||
{
|
||||
nextButton = "Сохранить";
|
||||
//return Task.FromResult(true);
|
||||
}
|
||||
if (context.CurrentStepIndex == 4 && context.NextStepIndex > 4)
|
||||
{
|
||||
//return Task.FromResult(false);
|
||||
}
|
||||
if (context.CurrentStepIndex == 4 && context.NextStepIndex < 4)
|
||||
{
|
||||
nextButton = "Далее";
|
||||
}
|
||||
|
||||
return Task.FromResult(true);
|
||||
}
|
||||
|
||||
private void RefreshListSwitch()
|
||||
{
|
||||
list_switch = list_dev.Where(s => s.DeviceType.Name.Contains("Switch")).ToList();
|
||||
if (list_switch.Count == 0)
|
||||
id_dev = 0;
|
||||
}
|
||||
|
||||
private void AddNewObject()
|
||||
{
|
||||
obj_item = new()
|
||||
{
|
||||
NameObject = obj_name,
|
||||
DescriptionObject = obj_desc,
|
||||
Id = list_obj.Count + 1
|
||||
};
|
||||
list_obj.Add(obj_item);
|
||||
obj_name = string.Empty;
|
||||
obj_desc = string.Empty;
|
||||
}
|
||||
private void AddNewType()
|
||||
{
|
||||
type_item = new()
|
||||
{
|
||||
Name = type_name,
|
||||
Description = type_desc,
|
||||
Id = list_type.Count + 1
|
||||
};
|
||||
list_type.Add(type_item);
|
||||
type_name = string.Empty;
|
||||
type_desc = string.Empty;
|
||||
}
|
||||
private void AddNewDev()
|
||||
{
|
||||
dev_item = new()
|
||||
{
|
||||
Id = list_type.Count + 1,
|
||||
Ip = dev_ip,
|
||||
Mac = dev_mac,
|
||||
Description = dev_desc,
|
||||
Name = dev_name,
|
||||
Location = dev_loc,
|
||||
DeviceType = list_type.SingleOrDefault(t => t.Id == id_type),
|
||||
DeviceObject = list_obj.SingleOrDefault(o => o.Id == id_obj)
|
||||
};
|
||||
list_dev.Add(dev_item);
|
||||
type_name = string.Empty;
|
||||
type_desc = string.Empty;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user