Demononon.Models 1.0.4

dotnet add package Demononon.Models --version 1.0.4
                    
NuGet\Install-Package Demononon.Models -Version 1.0.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Demononon.Models" Version="1.0.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Demononon.Models" Version="1.0.4" />
                    
Directory.Packages.props
<PackageReference Include="Demononon.Models" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Demononon.Models --version 1.0.4
                    
#r "nuget: Demononon.Models, 1.0.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Demononon.Models@1.0.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Demononon.Models&version=1.0.4
                    
Install as a Cake Addin
#tool nuget:?package=Demononon.Models&version=1.0.4
                    
Install as a Cake Tool

Demononon.Models

Дополнительная библиотека моделей данных для системы учёта магазина.

Установка

dotnet add package Demononon.Models --version 1.0.3
dotnet build

После dotnet build в вашем проекте автоматически появятся папки:

  • scripts/database.sql — скрипт для pgAdmin
  • Import/*.csv — данные для импорта

Модели подключаются через DLL:

using demononon.Models;

На демо достаточно: установить пакет → собрать проект → открыть scripts/database.sql из папки проекта.

Состав пакета

Папка / файл Назначение
Models/ C#-модели таблиц (EF Core / Data Annotations)
scripts/database.sql Скрипт создания и заполнения БД для pgAdmin
Import/*.csv Данные для импорта (формат ;, UTF-8)

База данных (pgAdmin)

  1. Создайте базу PostgreSQL.
  2. Query Tool → откройте scripts/database.sqlF5.

Таблицы

role, users, pickup_point, category, manufacturer, supplier, order_status, unit, product, orders, order_item

Представление v_order_articles — сводная строка артикулов по заказу.

Модели

Модель Таблица
Role role
Users users
PickupPoint pickup_point
Category category
Manufacturer manufacturer
Supplier supplier
OrderStatus order_status
Unit unit
Product product
Order orders
OrderItem order_item

HTML-гайд: оформление интерфейса

Рекомендации по стилю пользовательского интерфейса. Ниже — готовые фрагменты HTML/CSS.

Палитра и шрифт

:root {
  --bg-main: #FFFFFF;        /* основной фон */
  --bg-secondary: #ABCFCE;  /* дополнительный фон */
  --accent: #546F94;        /* акцент (кнопки, целевые действия) */
  --discount-highlight: #23E1EF; /* фон строки, если скидка > 25% */
  --font-main: "Comic Sans MS", "Comic Sans", cursive;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: var(--font-main);
  background-color: var(--bg-main);
  color: #000000;
}

Иконка приложения (favicon)

Положите файл иконки в папку ресурсов, например resources/icon.ico или resources/icon.png.


<link rel="icon" type="image/x-icon" href="resources/icon.ico">
<link rel="icon" type="image/png" href="resources/icon.png">

Иконка берётся из ресурсов задания. Не масштабируйте и не перекрашивайте файл — только подключите как есть.

Логотип на главной форме

Файл логотипа из ресурсов, например resources/logo.png. Не искажать: не менять изображение, пропорции и цвет.

<header class="main-header">
  <img
    class="app-logo"
    src="resources/logo.png"
    alt="Логотип компании"
  >
  <h1>Магазин — вход</h1>
</header>
.main-header {
  background-color: var(--bg-secondary);
  padding: 16px 24px;
  display: flex;
  align-items: center;
  gap: 16px;
}

/* Логотип без искажений */
.app-logo {
  height: 80px;           /* задайте нужную высоту */
  width: auto;              /* ширина подстроится сама — пропорции сохранятся */
  object-fit: contain;      /* не обрезать и не растягивать */
  image-rendering: auto;    /* без фильтров и перекраски */
  filter: none;
  transform: none;
}

Чего нельзя делать с логотипом:

  • width и height с разными пропорциями (растягивание);
  • object-fit: fill;
  • CSS-фильтры (filter, opacity для изменения цвета);
  • замена файла на другой.

Заголовок у каждой формы

Каждый экран — отдельная HTML-страница (или отдельный title + видимый заголовок).

<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <title>Список товаров — Магазин</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <main class="page">
    <h1 class="page-title">Список товаров</h1>
    
  </main>
</body>
</html>

Примеры заголовков (<title> и <h1> должны совпадать по смыслу):

Экран <title> <h1>
Вход Вход — Магазин Авторизация
Товары (гость) Товары — Магазин Список товаров
Заказы Заказы — Магазин Заказы
Добавление товара Добавление товара — Магазин Добавление товара
.page {
  min-height: 100vh;
  background-color: var(--bg-main);
}

