Ein erster Rahmen eines kleinen Verwaltungstools (AISAdmin) hinzugefügt.

Damit sollen einmal die Zonen und Zuordnungen verwaltet werden
This commit is contained in:
Daniel Schick 2022-12-15 13:32:11 +01:00
parent bd2ba27aef
commit 4027509cd9
21 changed files with 2902 additions and 9 deletions

View File

@ -0,0 +1,46 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<None Remove="Resources\check.png" />
<None Remove="Resources\delete.png" />
<None Remove="Resources\disk_blue.png" />
<None Remove="Resources\document_plain_new.png" />
<None Remove="Resources\pencil.png" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\bsmd.AIS2Service\bsmd.AIS2Service.csproj" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\check.png" />
<Resource Include="Resources\delete.png" />
<Resource Include="Resources\disk_blue.png" />
<Resource Include="Resources\document_plain_new.png" />
<Resource Include="Resources\pencil.png" />
</ItemGroup>
<ItemGroup>
<Compile Update="Properties\Resources.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
</Project>

288
AIS/AISAdmin/Main.Designer.cs generated Normal file
View File

@ -0,0 +1,288 @@
namespace AISAdmin
{
partial class Main
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
this.label1 = new System.Windows.Forms.Label();
this.comboBoxGroup = new System.Windows.Forms.ComboBox();
this.buttonNewGroup = new System.Windows.Forms.Button();
this.buttonEditGroup = new System.Windows.Forms.Button();
this.buttonDeleteGroup = new System.Windows.Forms.Button();
this.groupBoxZones = new System.Windows.Forms.GroupBox();
this.checkBoxZoneActive = new System.Windows.Forms.CheckBox();
this.buttonSaveZone = new System.Windows.Forms.Button();
this.textBox2 = new System.Windows.Forms.TextBox();
this.buttonDeleteZone = new System.Windows.Forms.Button();
this.buttonEditZone = new System.Windows.Forms.Button();
this.buttonImportZone = new System.Windows.Forms.Button();
this.buttonZoneDown = new System.Windows.Forms.Button();
this.buttonZoneUp = new System.Windows.Forms.Button();
this.listBoxZones = new System.Windows.Forms.ListBox();
this.groupBoxAssignments = new System.Windows.Forms.GroupBox();
this.textBox1 = new System.Windows.Forms.TextBox();
this.buttonSaveGroup = new System.Windows.Forms.Button();
this.groupBoxZones.SuspendLayout();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 14);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(45, 15);
this.label1.TabIndex = 0;
this.label1.Text = "Groups";
//
// comboBoxGroup
//
this.comboBoxGroup.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBoxGroup.FormattingEnabled = true;
this.comboBoxGroup.Location = new System.Drawing.Point(63, 11);
this.comboBoxGroup.Name = "comboBoxGroup";
this.comboBoxGroup.Size = new System.Drawing.Size(137, 23);
this.comboBoxGroup.TabIndex = 1;
//
// buttonNewGroup
//
this.buttonNewGroup.Image = global::AISAdmin.Properties.Resources.document_plain_new;
this.buttonNewGroup.Location = new System.Drawing.Point(206, 6);
this.buttonNewGroup.Name = "buttonNewGroup";
this.buttonNewGroup.Size = new System.Drawing.Size(37, 31);
this.buttonNewGroup.TabIndex = 2;
this.buttonNewGroup.UseVisualStyleBackColor = true;
this.buttonNewGroup.Click += new System.EventHandler(this.buttonNewGroup_Click);
//
// buttonEditGroup
//
this.buttonEditGroup.Enabled = false;
this.buttonEditGroup.Image = global::AISAdmin.Properties.Resources.pencil;
this.buttonEditGroup.Location = new System.Drawing.Point(249, 6);
this.buttonEditGroup.Name = "buttonEditGroup";
this.buttonEditGroup.Size = new System.Drawing.Size(37, 31);
this.buttonEditGroup.TabIndex = 3;
this.buttonEditGroup.UseVisualStyleBackColor = true;
this.buttonEditGroup.Click += new System.EventHandler(this.buttonEditGroup_Click);
//
// buttonDeleteGroup
//
this.buttonDeleteGroup.Enabled = false;
this.buttonDeleteGroup.Image = global::AISAdmin.Properties.Resources.delete;
this.buttonDeleteGroup.Location = new System.Drawing.Point(292, 6);
this.buttonDeleteGroup.Name = "buttonDeleteGroup";
this.buttonDeleteGroup.Size = new System.Drawing.Size(37, 31);
this.buttonDeleteGroup.TabIndex = 4;
this.buttonDeleteGroup.UseVisualStyleBackColor = true;
this.buttonDeleteGroup.Click += new System.EventHandler(this.buttonDeleteGroup_Click);
//
// groupBoxZones
//
this.groupBoxZones.Controls.Add(this.checkBoxZoneActive);
this.groupBoxZones.Controls.Add(this.buttonSaveZone);
this.groupBoxZones.Controls.Add(this.textBox2);
this.groupBoxZones.Controls.Add(this.buttonDeleteZone);
this.groupBoxZones.Controls.Add(this.buttonEditZone);
this.groupBoxZones.Controls.Add(this.buttonImportZone);
this.groupBoxZones.Controls.Add(this.buttonZoneDown);
this.groupBoxZones.Controls.Add(this.buttonZoneUp);
this.groupBoxZones.Controls.Add(this.listBoxZones);
this.groupBoxZones.Location = new System.Drawing.Point(12, 43);
this.groupBoxZones.Name = "groupBoxZones";
this.groupBoxZones.Size = new System.Drawing.Size(776, 186);
this.groupBoxZones.TabIndex = 5;
this.groupBoxZones.TabStop = false;
this.groupBoxZones.Text = "Zones";
//
// checkBoxZoneActive
//
this.checkBoxZoneActive.AutoSize = true;
this.checkBoxZoneActive.Location = new System.Drawing.Point(237, 27);
this.checkBoxZoneActive.Name = "checkBoxZoneActive";
this.checkBoxZoneActive.Size = new System.Drawing.Size(59, 19);
this.checkBoxZoneActive.TabIndex = 11;
this.checkBoxZoneActive.Text = "Active";
this.checkBoxZoneActive.UseVisualStyleBackColor = true;
//
// buttonSaveZone
//
this.buttonSaveZone.Enabled = false;
this.buttonSaveZone.Image = global::AISAdmin.Properties.Resources.disk_blue;
this.buttonSaveZone.Location = new System.Drawing.Point(733, 22);
this.buttonSaveZone.Name = "buttonSaveZone";
this.buttonSaveZone.Size = new System.Drawing.Size(37, 31);
this.buttonSaveZone.TabIndex = 10;
this.buttonSaveZone.UseVisualStyleBackColor = true;
this.buttonSaveZone.Click += new System.EventHandler(this.buttonSaveZone_Click);
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(525, 27);
this.textBox2.Name = "textBox2";
this.textBox2.ReadOnly = true;
this.textBox2.Size = new System.Drawing.Size(202, 23);
this.textBox2.TabIndex = 9;
//
// buttonDeleteZone
//
this.buttonDeleteZone.Enabled = false;
this.buttonDeleteZone.Image = global::AISAdmin.Properties.Resources.delete;
this.buttonDeleteZone.Location = new System.Drawing.Point(482, 22);
this.buttonDeleteZone.Name = "buttonDeleteZone";
this.buttonDeleteZone.Size = new System.Drawing.Size(37, 31);
this.buttonDeleteZone.TabIndex = 8;
this.buttonDeleteZone.UseVisualStyleBackColor = true;
this.buttonDeleteZone.Click += new System.EventHandler(this.buttonDeleteZone_Click);
//
// buttonEditZone
//
this.buttonEditZone.Enabled = false;
this.buttonEditZone.Image = global::AISAdmin.Properties.Resources.pencil;
this.buttonEditZone.Location = new System.Drawing.Point(439, 22);
this.buttonEditZone.Name = "buttonEditZone";
this.buttonEditZone.Size = new System.Drawing.Size(37, 31);
this.buttonEditZone.TabIndex = 6;
this.buttonEditZone.UseVisualStyleBackColor = true;
this.buttonEditZone.Click += new System.EventHandler(this.buttonEditZone_Click);
//
// buttonImportZone
//
this.buttonImportZone.Image = global::AISAdmin.Properties.Resources.import2;
this.buttonImportZone.Location = new System.Drawing.Point(396, 22);
this.buttonImportZone.Name = "buttonImportZone";
this.buttonImportZone.Size = new System.Drawing.Size(37, 31);
this.buttonImportZone.TabIndex = 5;
this.buttonImportZone.UseVisualStyleBackColor = true;
this.buttonImportZone.Click += new System.EventHandler(this.buttonImportZone_Click);
//
// buttonZoneDown
//
this.buttonZoneDown.Enabled = false;
this.buttonZoneDown.Image = global::AISAdmin.Properties.Resources.arrow_down_green;
this.buttonZoneDown.Location = new System.Drawing.Point(194, 145);
this.buttonZoneDown.Name = "buttonZoneDown";
this.buttonZoneDown.Size = new System.Drawing.Size(37, 31);
this.buttonZoneDown.TabIndex = 4;
this.buttonZoneDown.UseVisualStyleBackColor = true;
this.buttonZoneDown.Click += new System.EventHandler(this.buttonZoneDown_Click);
//
// buttonZoneUp
//
this.buttonZoneUp.Enabled = false;
this.buttonZoneUp.Image = global::AISAdmin.Properties.Resources.arrow_up_green;
this.buttonZoneUp.Location = new System.Drawing.Point(194, 22);
this.buttonZoneUp.Name = "buttonZoneUp";
this.buttonZoneUp.Size = new System.Drawing.Size(37, 31);
this.buttonZoneUp.TabIndex = 3;
this.buttonZoneUp.UseVisualStyleBackColor = true;
this.buttonZoneUp.Click += new System.EventHandler(this.buttonZoneUp_Click);
//
// listBoxZones
//
this.listBoxZones.Enabled = false;
this.listBoxZones.FormattingEnabled = true;
this.listBoxZones.ItemHeight = 15;
this.listBoxZones.Location = new System.Drawing.Point(6, 22);
this.listBoxZones.Name = "listBoxZones";
this.listBoxZones.Size = new System.Drawing.Size(182, 154);
this.listBoxZones.TabIndex = 0;
//
// groupBoxAssignments
//
this.groupBoxAssignments.Location = new System.Drawing.Point(12, 235);
this.groupBoxAssignments.Name = "groupBoxAssignments";
this.groupBoxAssignments.Size = new System.Drawing.Size(776, 203);
this.groupBoxAssignments.TabIndex = 6;
this.groupBoxAssignments.TabStop = false;
this.groupBoxAssignments.Text = "Assignments";
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(335, 11);
this.textBox1.Name = "textBox1";
this.textBox1.ReadOnly = true;
this.textBox1.Size = new System.Drawing.Size(160, 23);
this.textBox1.TabIndex = 7;
//
// buttonSaveGroup
//
this.buttonSaveGroup.Enabled = false;
this.buttonSaveGroup.Image = global::AISAdmin.Properties.Resources.disk_blue;
this.buttonSaveGroup.Location = new System.Drawing.Point(501, 6);
this.buttonSaveGroup.Name = "buttonSaveGroup";
this.buttonSaveGroup.Size = new System.Drawing.Size(37, 31);
this.buttonSaveGroup.TabIndex = 5;
this.buttonSaveGroup.UseVisualStyleBackColor = true;
this.buttonSaveGroup.Click += new System.EventHandler(this.buttonSaveGroup_Click);
//
// Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.buttonSaveGroup);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.groupBoxAssignments);
this.Controls.Add(this.groupBoxZones);
this.Controls.Add(this.buttonDeleteGroup);
this.Controls.Add(this.buttonEditGroup);
this.Controls.Add(this.buttonNewGroup);
this.Controls.Add(this.comboBoxGroup);
this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "Main";
this.Text = "AIS Admin";
this.groupBoxZones.ResumeLayout(false);
this.groupBoxZones.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private Label label1;
private ComboBox comboBoxGroup;
private Button buttonNewGroup;
private Button buttonEditGroup;
private Button buttonDeleteGroup;
private GroupBox groupBoxZones;
private GroupBox groupBoxAssignments;
private ListBox listBoxZones;
private Button buttonZoneDown;
private Button buttonZoneUp;
private TextBox textBox1;
private Button buttonSaveGroup;
private Button buttonSaveZone;
private TextBox textBox2;
private Button buttonDeleteZone;
private Button buttonEditZone;
private Button buttonImportZone;
private CheckBox checkBoxZoneActive;
}
}

