Demononon.Models
1.0.4
dotnet add package Demononon.Models --version 1.0.4
NuGet\Install-Package Demononon.Models -Version 1.0.4
<PackageReference Include="Demononon.Models" Version="1.0.4" />
<PackageVersion Include="Demononon.Models" Version="1.0.4" />
<PackageReference Include="Demononon.Models" />
paket add Demononon.Models --version 1.0.4
#r "nuget: Demononon.Models, 1.0.4"
#:package Demononon.Models@1.0.4
#addin nuget:?package=Demononon.Models&version=1.0.4
#tool nuget:?package=Demononon.Models&version=1.0.4
Demononon.Models
Дополнительная библиотека моделей данных для системы учёта магазина.
Установка
dotnet add package Demononon.Models --version 1.0.3
dotnet build
После dotnet build в вашем проекте автоматически появятся папки:
scripts/database.sql— скрипт для pgAdminImport/*.csv— данные для импорта
Модели подключаются через DLL:
using demononon.Models;
На демо достаточно: установить пакет → собрать проект → открыть
scripts/database.sqlиз папки проекта.
Состав пакета
| Папка / файл | Назначение |
|---|---|
Models/ |
C#-модели таблиц (EF Core / Data Annotations) |
scripts/database.sql |
Скрипт создания и заполнения БД для pgAdmin |
Import/*.csv |
Данные для импорта (формат ;, UTF-8) |
База данных (pgAdmin)
- Создайте базу PostgreSQL.
- Query Tool → откройте
scripts/database.sql→ F5.
Таблицы
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 | Versions 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. |
-
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.