.page-title {
  margin: 0;
  padding: 16px 24px;
  background-color: var(--bg-secondary);
  font-family: var(--font-main);
  font-size: 24px;
}

Шрифт Comic Sans MS для всего проекта

HTML — в styles.css (см. блок :root выше) подключите один раз:

html, body, input, button, select, textarea, table, h1, h2, h3, label {
  font-family: var(--font-main);
}

WPF — в App.xaml:

<Application.Resources>
  <Style TargetType="Control">
    <Setter Property="FontFamily" Value="Comic Sans MS"/>
  </Style>
  <Style TargetType="TextBlock">
    <Setter Property="FontFamily" Value="Comic Sans MS"/>
  </Style>
</Application.Resources>

Если шрифт не отображается — установите Comic Sans MS в Windows или укажите запасной cursive.

Кнопки и акцентный цвет

Целевое действие (Войти, Добавить, Сохранить) — цвет #546F94.

.btn-primary {
  font-family: var(--font-main);
  background-color: var(--accent);
  color: #FFFFFF;
  border: none;
  padding: 10px 20px;
  cursor: pointer;
}

.btn-primary:hover {
  background-color: #455f82;
}
<button type="submit" class="btn-primary">Войти</button>

Подсветка скидки > 25% в таблице товаров

<table class="products-table">
  <thead>
    <tr>
      <th>Фото</th>
      <th>Наименование</th>
      <th>Цена</th>
      <th>Скидка</th>
      <th>На складе</th>
    </tr>
  </thead>
  <tbody>
    <tr class="row-discount-high">
      <td><img src="1.jpg" alt=""></td>
      <td>Прокляты и убиты</td>
      <td><span class="price-old">585</span> <span class="price-new">438.75</span></td>
      <td>25%</td>
      <td>6</td>
    </tr>
    <tr class="row-out-of-stock">
      <td><img src="19.jpg" alt=""></td>
      <td>Английский язык в спорте</td>
      <td>1999</td>
      <td>2%</td>
      <td>0</td>
    </tr>
  </tbody>
</table>
.products-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-main);
}

.products-table thead {
  background-color: var(--bg-secondary);
}

.products-table th,
.products-table td {
  padding: 8px 12px;
  border: 1px solid #CCCCCC;
}

/* Скидка > 25% */
.row-discount-high {
  background-color: #23E1EF;
}

/* Цена со скидкой: старая перечёркнута, красная; новая — чёрная */
.price-old {
  text-decoration: line-through;
  color: #FF0000;
}

.price-new {
  color: #000000;
  font-weight: bold;
}

/* Нет на складе — серая строка */
.row-out-of-stock {
  background-color: #D3D3D3;
  color: #666666;
}

Логика в JavaScript (или на сервере):

function applyRowStyles(row, discount, quantityInStock, hasDiscountPrice) {
  row.classList.remove("row-discount-high", "row-out-of-stock");

  if (quantityInStock === 0) {
    row.classList.add("row-out-of-stock");
  }
  if (discount > 25) {
    row.classList.add("row-discount-high");
  }
}

Шаблон главной формы (вход)

<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <title>Вход — Магазин</title>
  <link rel="icon" href="resources/icon.ico">
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <header class="main-header">
    <img class="app-logo" src="resources/logo.png" alt="Логотип компании">
    <h1>Авторизация</h1>
  </header>

  <section class="login-panel">
    <form>
      <label>Логин <input type="text" name="login"></label>
      <label>Пароль <input type="password" name="password"></label>
      <button type="submit" class="btn-primary">Войти</button>
      <button type="button">Просмотр товаров (гость)</button>
    </form>
  </section>
</body>
</html>
.login-panel {
  max-width: 400px;
  margin: 40px auto;
  padding: 24px;
  background-color: var(--bg-main);
  border: 2px solid var(--bg-secondary);
}

Чек-лист перед сдачей

  • У каждой формы заполнены <title> и видимый <h1>
  • На главной форме (вход) есть логотип из resources/logo.png
  • Логотип не растянут (width: auto, object-fit: contain)
  • Иконка приложения подключена из ресурсов
  • Везде шрифт Comic Sans MS
  • Основной фон — белый (#FFFFFF)
  • Дополнительный фон (шапки, заголовки таблиц) — #ABCFCE
  • Кнопки действий — #546F94
  • Строки со скидкой > 25% — фон #23E1EF
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.4 156 6/13/2026 1.0.4 is deprecated because it has critical bugs.
1.0.3 134 6/13/2026 1.0.3 is deprecated because it has critical bugs.
1.0.2 138 6/13/2026 1.0.2 is deprecated because it has critical bugs.