60
AIS/AISAdmin/Main.cs Normal file
View File

@ -0,0 +1,60 @@
namespace AISAdmin
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
private void buttonZoneUp_Click(object sender, EventArgs e)
{
}
private void buttonZoneDown_Click(object sender, EventArgs e)
{
}
private void buttonImportZone_Click(object sender, EventArgs e)
{
}
private void buttonEditZone_Click(object sender, EventArgs e)
{
}
private void buttonDeleteZone_Click(object sender, EventArgs e)
{
}
private void buttonSaveZone_Click(object sender, EventArgs e)
{
}
private void buttonNewGroup_Click(object sender, EventArgs e)
{
}
private void buttonEditGroup_Click(object sender, EventArgs e)
{
}
private void buttonDeleteGroup_Click(object sender, EventArgs e)
{
}
private void buttonSaveGroup_Click(object sender, EventArgs e)
{
}
}
}

2129
AIS/AISAdmin/Main.resx Normal file

File diff suppressed because it is too large Load Diff

17
AIS/AISAdmin/Program.cs Normal file
View File

@ -0,0 +1,17 @@
namespace AISAdmin
{
internal static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
// To customize application configuration such as set high DPI settings or default font,
// see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize();
Application.Run(new Main());
}
}
}

View File

@ -0,0 +1,153 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AISAdmin.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AISAdmin.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap arrow_down_green {
get {
object obj = ResourceManager.GetObject("arrow_down_green", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap arrow_right_green {
get {
object obj = ResourceManager.GetObject("arrow_right_green", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap arrow_up_green {
get {
object obj = ResourceManager.GetObject("arrow_up_green", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap check {
get {
object obj = ResourceManager.GetObject("check", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap delete {
get {
object obj = ResourceManager.GetObject("delete", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap disk_blue {
get {
object obj = ResourceManager.GetObject("disk_blue", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap document_plain_new {
get {
object obj = ResourceManager.GetObject("document_plain_new", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap import2 {
get {
object obj = ResourceManager.GetObject("import2", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap pencil {
get {
object obj = ResourceManager.GetObject("pencil", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

View File

@ -0,0 +1,148 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="arrow_down_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_down_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_right_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_right_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_up_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_up_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="check" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\check.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="delete" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="disk_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\disk_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="document_plain_new" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\document_plain_new.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="import2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\import2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="pencil" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\pencil.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 953 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 944 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
AIS/AnalogerLaufzettel.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

View File

@ -8,6 +8,16 @@ ___
![Übersichtsbild der geplanten Architektur](architektur.jpg "Architektur")
## Stand Dez 22
Nächste geplante Schritte:
- Gebiete müssen einer Gruppe zugeordnet werden, damit wir Laufzettel für mehrere getrennte, aufeinanderfolgende Gebiete erstellen können (z.B. Weser und Elbe).
- Erstellung eines AIS-Admin Tools, um Gebiete zu verwalten (KML Import, Löschen, Zuweisen von MMSI/IMO zu den Gebieten). Das Tool kann nur auf dem Server verwendet werden (obviously) und wird der Einfachheit halber einfach ein Winforms Projekt.
- Verbesserte HTML Übersicht analog zu dem Laufzettel (Einfahrtzeit in die Gebiete)
![Aktueller Laufzettel](AnalogerLaufzettel.jpg "Laufzettel")
## Stand Sep/Okt.22
Entscheidung, den leidlich laufenden AIS Service zu verbessern, da aktiv nicht mehr an WETRIS weitergearbeitet wird. Aufgaben:

Binary file not shown.

View File

@ -13,17 +13,51 @@ using System.Threading.Tasks;
namespace bsmd.AIS2Service
{
#region class MonitorGroup
public class MonitorGroup
{
#region fields
private readonly int _id; // PK from database
private readonly string _name;
private readonly List<MonitorZone> _zones = new List<MonitorZone>();
#endregion
#region Construction
public MonitorGroup(int id, string name)
{
_id = id; _name = name;
}
#endregion
#region Properties
public List<MonitorZone> Zones { get { return _zones; } }
public int Id { get { return _id; } }
public string Name { get { return _name; } }
#endregion
}
#endregion
#region class MonitorZone
internal class MonitorZone
public class MonitorZone
{
#region fields
private int _id; // PK from database
private List<GeoPoint> _vertices = new List<GeoPoint>();
private List<MonitorAssignment> _assignments = new List<MonitorAssignment>();
private string _name;
private readonly int _id; // PK from database
private readonly List<GeoPoint> _vertices = new List<GeoPoint>();
private readonly List<MonitorAssignment> _assignments = new List<MonitorAssignment>();
private readonly string _name;
#endregion
@ -48,6 +82,8 @@ namespace bsmd.AIS2Service
public bool Active { get; set; }
public int Sequence { get; set; }
#endregion
#region public methods
@ -78,10 +114,10 @@ namespace bsmd.AIS2Service
#region class GeoPoint
internal class GeoPoint
public class GeoPoint
{
private int _id;
private readonly int _id;
public GeoPoint(int id)
{
@ -98,10 +134,10 @@ namespace bsmd.AIS2Service
#region class MonitorAssignment
internal class MonitorAssignment
public class MonitorAssignment
{
private int _id;
private readonly int _id;
public MonitorAssignment(int id)
{

View File

@ -5,6 +5,8 @@ VisualStudioVersion = 17.3.32901.215
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "bsmd.AIS2Service", "bsmd.AIS2Service.csproj", "{73C2580C-4CE2-44DC-9BCF-41C6F860CFCC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AISAdmin", "..\AISAdmin\AISAdmin.csproj", "{EDEE0E87-47F4-44F6-A165-D84D4A99E5C7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -15,6 +17,10 @@ Global
{73C2580C-4CE2-44DC-9BCF-41C6F860CFCC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{73C2580C-4CE2-44DC-9BCF-41C6F860CFCC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{73C2580C-4CE2-44DC-9BCF-41C6F860CFCC}.Release|Any CPU.Build.0 = Release|Any CPU
{EDEE0E87-47F4-44F6-A165-D84D4A99E5C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EDEE0E87-47F4-44F6-A165-D84D4A99E5C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EDEE0E87-47F4-44F6-A165-D84D4A99E5C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EDEE0E87-47F4-44F6-A165-D84D4A99E5C7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE