chinit_pdf
This commit is contained in:
parent
156a9ed6bb
commit
69fe9ea9bc
288
demo_hard/Migrations/20250421231548_CreateOrderServiceTable.Designer.cs
generated
Normal file
288
demo_hard/Migrations/20250421231548_CreateOrderServiceTable.Designer.cs
generated
Normal file
@ -0,0 +1,288 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using demo_hard.Models;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace demo_hard.Migrations
|
||||
{
|
||||
[DbContext(typeof(User15Context))]
|
||||
[Migration("20250421231548_CreateOrderServiceTable")]
|
||||
partial class CreateOrderServiceTable
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "8.0.10")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
||||
|
||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||
|
||||
modelBuilder.Entity("OrderService", b =>
|
||||
{
|
||||
b.Property<int>("OrdersOrderId")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<int>("ServicesServiceId")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.HasKey("OrdersOrderId", "ServicesServiceId");
|
||||
|
||||
b.HasIndex("ServicesServiceId");
|
||||
|
||||
b.ToTable("OrderService");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("demo_hard.Models.Client", b =>
|
||||
{
|
||||
b.Property<int>("ClientId")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("client_id");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityAlwaysColumn(b.Property<int>("ClientId"));
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("address");
|
||||
|
||||
b.Property<DateOnly?>("Birthday")
|
||||
.HasColumnType("date")
|
||||
.HasColumnName("birthday");
|
||||
|
||||
b.Property<int?>("ClientCode")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("client_code");
|
||||
|
||||
b.Property<string>("Email")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("email");
|
||||
|
||||
b.Property<string>("Fio")
|
||||
.HasMaxLength(100)
|
||||
.HasColumnType("character varying(100)")
|
||||
.HasColumnName("fio");
|
||||
|
||||
b.Property<string>("Passport")
|
||||
.HasMaxLength(10)
|
||||
.HasColumnType("character varying(10)")
|
||||
.HasColumnName("passport");
|
||||
|
||||
b.Property<string>("Password")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("password");
|
||||
|
||||
b.Property<int?>("Role")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("role");
|
||||
|
||||
b.HasKey("ClientId")
|
||||
.HasName("client_pk");
|
||||
|
||||
b.HasIndex(new[] { "ClientCode" }, "client_unique")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("client", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("demo_hard.Models.Employee", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("id");
|
||||
|
||||
b.Property<string>("EnterStatus")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("enter_status");
|
||||
|
||||
b.Property<string>("Fio")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("fio");
|
||||
|
||||
b.Property<DateTime?>("LastEnter")
|
||||
.HasColumnType("timestamp without time zone")
|
||||
.HasColumnName("last_enter");
|
||||
|
||||
b.Property<string>("Login")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("login");
|
||||
|
||||
b.Property<string>("Password")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("password");
|
||||
|
||||
b.Property<string>("Photo")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("photo");
|
||||
|
||||
b.Property<int>("Role")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("role");
|
||||
|
||||
b.HasKey("Id")
|
||||
.HasName("employees_pk");
|
||||
|
||||
b.ToTable("employees", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("demo_hard.Models.Order", b =>
|
||||
{
|
||||
b.Property<int>("OrderId")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("order_id");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityAlwaysColumn(b.Property<int>("OrderId"));
|
||||
|
||||
b.Property<int?>("ClientId")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("client_id");
|
||||
|
||||
b.Property<DateOnly?>("EndDate")
|
||||
.HasColumnType("date")
|
||||
.HasColumnName("end_date");
|
||||
|
||||
b.Property<string>("OrderCode")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("order_code");
|
||||
|
||||
b.Property<int?>("RentTime")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("rent_time");
|
||||
|
||||
b.Property<DateOnly?>("StartDate")
|
||||
.HasColumnType("date")
|
||||
.HasColumnName("start_date");
|
||||
|
||||
b.Property<string>("Status")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("status");
|
||||
|
||||
b.Property<TimeOnly?>("Time")
|
||||
.HasColumnType("time without time zone")
|
||||
.HasColumnName("time");
|
||||
|
||||
b.HasKey("OrderId")
|
||||
.HasName("orders_pk");
|
||||
|
||||
b.ToTable("orders", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("demo_hard.Models.OrderService", b =>
|
||||
{
|
||||
b.Property<int>("OrderId")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("order_id");
|
||||
|
||||
b.Property<int>("ServiceId")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("service_id");
|
||||
|
||||
b.Property<int>("RentTime")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("rent_time");
|
||||
|
||||
b.HasKey("OrderId", "ServiceId");
|
||||
|
||||
b.HasIndex("ServiceId");
|
||||
|
||||
b.ToTable("order_services", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("demo_hard.Models.Role", b =>
|
||||
{
|
||||
b.Property<int>("RoleId")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("role_id");
|
||||
|
||||
b.Property<string>("RoleName")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("role_name");
|
||||
|
||||
b.ToTable("roles", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("demo_hard.Models.Service", b =>
|
||||
{
|
||||
b.Property<int>("ServiceId")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("service_id");
|
||||
|
||||
b.Property<int?>("CostPerHour")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("cost_per_hour");
|
||||
|
||||
b.Property<string>("ServiceCode")
|
||||
.IsRequired()
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("service_code");
|
||||
|
||||
b.Property<string>("ServiceName")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("service_name");
|
||||
|
||||
b.HasKey("ServiceId")
|
||||
.HasName("services_pk");
|
||||
|
||||
b.HasIndex(new[] { "ServiceCode" }, "services_unique")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("services", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("OrderService", b =>
|
||||
{
|
||||
b.HasOne("demo_hard.Models.Order", null)
|
||||
.WithMany()
|
||||
.HasForeignKey("OrdersOrderId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("demo_hard.Models.Service", null)
|
||||
.WithMany()
|
||||
.HasForeignKey("ServicesServiceId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("demo_hard.Models.OrderService", b =>
|
||||
{
|
||||
b.HasOne("demo_hard.Models.Order", "Order")
|
||||
.WithMany("OrderServices")
|
||||
.HasForeignKey("OrderId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired()
|
||||
.HasConstraintName("order_services_order_id_fkey");
|
||||
|
||||
b.HasOne("demo_hard.Models.Service", "Service")
|
||||
.WithMany("OrderServices")
|
||||
.HasForeignKey("ServiceId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired()
|
||||
.HasConstraintName("order_services_service_id_fkey");
|
||||
|
||||
b.Navigation("Order");
|
||||
|
||||
b.Navigation("Service");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("demo_hard.Models.Order", b =>
|
||||
{
|
||||
b.Navigation("OrderServices");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("demo_hard.Models.Service", b =>
|
||||
{
|
||||
b.Navigation("OrderServices");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace demo_hard.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class CreateOrderServiceTable : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.CreateTable(
|
||||
name: "order_services",
|
||||
columns: table => new
|
||||
{
|
||||
order_id = table.Column<int>(type: "integer", nullable: false),
|
||||
service_id = table.Column<int>(type: "integer", nullable: false),
|
||||
rent_time = table.Column<int>(type: "integer", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_order_services", x => new { x.order_id, x.service_id });
|
||||
table.ForeignKey(
|
||||
name: "FK_order_services_orders_order_id",
|
||||
column: x => x.order_id,
|
||||
principalTable: "orders",
|
||||
principalColumn: "order_id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "FK_order_services_services_service_id",
|
||||
column: x => x.service_id,
|
||||
principalTable: "services",
|
||||
principalColumn: "service_id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_order_services_service_id",
|
||||
table: "order_services",
|
||||
column: "service_id");
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable(
|
||||
name: "order_services");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
285
demo_hard/Migrations/User15ContextModelSnapshot.cs
Normal file
285
demo_hard/Migrations/User15ContextModelSnapshot.cs
Normal file
@ -0,0 +1,285 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using demo_hard.Models;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace demo_hard.Migrations
|
||||
{
|
||||
[DbContext(typeof(User15Context))]
|
||||
partial class User15ContextModelSnapshot : ModelSnapshot
|
||||
{
|
||||
protected override void BuildModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "8.0.10")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
||||
|
||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||
|
||||
modelBuilder.Entity("OrderService", b =>
|
||||
{
|
||||
b.Property<int>("OrdersOrderId")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<int>("ServicesServiceId")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.HasKey("OrdersOrderId", "ServicesServiceId");
|
||||
|
||||
b.HasIndex("ServicesServiceId");
|
||||
|
||||
b.ToTable("OrderService");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("demo_hard.Models.Client", b =>
|
||||
{
|
||||
b.Property<int>("ClientId")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("client_id");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityAlwaysColumn(b.Property<int>("ClientId"));
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("address");
|
||||
|
||||
b.Property<DateOnly?>("Birthday")
|
||||
.HasColumnType("date")
|
||||
.HasColumnName("birthday");
|
||||
|
||||
b.Property<int?>("ClientCode")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("client_code");
|
||||
|
||||
b.Property<string>("Email")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("email");
|
||||
|
||||
b.Property<string>("Fio")
|
||||
.HasMaxLength(100)
|
||||
.HasColumnType("character varying(100)")
|
||||
.HasColumnName("fio");
|
||||
|
||||
b.Property<string>("Passport")
|
||||
.HasMaxLength(10)
|
||||
.HasColumnType("character varying(10)")
|
||||
.HasColumnName("passport");
|
||||
|
||||
b.Property<string>("Password")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("password");
|
||||
|
||||
b.Property<int?>("Role")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("role");
|
||||
|
||||
b.HasKey("ClientId")
|
||||
.HasName("client_pk");
|
||||
|
||||
b.HasIndex(new[] { "ClientCode" }, "client_unique")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("client", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("demo_hard.Models.Employee", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("id");
|
||||
|
||||
b.Property<string>("EnterStatus")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("enter_status");
|
||||
|
||||
b.Property<string>("Fio")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("fio");
|
||||
|
||||
b.Property<DateTime?>("LastEnter")
|
||||
.HasColumnType("timestamp without time zone")
|
||||
.HasColumnName("last_enter");
|
||||
|
||||
b.Property<string>("Login")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("login");
|
||||
|
||||
b.Property<string>("Password")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("password");
|
||||
|
||||
b.Property<string>("Photo")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("photo");
|
||||
|
||||
b.Property<int>("Role")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("role");
|
||||
|
||||
b.HasKey("Id")
|
||||
.HasName("employees_pk");
|
||||
|
||||
b.ToTable("employees", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("demo_hard.Models.Order", b =>
|
||||
{
|
||||
b.Property<int>("OrderId")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("order_id");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityAlwaysColumn(b.Property<int>("OrderId"));
|
||||
|
||||
b.Property<int?>("ClientId")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("client_id");
|
||||
|
||||
b.Property<DateOnly?>("EndDate")
|
||||
.HasColumnType("date")
|
||||
.HasColumnName("end_date");
|
||||
|
||||
b.Property<string>("OrderCode")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("order_code");
|
||||
|
||||
b.Property<int?>("RentTime")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("rent_time");
|
||||
|
||||
b.Property<DateOnly?>("StartDate")
|
||||
.HasColumnType("date")
|
||||
.HasColumnName("start_date");
|
||||
|
||||
b.Property<string>("Status")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("status");
|
||||
|
||||
b.Property<TimeOnly?>("Time")
|
||||
.HasColumnType("time without time zone")
|
||||
.HasColumnName("time");
|
||||
|
||||
b.HasKey("OrderId")
|
||||
.HasName("orders_pk");
|
||||
|
||||
b.ToTable("orders", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("demo_hard.Models.OrderService", b =>
|
||||
{
|
||||
b.Property<int>("OrderId")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("order_id");
|
||||
|
||||
b.Property<int>("ServiceId")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("service_id");
|
||||
|
||||
b.Property<int>("RentTime")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("rent_time");
|
||||
|
||||
b.HasKey("OrderId", "ServiceId");
|
||||
|
||||
b.HasIndex("ServiceId");
|
||||
|
||||
b.ToTable("order_services", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("demo_hard.Models.Role", b =>
|
||||
{
|
||||
b.Property<int>("RoleId")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("role_id");
|
||||
|
||||
b.Property<string>("RoleName")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("role_name");
|
||||
|
||||
b.ToTable("roles", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("demo_hard.Models.Service", b =>
|
||||
{
|
||||
b.Property<int>("ServiceId")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("service_id");
|
||||
|
||||
b.Property<int?>("CostPerHour")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("cost_per_hour");
|
||||
|
||||
b.Property<string>("ServiceCode")
|
||||
.IsRequired()
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("service_code");
|
||||
|
||||
b.Property<string>("ServiceName")
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("service_name");
|
||||
|
||||
b.HasKey("ServiceId")
|
||||
.HasName("services_pk");
|
||||
|
||||
b.HasIndex(new[] { "ServiceCode" }, "services_unique")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("services", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("OrderService", b =>
|
||||
{
|
||||
b.HasOne("demo_hard.Models.Order", null)
|
||||
.WithMany()
|
||||
.HasForeignKey("OrdersOrderId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("demo_hard.Models.Service", null)
|
||||
.WithMany()
|
||||
.HasForeignKey("ServicesServiceId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("demo_hard.Models.OrderService", b =>
|
||||
{
|
||||
b.HasOne("demo_hard.Models.Order", "Order")
|
||||
.WithMany("OrderServices")
|
||||
.HasForeignKey("OrderId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired()
|
||||
.HasConstraintName("order_services_order_id_fkey");
|
||||
|
||||
b.HasOne("demo_hard.Models.Service", "Service")
|
||||
.WithMany("OrderServices")
|
||||
.HasForeignKey("ServiceId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired()
|
||||
.HasConstraintName("order_services_service_id_fkey");
|
||||
|
||||
b.Navigation("Order");
|
||||
|
||||
b.Navigation("Service");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("demo_hard.Models.Order", b =>
|
||||
{
|
||||
b.Navigation("OrderServices");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("demo_hard.Models.Service", b =>
|
||||
{
|
||||
b.Navigation("OrderServices");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
@ -6,20 +6,14 @@ namespace demo_hard.Models;
|
||||
public partial class Order
|
||||
{
|
||||
public int OrderId { get; set; }
|
||||
|
||||
public string? OrderCode { get; set; }
|
||||
|
||||
public TimeOnly? Time { get; set; }
|
||||
|
||||
public DateOnly? EndDate { get; set; }
|
||||
|
||||
public int? RentTime { get; set; }
|
||||
|
||||
public DateOnly? StartDate { get; set; }
|
||||
|
||||
public int? ClientId { get; set; }
|
||||
|
||||
public string? Status { get; set; }
|
||||
|
||||
|
||||
public virtual ICollection<OrderService> OrderServices { get; set; } = new List<OrderService>();
|
||||
public virtual ICollection<Service> Services { get; set; } = new List<Service>();
|
||||
}
|
||||
}
|
12
demo_hard/Models/OrderService.cs
Normal file
12
demo_hard/Models/OrderService.cs
Normal file
@ -0,0 +1,12 @@
|
||||
namespace demo_hard.Models;
|
||||
|
||||
public class OrderService
|
||||
{
|
||||
public int OrderId { get; set; }
|
||||
public int ServiceId { get; set; }
|
||||
public int RentTime { get; set; }
|
||||
|
||||
public virtual Order Order { get; set; }
|
||||
|
||||
public virtual Service Service { get; set; }
|
||||
}
|
@ -1,17 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace demo_hard.Models;
|
||||
|
||||
public partial class Service
|
||||
{
|
||||
public string? ServiceName { get; set; }
|
||||
|
||||
public int? CostPerHour { get; set; }
|
||||
|
||||
public string ServiceCode { get; set; } = null!;
|
||||
|
||||
public int ServiceId { get; set; }
|
||||
|
||||
|
||||
public virtual ICollection<OrderService> OrderServices { get; set; } = new List<OrderService>();
|
||||
public virtual ICollection<Order> Orders { get; set; } = new List<Order>();
|
||||
}
|
||||
}
|
@ -16,27 +16,26 @@ public partial class User15Context : DbContext
|
||||
}
|
||||
|
||||
public virtual DbSet<Client> Clients { get; set; }
|
||||
|
||||
public virtual DbSet<Employee> Employees { get; set; }
|
||||
|
||||
public virtual DbSet<Order> Orders { get; set; }
|
||||
|
||||
public virtual DbSet<Role> Roles { get; set; }
|
||||
|
||||
public virtual DbSet<Service> Services { get; set; }
|
||||
public virtual DbSet<OrderService> OrderServices { get; set; }
|
||||
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see https://go.microsoft.com/fwlink/?LinkId=723263.
|
||||
=> optionsBuilder.UseNpgsql("Host=45.67.56.214;Port=5421;USERNAME=user15;DATABASE=user15;Password=3XkvwMOb");
|
||||
{
|
||||
if (!optionsBuilder.IsConfigured)
|
||||
{
|
||||
optionsBuilder.UseNpgsql("Host=45.67.56.214;Port=5421;USERNAME=user15;DATABASE=user15;Password=3XkvwMOb");
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.Entity<Client>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.ClientId).HasName("client_pk");
|
||||
|
||||
entity.ToTable("client");
|
||||
|
||||
entity.HasIndex(e => e.ClientCode, "client_unique").IsUnique();
|
||||
|
||||
entity.Property(e => e.ClientId)
|
||||
@ -65,7 +64,6 @@ public partial class User15Context : DbContext
|
||||
modelBuilder.Entity<Employee>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.Id).HasName("employees_pk");
|
||||
|
||||
entity.ToTable("employees");
|
||||
|
||||
entity.Property(e => e.Id)
|
||||
@ -95,7 +93,6 @@ public partial class User15Context : DbContext
|
||||
modelBuilder.Entity<Order>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.OrderId).HasName("orders_pk");
|
||||
|
||||
entity.ToTable("orders");
|
||||
|
||||
entity.Property(e => e.OrderId)
|
||||
@ -113,32 +110,14 @@ public partial class User15Context : DbContext
|
||||
.HasColumnName("status");
|
||||
entity.Property(e => e.Time).HasColumnName("time");
|
||||
|
||||
entity.HasMany(d => d.Services).WithMany(p => p.Orders)
|
||||
.UsingEntity<Dictionary<string, object>>(
|
||||
"OrderService",
|
||||
r => r.HasOne<Service>().WithMany()
|
||||
.HasForeignKey("ServiceId")
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("order_services_service_id_fkey"),
|
||||
l => l.HasOne<Order>().WithMany()
|
||||
.HasForeignKey("OrderId")
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("order_services_order_id_fkey"),
|
||||
j =>
|
||||
{
|
||||
j.HasKey("OrderId", "ServiceId").HasName("order_services_pkey");
|
||||
j.ToTable("order_services");
|
||||
j.IndexerProperty<int>("OrderId").HasColumnName("order_id");
|
||||
j.IndexerProperty<int>("ServiceId").HasColumnName("service_id");
|
||||
});
|
||||
entity.HasMany(o => o.OrderServices)
|
||||
.WithOne(os => os.Order)
|
||||
.HasForeignKey(os => os.OrderId);
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Role>(entity =>
|
||||
{
|
||||
entity
|
||||
.HasNoKey()
|
||||
.ToTable("roles");
|
||||
|
||||
entity.HasNoKey().ToTable("roles");
|
||||
entity.Property(e => e.RoleId).HasColumnName("role_id");
|
||||
entity.Property(e => e.RoleName)
|
||||
.HasColumnType("character varying")
|
||||
@ -148,9 +127,7 @@ public partial class User15Context : DbContext
|
||||
modelBuilder.Entity<Service>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.ServiceId).HasName("services_pk");
|
||||
|
||||
entity.ToTable("services");
|
||||
|
||||
entity.HasIndex(e => e.ServiceCode, "services_unique").IsUnique();
|
||||
|
||||
entity.Property(e => e.ServiceId)
|
||||
@ -163,10 +140,34 @@ public partial class User15Context : DbContext
|
||||
entity.Property(e => e.ServiceName)
|
||||
.HasColumnType("character varying")
|
||||
.HasColumnName("service_name");
|
||||
|
||||
entity.HasMany(s => s.OrderServices)
|
||||
.WithOne(os => os.Service)
|
||||
.HasForeignKey(os => os.ServiceId);
|
||||
});
|
||||
|
||||
modelBuilder.Entity<OrderService>(entity =>
|
||||
{
|
||||
entity.HasKey(os => new { os.OrderId, os.ServiceId });
|
||||
entity.ToTable("order_services");
|
||||
|
||||
entity.Property(os => os.OrderId).HasColumnName("order_id");
|
||||
entity.Property(os => os.ServiceId).HasColumnName("service_id");
|
||||
entity.Property(os => os.RentTime).HasColumnName("rent_time");
|
||||
|
||||
entity.HasOne(os => os.Order)
|
||||
.WithMany(o => o.OrderServices)
|
||||
.HasForeignKey(os => os.OrderId)
|
||||
.HasConstraintName("order_services_order_id_fkey");
|
||||
|
||||
entity.HasOne(os => os.Service)
|
||||
.WithMany(s => s.OrderServices)
|
||||
.HasForeignKey(os => os.ServiceId)
|
||||
.HasConstraintName("order_services_service_id_fkey");
|
||||
});
|
||||
|
||||
OnModelCreatingPartial(modelBuilder);
|
||||
}
|
||||
|
||||
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
|
||||
}
|
||||
}
|
@ -20,24 +20,52 @@ public partial class Order : Window
|
||||
|
||||
private void LoadOrderData()
|
||||
{
|
||||
|
||||
var client = _db.Clients.FirstOrDefault(c => c.ClientId == _order.ClientId);
|
||||
|
||||
OrderNumber.Text = _order.OrderId.ToString();
|
||||
ClientName.Text = client?.Fio ?? "Не указан";
|
||||
ClientName.Text = client?.Fio ?? "Не указан";
|
||||
OrderDate.Text = $"{_order.StartDate} {_order.Time}";
|
||||
TotalCost.Text = _order.Services.Sum(s => s.CostPerHour ?? 0).ToString("C");
|
||||
StatusText.Text = _order.Status ?? "active";
|
||||
|
||||
// Парсим информацию об услугах из OrderCode
|
||||
var servicesInfo = ParseServicesInfo(_order);
|
||||
TotalCost.Text = servicesInfo.totalCost.ToString("C");
|
||||
StatusText.Text = _order.Status ?? "Новая";
|
||||
}
|
||||
|
||||
private (decimal totalCost, string servicesText) ParseServicesInfo(Models.Order order)
|
||||
{
|
||||
decimal total = 0;
|
||||
string info = "";
|
||||
|
||||
if (!string.IsNullOrEmpty(order.OrderCode))
|
||||
{
|
||||
var parts = order.OrderCode.Split(';');
|
||||
foreach (var part in parts)
|
||||
{
|
||||
if (string.IsNullOrEmpty(part)) continue;
|
||||
|
||||
var serviceParts = part.Split(':');
|
||||
if (serviceParts.Length == 2 &&
|
||||
int.TryParse(serviceParts[0], out var serviceId) &&
|
||||
int.TryParse(serviceParts[1], out var rentTime))
|
||||
{
|
||||
var service = _db.Services.Find(serviceId);
|
||||
if (service != null)
|
||||
{
|
||||
var cost = (service.CostPerHour ?? 0) * rentTime;
|
||||
total += cost;
|
||||
info += $"{service.ServiceName} - {rentTime} ч ({cost:C})\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return (total, info);
|
||||
}
|
||||
|
||||
private void PrintBarcode_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (_order.RentTime == null)
|
||||
{
|
||||
_order.RentTime = 1;
|
||||
}
|
||||
|
||||
new BarcodeWindow(_order.OrderId, _order.RentTime.Value).Show();
|
||||
new BarcodeWindow(_order.OrderId, _order.RentTime ?? 1).Show();
|
||||
Close();
|
||||
}
|
||||
|
||||
|
@ -3,64 +3,91 @@
|
||||
x:Class="demo_hard.SallerWindow"
|
||||
x:CompileBindings="False"
|
||||
Title="Оформление заказа"
|
||||
Width="600"
|
||||
Height="500">
|
||||
Width="650"
|
||||
Height="600">
|
||||
|
||||
<StackPanel Margin="15">
|
||||
|
||||
<StackPanel Margin="0,0,0,10">
|
||||
<TextBlock Text="Номер заказа:" FontWeight="Bold"/>
|
||||
<StackPanel Margin="20">
|
||||
<!-- Номер заказа -->
|
||||
<StackPanel Margin="0,0,0,15">
|
||||
<TextBlock Text="Номер заказа:" FontWeight="Bold" FontSize="14"/>
|
||||
<TextBox x:Name="OrderNumberBox"
|
||||
Watermark="Автоматически"
|
||||
IsReadOnly="True"/>
|
||||
Watermark="Будет сгенерирован автоматически"
|
||||
IsReadOnly="True"
|
||||
FontSize="14"
|
||||
Padding="5"/>
|
||||
</StackPanel>
|
||||
|
||||
|
||||
<StackPanel Margin="0,0,0,10">
|
||||
<TextBlock Text="Клиент:" FontWeight="Bold"/>
|
||||
<!-- Клиент -->
|
||||
<StackPanel Margin="0,0,0,15">
|
||||
<TextBlock Text="Клиент:" FontWeight="Bold" FontSize="14"/>
|
||||
<DockPanel LastChildFill="True">
|
||||
<Button Content="+"
|
||||
<Button Content="Добавить клиента"
|
||||
DockPanel.Dock="Right"
|
||||
Width="30"
|
||||
Margin="5,0,0,0"
|
||||
Click="AddClient_Click"/>
|
||||
<ComboBox x:Name="ClientAutoComplete"
|
||||
ItemsSource="{Binding Clients}"
|
||||
Margin="10,0,0,0"
|
||||
Padding="10,5"
|
||||
Click="AddClientButtonClick"/>
|
||||
<ComboBox ItemsSource="{Binding Clients}"
|
||||
SelectedItem="{Binding SelectedClient}"
|
||||
DisplayMemberBinding="{Binding Fio}"
|
||||
SelectedItem="{Binding SelectedClient}"/>
|
||||
FontSize="14"
|
||||
Padding="5"/>
|
||||
</DockPanel>
|
||||
</StackPanel>
|
||||
|
||||
|
||||
<StackPanel Margin="0,0,0,10">
|
||||
<TextBlock Text="Услуги:" FontWeight="Bold"/>
|
||||
<DockPanel LastChildFill="True">
|
||||
<Button Content="Добавить"
|
||||
<!-- Услуги -->
|
||||
<StackPanel Margin="0,0,0,15">
|
||||
<TextBlock Text="Услуги:" FontWeight="Bold" FontSize="14"/>
|
||||
<DockPanel LastChildFill="True" Margin="0,0,0,10">
|
||||
<Button Content="Добавить услугу"
|
||||
DockPanel.Dock="Right"
|
||||
Margin="5,0,0,0"
|
||||
Click="AddService_Click"/>
|
||||
<ComboBox x:Name="ServiceAutoComplete"
|
||||
ItemsSource="{Binding Services}"
|
||||
Margin="10,0,0,0"
|
||||
Padding="10,5"
|
||||
Click="AddServiceButtonClick"/>
|
||||
<ComboBox ItemsSource="{Binding Services}"
|
||||
SelectedItem="{Binding SelectedService}"
|
||||
DisplayMemberBinding="{Binding ServiceName}"
|
||||
SelectedItem="{Binding SelectedService}"/>
|
||||
FontSize="14"
|
||||
Padding="5"/>
|
||||
</DockPanel>
|
||||
|
||||
|
||||
<TextBlock Text="Выбранные услуги:" Margin="0,10,0,5"/>
|
||||
<ListBox x:Name="SelectedServicesList"
|
||||
Height="150"
|
||||
ItemsSource="{Binding SelectedServices}">
|
||||
<!-- Время аренды -->
|
||||
<StackPanel Margin="0,0,0,10" Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<TextBlock Text="Время аренды (минуты):"
|
||||
Margin="0,0,10,0"
|
||||
FontSize="14"/>
|
||||
<TextBox Text="{Binding SelectedRentTime}"
|
||||
Width="100"
|
||||
FontSize="14"
|
||||
Padding="5"/>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Список выбранных услуг -->
|
||||
<TextBlock Text="Выбранные услуги:"
|
||||
Margin="0,0,0,5"
|
||||
FontWeight="Bold"
|
||||
FontSize="14"/>
|
||||
<ListBox Height="180"
|
||||
ItemsSource="{Binding SelectedServices}"
|
||||
FontSize="14">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Grid ColumnDefinitions="*,100,Auto">
|
||||
<TextBlock Text="{Binding ServiceName}" VerticalAlignment="Center"/>
|
||||
<TextBlock Text="{Binding CostPerHour, StringFormat='{}{0:C}'}"
|
||||
<Grid ColumnDefinitions="*,100,80,80,Auto" Margin="0,5">
|
||||
<TextBlock Text="{Binding ServiceName}"
|
||||
VerticalAlignment="Center"/>
|
||||
<TextBlock Text="{Binding CostPerHour, StringFormat='{}{0:C} / час'}"
|
||||
Grid.Column="1"
|
||||
TextAlignment="Right"/>
|
||||
<Button Content="×"
|
||||
Grid.Column="2"
|
||||
Width="25"
|
||||
Click="RemoveService_Click"
|
||||
<TextBlock Text="{Binding RentTime, StringFormat='{}{0} мин'}"
|
||||
Grid.Column="2"
|
||||
TextAlignment="Center"/>
|
||||
<TextBlock Text="{Binding Status}"
|
||||
Grid.Column="3"
|
||||
TextAlignment="Center"/>
|
||||
<Button Content="Удалить"
|
||||
Grid.Column="4"
|
||||
Padding="10,2"
|
||||
Margin="10,0,0,0"
|
||||
Click="RemoveServiceButtonClick"
|
||||
CommandParameter="{Binding}"/>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
@ -68,18 +95,22 @@
|
||||
</ListBox>
|
||||
</StackPanel>
|
||||
|
||||
|
||||
<!-- Кнопка оформления -->
|
||||
<Button Content="Оформить заказ"
|
||||
HorizontalAlignment="Stretch"
|
||||
Margin="0,15,0,0"
|
||||
Padding="10"
|
||||
Click="CreateOrder_Click"
|
||||
Margin="0,20,0,0"
|
||||
Padding="15,5"
|
||||
Click="CreateOrderButtonClick"
|
||||
Background="#4CAF50"
|
||||
Foreground="White"/>
|
||||
Foreground="White"
|
||||
FontSize="14"
|
||||
FontWeight="Bold"/>
|
||||
|
||||
|
||||
<!-- Статус -->
|
||||
<TextBlock x:Name="StatusText"
|
||||
Foreground="Red"
|
||||
TextWrapping="Wrap"/>
|
||||
TextWrapping="Wrap"
|
||||
Margin="0,10,0,0"
|
||||
FontSize="14"/>
|
||||
</StackPanel>
|
||||
</Window>
|
@ -6,47 +6,72 @@ using Avalonia.Interactivity;
|
||||
using demo_hard.Models;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System.Threading.Tasks;
|
||||
using Avalonia.Input;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
using iTextSharp.text;
|
||||
using iTextSharp.text.pdf;
|
||||
using ReactiveUI;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace demo_hard;
|
||||
|
||||
public partial class SallerWindow : Window, INotifyPropertyChanged
|
||||
public partial class SallerWindow : Window, INotifyPropertyChanged, IReactiveObject, INotifyPropertyChanging
|
||||
{
|
||||
private readonly User15Context _db = new();
|
||||
public ObservableCollection<Client> Clients { get; } = new();
|
||||
public ObservableCollection<Service> Services { get; } = new();
|
||||
public ObservableCollection<Service> SelectedServices { get; } = new();
|
||||
private readonly User15Context _databaseContext = new User15Context();
|
||||
public ObservableCollection<Client> Clients { get; } = new ObservableCollection<Client>();
|
||||
public ObservableCollection<Service> Services { get; } = new ObservableCollection<Service>();
|
||||
public ObservableCollection<ServiceWithRentTime> SelectedServices { get; } = new ObservableCollection<ServiceWithRentTime>();
|
||||
|
||||
private Client? _selectedClient;
|
||||
public Client? SelectedClient
|
||||
public class ServiceWithRentTime : Service
|
||||
{
|
||||
get => _selectedClient;
|
||||
set
|
||||
{
|
||||
_selectedClient = value;
|
||||
OnPropertyChanged(nameof(SelectedClient));
|
||||
}
|
||||
public int RentTime { get; set; } = 30;
|
||||
public string Status { get; set; } = "Новая";
|
||||
}
|
||||
|
||||
private Service? _selectedService;
|
||||
public Service? SelectedService
|
||||
private Client _selectedClient;
|
||||
public Client SelectedClient
|
||||
{
|
||||
get => _selectedService;
|
||||
set
|
||||
{
|
||||
_selectedService = value;
|
||||
OnPropertyChanged(nameof(SelectedService));
|
||||
}
|
||||
get { return _selectedClient; }
|
||||
set { this.RaiseAndSetIfChanged(ref _selectedClient, value); }
|
||||
}
|
||||
|
||||
public event PropertyChangedEventHandler? PropertyChanged;
|
||||
private Service _selectedService;
|
||||
public Service SelectedService
|
||||
{
|
||||
get { return _selectedService; }
|
||||
set { this.RaiseAndSetIfChanged(ref _selectedService, value); }
|
||||
}
|
||||
|
||||
private int _selectedRentTime = 30;
|
||||
public int SelectedRentTime
|
||||
{
|
||||
get { return _selectedRentTime; }
|
||||
set { this.RaiseAndSetIfChanged(ref _selectedRentTime, value); }
|
||||
}
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
public event PropertyChangingEventHandler PropertyChanging;
|
||||
|
||||
void IReactiveObject.RaisePropertyChanged(PropertyChangedEventArgs eventArgs)
|
||||
{
|
||||
PropertyChanged?.Invoke(this, eventArgs);
|
||||
}
|
||||
|
||||
void IReactiveObject.RaisePropertyChanging(PropertyChangingEventArgs eventArgs)
|
||||
{
|
||||
PropertyChanging?.Invoke(this, eventArgs);
|
||||
}
|
||||
|
||||
protected virtual void OnPropertyChanged(string propertyName)
|
||||
{
|
||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
|
||||
protected virtual void OnPropertyChanging(string propertyName)
|
||||
{
|
||||
PropertyChanging?.Invoke(this, new PropertyChangingEventArgs(propertyName));
|
||||
}
|
||||
|
||||
public SallerWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
@ -59,52 +84,63 @@ public partial class SallerWindow : Window, INotifyPropertyChanged
|
||||
{
|
||||
try
|
||||
{
|
||||
await _db.Clients.LoadAsync();
|
||||
await _db.Services.LoadAsync();
|
||||
await _databaseContext.Clients.LoadAsync();
|
||||
await _databaseContext.Services.LoadAsync();
|
||||
|
||||
Clients.Clear();
|
||||
Services.Clear();
|
||||
|
||||
foreach (var client in _db.Clients.Local.ToList())
|
||||
foreach (Client client in _databaseContext.Clients.Local.ToList())
|
||||
{
|
||||
Clients.Add(client);
|
||||
}
|
||||
|
||||
foreach (var service in _db.Services.Local.ToList())
|
||||
foreach (Service service in _databaseContext.Services.Local.ToList())
|
||||
{
|
||||
Services.Add(service);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception exception)
|
||||
{
|
||||
StatusText.Text = $"Ошибка загрузки данных: {ex.Message}";
|
||||
StatusText.Text = $"Ошибка загрузки данных: {exception.Message}";
|
||||
}
|
||||
}
|
||||
|
||||
private async void AddClient_Click(object sender, RoutedEventArgs e)
|
||||
private async void AddClientButtonClick(object sender, RoutedEventArgs routedEventArgs)
|
||||
{
|
||||
var dialog = new AddClient();
|
||||
var newClient = await dialog.ShowDialog<Client?>(this);
|
||||
AddClient dialogWindow = new AddClient();
|
||||
Client newClient = await dialogWindow.ShowDialog<Client>(this);
|
||||
|
||||
if (newClient != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
_db.Clients.Add(newClient);
|
||||
await _db.SaveChangesAsync();
|
||||
_databaseContext.Clients.Add(newClient);
|
||||
await _databaseContext.SaveChangesAsync();
|
||||
Clients.Add(newClient);
|
||||
SelectedClient = newClient;
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception exception)
|
||||
{
|
||||
StatusText.Text = $"Ошибка добавления клиента: {ex.Message}";
|
||||
StatusText.Text = $"Ошибка добавления клиента: {exception.Message}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void AddService_Click(object sender, RoutedEventArgs e)
|
||||
private void AddServiceButtonClick(object sender, RoutedEventArgs routedEventArgs)
|
||||
{
|
||||
if (SelectedService != null)
|
||||
{
|
||||
if (!SelectedServices.Contains(SelectedService))
|
||||
if (!SelectedServices.Any(service => service.ServiceId == SelectedService.ServiceId))
|
||||
{
|
||||
SelectedServices.Add(SelectedService);
|
||||
SelectedServices.Add(new ServiceWithRentTime
|
||||
{
|
||||
ServiceId = SelectedService.ServiceId,
|
||||
ServiceName = SelectedService.ServiceName,
|
||||
CostPerHour = SelectedService.CostPerHour,
|
||||
RentTime = SelectedRentTime,
|
||||
Status = "Новая"
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -117,25 +153,23 @@ public partial class SallerWindow : Window, INotifyPropertyChanged
|
||||
}
|
||||
}
|
||||
|
||||
private void RemoveService_Click(object sender, RoutedEventArgs e)
|
||||
private void RemoveServiceButtonClick(object sender, RoutedEventArgs routedEventArgs)
|
||||
{
|
||||
if (sender is Button button && button.CommandParameter is Service service)
|
||||
if (sender is Button button && button.CommandParameter is ServiceWithRentTime service)
|
||||
{
|
||||
SelectedServices.Remove(service);
|
||||
}
|
||||
}
|
||||
|
||||
private async void CreateOrder_Click(object sender, RoutedEventArgs e)
|
||||
private async void CreateOrderButtonClick(object sender, RoutedEventArgs routedEventArgs)
|
||||
{
|
||||
|
||||
if (SelectedClient == null)
|
||||
{
|
||||
StatusText.Text = "Выберите клиента";
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (!SelectedServices.Any())
|
||||
if (SelectedServices.Count == 0)
|
||||
{
|
||||
StatusText.Text = "Добавьте хотя бы одну услугу";
|
||||
return;
|
||||
@ -143,40 +177,117 @@ public partial class SallerWindow : Window, INotifyPropertyChanged
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
var order = new Models.Order()
|
||||
string orderNumber = $"{new Random().Next(10000000, 99999999)}/{DateTime.Now:dd.MM.yyyy}";
|
||||
Models.Order newOrder = new Models.Order()
|
||||
{
|
||||
ClientId = SelectedClient.ClientId,
|
||||
Time = TimeOnly.FromDateTime(DateTime.Now),
|
||||
StartDate = DateOnly.FromDateTime(DateTime.Now),
|
||||
Status = "active",
|
||||
Services = SelectedServices.ToList(),
|
||||
RentTime = 1
|
||||
Status = "Новая",
|
||||
RentTime = SelectedServices.Max(service => service.RentTime),
|
||||
OrderCode = orderNumber
|
||||
};
|
||||
|
||||
|
||||
_db.Orders.Add(order);
|
||||
await _db.SaveChangesAsync();
|
||||
_databaseContext.Orders.Add(newOrder);
|
||||
await _databaseContext.SaveChangesAsync();
|
||||
|
||||
|
||||
order.OrderCode = GenerateBarcode(order.OrderId, order.RentTime ?? 1);
|
||||
await _db.SaveChangesAsync();
|
||||
foreach (ServiceWithRentTime service in SelectedServices)
|
||||
{
|
||||
_databaseContext.OrderServices.Add(new OrderService
|
||||
{
|
||||
OrderId = newOrder.OrderId,
|
||||
ServiceId = service.ServiceId,
|
||||
RentTime = service.RentTime
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
new BarcodeWindow(order.OrderId, order.RentTime ?? 1).Show();
|
||||
|
||||
|
||||
await _databaseContext.SaveChangesAsync();
|
||||
GenerateOrderPdfDocument(newOrder);
|
||||
new BarcodeWindow(newOrder.OrderId, newOrder.RentTime ?? 30).Show();
|
||||
Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception exception)
|
||||
{
|
||||
StatusText.Text = $"Ошибка создания заказа: {ex.Message}";
|
||||
StatusText.Text = $"Ошибка создания заказа: {exception.Message}";
|
||||
}
|
||||
}
|
||||
|
||||
private string GenerateBarcode(int orderId, int rentTime)
|
||||
private void GenerateOrderPdfDocument(Models.Order order)
|
||||
{
|
||||
var rnd = new Random();
|
||||
return $"{orderId}{DateTime.Now:ddMMyyHHmm}{rentTime}{rnd.Next(100000, 999999)}";
|
||||
string documentsDirectoryPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
|
||||
string pdfFilePath = Path.Combine(documentsDirectoryPath, $"Заказ_{order.OrderCode.Replace("/", "_")}.pdf");
|
||||
|
||||
using (Document document = new Document(PageSize.A4, 40, 40, 40, 40))
|
||||
{
|
||||
PdfWriter pdfWriter = PdfWriter.GetInstance(document, new FileStream(pdfFilePath, FileMode.Create));
|
||||
document.Open();
|
||||
|
||||
Font titleFont = FontFactory.GetFont("Arial", 16, Font.BOLD);
|
||||
Font headerFont = FontFactory.GetFont("Arial", 12, Font.BOLD);
|
||||
Font normalFont = FontFactory.GetFont("Arial", 12);
|
||||
|
||||
Paragraph titleParagraph = new Paragraph("Квитанция об оплате", titleFont);
|
||||
titleParagraph.Alignment = Element.ALIGN_CENTER;
|
||||
titleParagraph.SpacingAfter = 20;
|
||||
document.Add(titleParagraph);
|
||||
|
||||
PdfPTable orderInfoTable = new PdfPTable(2);
|
||||
orderInfoTable.WidthPercentage = 100;
|
||||
orderInfoTable.SetWidths(new float[] { 30, 70 });
|
||||
|
||||
AddPdfTableRow(orderInfoTable, "Номер заказа:", order.OrderCode, headerFont, normalFont);
|
||||
AddPdfTableRow(orderInfoTable, "Дата и время:", $"{order.StartDate:dd.MM.yyyy} {order.Time:hh\\:mm}", headerFont, normalFont);
|
||||
AddPdfTableRow(orderInfoTable, "Клиент:", SelectedClient?.Fio ?? "Не указан", headerFont, normalFont);
|
||||
AddPdfTableRow(orderInfoTable, "Статус:", order.Status, headerFont, normalFont);
|
||||
|
||||
document.Add(orderInfoTable);
|
||||
document.Add(new Paragraph(" "));
|
||||
|
||||
Paragraph servicesTitleParagraph = new Paragraph("Оказанные услуги:", headerFont);
|
||||
servicesTitleParagraph.SpacingAfter = 10;
|
||||
document.Add(servicesTitleParagraph);
|
||||
|
||||
PdfPTable servicesTable = new PdfPTable(3);
|
||||
servicesTable.WidthPercentage = 100;
|
||||
servicesTable.SetWidths(new float[] { 60, 20, 20 });
|
||||
|
||||
servicesTable.AddCell(new Phrase("Наименование услуги", headerFont));
|
||||
servicesTable.AddCell(new Phrase("Стоимость/час", headerFont));
|
||||
servicesTable.AddCell(new Phrase("Время (мин)", headerFont));
|
||||
|
||||
foreach (ServiceWithRentTime service in SelectedServices)
|
||||
{
|
||||
servicesTable.AddCell(new Phrase(service.ServiceName, normalFont));
|
||||
servicesTable.AddCell(new Phrase($"{service.CostPerHour:N2} ₽", normalFont));
|
||||
servicesTable.AddCell(new Phrase(service.RentTime.ToString(), normalFont));
|
||||
}
|
||||
|
||||
document.Add(servicesTable);
|
||||
document.Add(new Paragraph(" "));
|
||||
|
||||
decimal totalAmount = SelectedServices.Sum(service => (service.CostPerHour ?? 0) * (service.RentTime / 60m));
|
||||
Paragraph totalParagraph = new Paragraph($"Итого к оплате: {totalAmount:N2} ₽", headerFont);
|
||||
totalParagraph.Alignment = Element.ALIGN_RIGHT;
|
||||
document.Add(totalParagraph);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
Process.Start(new ProcessStartInfo
|
||||
{
|
||||
FileName = pdfFilePath,
|
||||
UseShellExecute = true
|
||||
});
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
StatusText.Text = $"Ошибка при открытии PDF: {exception.Message}";
|
||||
}
|
||||
}
|
||||
|
||||
private void AddPdfTableRow(PdfPTable table, string label, string value, Font labelFont, Font valueFont)
|
||||
{
|
||||
table.AddCell(new Phrase(label, labelFont));
|
||||
table.AddCell(new Phrase(value, valueFont));
|
||||
}
|
||||
}
|
BIN
demo_hard/bin/Debug/net9.0/DynamicData.dll
Normal file
BIN
demo_hard/bin/Debug/net9.0/DynamicData.dll
Normal file
Binary file not shown.
BIN
demo_hard/bin/Debug/net9.0/ReactiveUI.dll
Normal file
BIN
demo_hard/bin/Debug/net9.0/ReactiveUI.dll
Normal file
Binary file not shown.
BIN
demo_hard/bin/Debug/net9.0/Splat.dll
Normal file
BIN
demo_hard/bin/Debug/net9.0/Splat.dll
Normal file
Binary file not shown.
BIN
demo_hard/bin/Debug/net9.0/System.Reactive.dll
Normal file
BIN
demo_hard/bin/Debug/net9.0/System.Reactive.dll
Normal file
Binary file not shown.
@ -17,6 +17,7 @@
|
||||
"Microsoft.EntityFrameworkCore": "8.0.10",
|
||||
"Microsoft.EntityFrameworkCore.Design": "8.0.10",
|
||||
"Npgsql.EntityFrameworkCore.PostgreSQL": "8.0.10",
|
||||
"ReactiveUI": "20.2.45",
|
||||
"iTextSharp": "5.5.13.4",
|
||||
"xunit": "2.9.3"
|
||||
},
|
||||
@ -282,6 +283,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"DynamicData/9.1.2": {
|
||||
"dependencies": {
|
||||
"System.Reactive": "6.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/DynamicData.dll": {
|
||||
"assemblyVersion": "9.1.0.0",
|
||||
"fileVersion": "9.1.2.12211"
|
||||
}
|
||||
}
|
||||
},
|
||||
"HarfBuzzSharp/7.3.0.2": {
|
||||
"dependencies": {
|
||||
"HarfBuzzSharp.NativeAssets.Win32": "7.3.0.2",
|
||||
@ -812,6 +824,20 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ReactiveUI/20.2.45": {
|
||||
"dependencies": {
|
||||
"DynamicData": "9.1.2",
|
||||
"Splat": "15.3.1",
|
||||
"System.ComponentModel.Annotations": "5.0.0",
|
||||
"System.Text.Json": "9.0.2"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/ReactiveUI.dll": {
|
||||
"assemblyVersion": "20.2.0.0",
|
||||
"fileVersion": "20.2.45.45496"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SkiaSharp/2.88.8": {
|
||||
"dependencies": {
|
||||
"SkiaSharp.NativeAssets.Win32": "2.88.8",
|
||||
@ -880,6 +906,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Splat/15.3.1": {
|
||||
"runtime": {
|
||||
"lib/net9.0/Splat.dll": {
|
||||
"assemblyVersion": "15.3.0.0",
|
||||
"fileVersion": "15.3.1.27942"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.CodeDom/4.4.0": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/System.CodeDom.dll": {
|
||||
@ -893,6 +927,7 @@
|
||||
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
|
||||
}
|
||||
},
|
||||
"System.ComponentModel.Annotations/5.0.0": {},
|
||||
"System.Composition/6.0.0": {
|
||||
"dependencies": {
|
||||
"System.Composition.AttributedModel": "6.0.0",
|
||||
@ -954,6 +989,14 @@
|
||||
}
|
||||
},
|
||||
"System.IO.Pipelines/8.0.0": {},
|
||||
"System.Reactive/6.0.1": {
|
||||
"runtime": {
|
||||
"lib/net6.0/System.Reactive.dll": {
|
||||
"assemblyVersion": "6.0.0.0",
|
||||
"fileVersion": "6.0.1.7420"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Reflection.Metadata/6.0.1": {
|
||||
"dependencies": {
|
||||
"System.Collections.Immutable": "6.0.0"
|
||||
@ -965,6 +1008,7 @@
|
||||
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
|
||||
}
|
||||
},
|
||||
"System.Text.Json/9.0.2": {},
|
||||
"System.Threading.Channels/6.0.0": {},
|
||||
"Tmds.DBus.Protocol/0.20.0": {
|
||||
"dependencies": {
|
||||
@ -1163,6 +1207,13 @@
|
||||
"path": "dialoghost.avalonia/0.8.1",
|
||||
"hashPath": "dialoghost.avalonia.0.8.1.nupkg.sha512"
|
||||
},
|
||||
"DynamicData/9.1.2": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-KMomv26cewTHkHENVKEajxM4EaFJw6fwXGsrdlncq5cdJGnWBHYMTRMuu7y2vbbyb8/VdxkYHlDwZa8mupDrww==",
|
||||
"path": "dynamicdata/9.1.2",
|
||||
"hashPath": "dynamicdata.9.1.2.nupkg.sha512"
|
||||
},
|
||||
"HarfBuzzSharp/7.3.0.2": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
@ -1394,6 +1445,13 @@
|
||||
"path": "npgsql.entityframeworkcore.postgresql/8.0.10",
|
||||
"hashPath": "npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512"
|
||||
},
|
||||
"ReactiveUI/20.2.45": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-1wyThKtWNi0naldJBYcKcZWib2POzS+fVX28apHGTAl+Gd5iLzoDSlItvC22Yiy+hc8TB7KnkW47kofuXmBhmg==",
|
||||
"path": "reactiveui/20.2.45",
|
||||
"hashPath": "reactiveui.20.2.45.nupkg.sha512"
|
||||
},
|
||||
"SkiaSharp/2.88.8": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
@ -1429,6 +1487,13 @@
|
||||
"path": "skiasharp.nativeassets.win32/2.88.8",
|
||||
"hashPath": "skiasharp.nativeassets.win32.2.88.8.nupkg.sha512"
|
||||
},
|
||||
"Splat/15.3.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-zyu98Mwp8gTi3MlS6EGtvcacmw5W/qA4/h/DVeZ28A1dR6mcM628ujHck6LK5SM6LwroR5LzBonWgeFtwo2Afg==",
|
||||
"path": "splat/15.3.1",
|
||||
"hashPath": "splat.15.3.1.nupkg.sha512"
|
||||
},
|
||||
"System.CodeDom/4.4.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
@ -1443,6 +1508,13 @@
|
||||
"path": "system.collections.immutable/6.0.0",
|
||||
"hashPath": "system.collections.immutable.6.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.ComponentModel.Annotations/5.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg==",
|
||||
"path": "system.componentmodel.annotations/5.0.0",
|
||||
"hashPath": "system.componentmodel.annotations.5.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Composition/6.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
@ -1492,6 +1564,13 @@
|
||||
"path": "system.io.pipelines/8.0.0",
|
||||
"hashPath": "system.io.pipelines.8.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Reactive/6.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-rHaWtKDwCi9qJ3ObKo8LHPMuuwv33YbmQi7TcUK1C264V3MFnOr5Im7QgCTdLniztP3GJyeiSg5x8NqYJFqRmg==",
|
||||
"path": "system.reactive/6.0.1",
|
||||
"hashPath": "system.reactive.6.0.1.nupkg.sha512"
|
||||
},
|
||||
"System.Reflection.Metadata/6.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
@ -1513,6 +1592,13 @@
|
||||
"path": "system.text.encoding.codepages/6.0.0",
|
||||
"hashPath": "system.text.encoding.codepages.6.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Text.Json/9.0.2": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-4TY2Yokh5Xp8XHFhsY9y84yokS7B0rhkaZCXuRiKppIiKwPVH4lVSFD9EEFzRpXdBM5ZeZXD43tc2vB6njEwwQ==",
|
||||
"path": "system.text.json/9.0.2",
|
||||
"hashPath": "system.text.json.9.0.2.nupkg.sha512"
|
||||
},
|
||||
"System.Threading.Channels/6.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -26,6 +26,7 @@
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.10" />
|
||||
<PackageReference Include="ReactiveUI" Version="20.2.45" />
|
||||
<PackageReference Include="xunit" Version="2.9.3" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
@ -1 +1 @@
|
||||
d54093b2d5e283d443ce525f04f5738e8a7e63f037e2a7880fd2507b446d2e06
|
||||
a1a313d6927bda03862de3792a717da1cb8b66b60fd436676cb5d57a9b1e725b
|
||||
|
Binary file not shown.
Binary file not shown.
@ -24,6 +24,7 @@ C:\Users\IVAN\.nuget\packages\avalonia.win32\11.2.1\lib\net8.0\Avalonia.Win32.dl
|
||||
C:\Users\IVAN\.nuget\packages\avalonia.x11\11.2.1\lib\net8.0\Avalonia.X11.dll
|
||||
C:\Users\IVAN\.nuget\packages\bouncycastle.cryptography\2.4.0\lib\net6.0\BouncyCastle.Cryptography.dll
|
||||
C:\Users\IVAN\.nuget\packages\dialoghost.avalonia\0.8.1\lib\netstandard2.0\DialogHost.Avalonia.dll
|
||||
C:\Users\IVAN\.nuget\packages\dynamicdata\9.1.2\lib\net8.0\DynamicData.dll
|
||||
C:\Users\IVAN\.nuget\packages\harfbuzzsharp\7.3.0.2\lib\net6.0\HarfBuzzSharp.dll
|
||||
C:\Users\IVAN\.nuget\packages\itextsharp\5.5.13.4\lib\net461\itextsharp.dll
|
||||
C:\Users\IVAN\.nuget\packages\microcom.runtime\0.11.0\lib\net5.0\MicroCom.Runtime.dll
|
||||
@ -49,7 +50,9 @@ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.2\ref\net9.0\mscorli
|
||||
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.2\ref\net9.0\netstandard.dll
|
||||
C:\Users\IVAN\.nuget\packages\npgsql\8.0.5\lib\net8.0\Npgsql.dll
|
||||
C:\Users\IVAN\.nuget\packages\npgsql.entityframeworkcore.postgresql\8.0.10\lib\net8.0\Npgsql.EntityFrameworkCore.PostgreSQL.dll
|
||||
C:\Users\IVAN\.nuget\packages\reactiveui\20.2.45\lib\net9.0\ReactiveUI.dll
|
||||
C:\Users\IVAN\.nuget\packages\skiasharp\2.88.8\lib\net6.0\SkiaSharp.dll
|
||||
C:\Users\IVAN\.nuget\packages\splat\15.3.1\lib\net9.0\Splat.dll
|
||||
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.2\ref\net9.0\System.AppContext.dll
|
||||
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.2\ref\net9.0\System.Buffers.dll
|
||||
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.2\ref\net9.0\System.Collections.Concurrent.dll
|
||||
@ -131,6 +134,7 @@ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.2\ref\net9.0\System.
|
||||
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.2\ref\net9.0\System.Numerics.dll
|
||||
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.2\ref\net9.0\System.Numerics.Vectors.dll
|
||||
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.2\ref\net9.0\System.ObjectModel.dll
|
||||
C:\Users\IVAN\.nuget\packages\system.reactive\6.0.1\lib\net6.0\System.Reactive.dll
|
||||
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.2\ref\net9.0\System.Reflection.DispatchProxy.dll
|
||||
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.2\ref\net9.0\System.Reflection.dll
|
||||
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.2\ref\net9.0\System.Reflection.Emit.dll
|
||||
|
Binary file not shown.
Binary file not shown.
@ -13,7 +13,7 @@ using System.Reflection;
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("demo_hard")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+474cfc34bd9df61d876e8fbb651d8638dc01db9a")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+156a9ed6bb53a76169eafb82e995c01d89a56817")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("demo_hard")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("demo_hard")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
@ -1 +1 @@
|
||||
268d25cb93c11a76a997999df85f8bd0b552c42c71329977e2c2727a2fc7b623
|
||||
812ad4f6e1371c563aeffa5b4bf990438482d87b5551f2810d09b0e13e09da16
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1 +1 @@
|
||||
8f2b4c029a45ededea9ba19ced05047d31bbfb527a26f175d7285e3085cc6e48
|
||||
0bbac13ec88c23487d9db86ba7974427e4532f7c392dba1fdea7e096e6b18f90
|
||||
|
@ -304,3 +304,7 @@ C:\Users\IVAN\RiderProjects\demo_hard\demo_hard\bin\Debug\net9.0\BouncyCastle.Cr
|
||||
C:\Users\IVAN\RiderProjects\demo_hard\demo_hard\bin\Debug\net9.0\itextsharp.dll
|
||||
C:\Users\IVAN\RiderProjects\demo_hard\demo_hard\bin\Debug\net9.0\DialogHost.Avalonia.dll
|
||||
C:\Users\IVAN\RiderProjects\demo_hard\demo_hard\bin\Debug\net9.0\MsBox.Avalonia.dll
|
||||
C:\Users\IVAN\RiderProjects\demo_hard\demo_hard\bin\Debug\net9.0\DynamicData.dll
|
||||
C:\Users\IVAN\RiderProjects\demo_hard\demo_hard\bin\Debug\net9.0\ReactiveUI.dll
|
||||
C:\Users\IVAN\RiderProjects\demo_hard\demo_hard\bin\Debug\net9.0\Splat.dll
|
||||
C:\Users\IVAN\RiderProjects\demo_hard\demo_hard\bin\Debug\net9.0\System.Reactive.dll
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -89,6 +89,10 @@
|
||||
"target": "Package",
|
||||
"version": "[8.0.10, )"
|
||||
},
|
||||
"ReactiveUI": {
|
||||
"target": "Package",
|
||||
"version": "[20.2.45, )"
|
||||
},
|
||||
"iTextSharp": {
|
||||
"target": "Package",
|
||||
"version": "[5.5.13.4, )"
|
||||
|
@ -2,6 +2,7 @@
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)xunit.core\2.9.3\build\xunit.core.targets" Condition="Exists('$(NuGetPackageRoot)xunit.core\2.9.3\build\xunit.core.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)system.text.json\9.0.2\buildTransitive\net8.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.2\buildTransitive\net8.0\System.Text.Json.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)skiasharp.nativeassets.webassembly\2.88.8\buildTransitive\netstandard1.0\SkiaSharp.NativeAssets.WebAssembly.targets" Condition="Exists('$(NuGetPackageRoot)skiasharp.nativeassets.webassembly\2.88.8\buildTransitive\netstandard1.0\SkiaSharp.NativeAssets.WebAssembly.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Options.targets')" />
|
||||
|
@ -366,6 +366,22 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"DynamicData/9.1.2": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"System.Reactive": "6.0.1"
|
||||
},
|
||||
"compile": {
|
||||
"lib/net8.0/DynamicData.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/DynamicData.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
}
|
||||
},
|
||||
"HarfBuzzSharp/7.3.0.2": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
@ -1089,6 +1105,25 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ReactiveUI/20.2.45": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"DynamicData": "9.1.2",
|
||||
"Splat": "15.3.1",
|
||||
"System.ComponentModel.Annotations": "5.0.0",
|
||||
"System.Text.Json": "9.0.2"
|
||||
},
|
||||
"compile": {
|
||||
"lib/net9.0/ReactiveUI.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/ReactiveUI.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SkiaSharp/2.88.8": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
@ -1187,6 +1222,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Splat/15.3.1": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
"lib/net9.0/Splat.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Splat.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.CodeDom/4.4.0": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
@ -1217,6 +1265,19 @@
|
||||
"buildTransitive/netcoreapp3.1/_._": {}
|
||||
}
|
||||
},
|
||||
"System.ComponentModel.Annotations/5.0.0": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
"ref/netstandard2.1/System.ComponentModel.Annotations.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.1/System.ComponentModel.Annotations.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Composition/6.0.0": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
@ -1337,6 +1398,22 @@
|
||||
"buildTransitive/net6.0/_._": {}
|
||||
}
|
||||
},
|
||||
"System.Reactive/6.0.1": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
"lib/net6.0/System.Reactive.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net6.0/System.Reactive.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"build": {
|
||||
"buildTransitive/net6.0/_._": {}
|
||||
}
|
||||
},
|
||||
"System.Reflection.Metadata/6.0.1": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
@ -1397,6 +1474,22 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Text.Json/9.0.2": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
"lib/net9.0/System.Text.Json.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/System.Text.Json.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"build": {
|
||||
"buildTransitive/net8.0/System.Text.Json.targets": {}
|
||||
}
|
||||
},
|
||||
"System.Threading.Channels/6.0.0": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
@ -1984,6 +2077,30 @@
|
||||
"lib/netstandard2.0/DialogHost.Avalonia.xml"
|
||||
]
|
||||
},
|
||||
"DynamicData/9.1.2": {
|
||||
"sha512": "KMomv26cewTHkHENVKEajxM4EaFJw6fwXGsrdlncq5cdJGnWBHYMTRMuu7y2vbbyb8/VdxkYHlDwZa8mupDrww==",
|
||||
"type": "package",
|
||||
"path": "dynamicdata/9.1.2",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"LICENSE/LICENSE",
|
||||
"README.md",
|
||||
"dynamicdata.9.1.2.nupkg.sha512",
|
||||
"dynamicdata.nuspec",
|
||||
"lib/net462/DynamicData.dll",
|
||||
"lib/net462/DynamicData.xml",
|
||||
"lib/net6.0/DynamicData.dll",
|
||||
"lib/net6.0/DynamicData.xml",
|
||||
"lib/net7.0/DynamicData.dll",
|
||||
"lib/net7.0/DynamicData.xml",
|
||||
"lib/net8.0/DynamicData.dll",
|
||||
"lib/net8.0/DynamicData.xml",
|
||||
"lib/netstandard2.0/DynamicData.dll",
|
||||
"lib/netstandard2.0/DynamicData.xml",
|
||||
"logo.png"
|
||||
]
|
||||
},
|
||||
"HarfBuzzSharp/7.3.0.2": {
|
||||
"sha512": "0tCd6HyCmNsX/DniCp2b00fo0xPbdNwKOs9BxxyT8oOOuMlWjcSFwzONKyeckCKVBFEsbSmsAHPDTqxoSDwZMg==",
|
||||
"type": "package",
|
||||
@ -3164,6 +3281,58 @@
|
||||
"postgresql.png"
|
||||
]
|
||||
},
|
||||
"ReactiveUI/20.2.45": {
|
||||
"sha512": "1wyThKtWNi0naldJBYcKcZWib2POzS+fVX28apHGTAl+Gd5iLzoDSlItvC22Yiy+hc8TB7KnkW47kofuXmBhmg==",
|
||||
"type": "package",
|
||||
"path": "reactiveui/20.2.45",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"LICENSE/LICENSE",
|
||||
"README.md",
|
||||
"lib/net462/ReactiveUI.dll",
|
||||
"lib/net462/ReactiveUI.xml",
|
||||
"lib/net472/ReactiveUI.dll",
|
||||
"lib/net472/ReactiveUI.xml",
|
||||
"lib/net8.0-android34.0/ReactiveUI.dll",
|
||||
"lib/net8.0-android34.0/ReactiveUI.xml",
|
||||
"lib/net8.0-ios18.0/ReactiveUI.dll",
|
||||
"lib/net8.0-ios18.0/ReactiveUI.xml",
|
||||
"lib/net8.0-maccatalyst18.0/ReactiveUI.dll",
|
||||
"lib/net8.0-maccatalyst18.0/ReactiveUI.xml",
|
||||
"lib/net8.0-macos15.0/ReactiveUI.dll",
|
||||
"lib/net8.0-macos15.0/ReactiveUI.xml",
|
||||
"lib/net8.0-tvos18.0/ReactiveUI.dll",
|
||||
"lib/net8.0-tvos18.0/ReactiveUI.xml",
|
||||
"lib/net8.0-windows10.0.17763/ReactiveUI.dll",
|
||||
"lib/net8.0-windows10.0.17763/ReactiveUI.xml",
|
||||
"lib/net8.0-windows10.0.19041/ReactiveUI.dll",
|
||||
"lib/net8.0-windows10.0.19041/ReactiveUI.xml",
|
||||
"lib/net8.0/ReactiveUI.dll",
|
||||
"lib/net8.0/ReactiveUI.xml",
|
||||
"lib/net9.0-android35.0/ReactiveUI.dll",
|
||||
"lib/net9.0-android35.0/ReactiveUI.xml",
|
||||
"lib/net9.0-ios18.0/ReactiveUI.dll",
|
||||
"lib/net9.0-ios18.0/ReactiveUI.xml",
|
||||
"lib/net9.0-maccatalyst18.0/ReactiveUI.dll",
|
||||
"lib/net9.0-maccatalyst18.0/ReactiveUI.xml",
|
||||
"lib/net9.0-macos15.0/ReactiveUI.dll",
|
||||
"lib/net9.0-macos15.0/ReactiveUI.xml",
|
||||
"lib/net9.0-tvos18.0/ReactiveUI.dll",
|
||||
"lib/net9.0-tvos18.0/ReactiveUI.xml",
|
||||
"lib/net9.0-windows10.0.17763/ReactiveUI.dll",
|
||||
"lib/net9.0-windows10.0.17763/ReactiveUI.xml",
|
||||
"lib/net9.0-windows10.0.19041/ReactiveUI.dll",
|
||||
"lib/net9.0-windows10.0.19041/ReactiveUI.xml",
|
||||
"lib/net9.0/ReactiveUI.dll",
|
||||
"lib/net9.0/ReactiveUI.xml",
|
||||
"lib/netstandard2.0/ReactiveUI.dll",
|
||||
"lib/netstandard2.0/ReactiveUI.xml",
|
||||
"logo.png",
|
||||
"reactiveui.20.2.45.nupkg.sha512",
|
||||
"reactiveui.nuspec"
|
||||
]
|
||||
},
|
||||
"SkiaSharp/2.88.8": {
|
||||
"sha512": "bRkp3uKp5ZI8gXYQT57uKwil1uobb2p8c69n7v5evlB/2JNcMAXVcw9DZAP5Ig3WSvgzGm2YSn27UVeOi05NlA==",
|
||||
"type": "package",
|
||||
@ -3338,6 +3507,26 @@
|
||||
"skiasharp.nativeassets.win32.nuspec"
|
||||
]
|
||||
},
|
||||
"Splat/15.3.1": {
|
||||
"sha512": "zyu98Mwp8gTi3MlS6EGtvcacmw5W/qA4/h/DVeZ28A1dR6mcM628ujHck6LK5SM6LwroR5LzBonWgeFtwo2Afg==",
|
||||
"type": "package",
|
||||
"path": "splat/15.3.1",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"LICENSE/LICENSE",
|
||||
"README.md",
|
||||
"lib/net8.0/Splat.dll",
|
||||
"lib/net8.0/Splat.xml",
|
||||
"lib/net9.0/Splat.dll",
|
||||
"lib/net9.0/Splat.xml",
|
||||
"lib/netstandard2.0/Splat.dll",
|
||||
"lib/netstandard2.0/Splat.xml",
|
||||
"logo.png",
|
||||
"splat.15.3.1.nupkg.sha512",
|
||||
"splat.nuspec"
|
||||
]
|
||||
},
|
||||
"System.CodeDom/4.4.0": {
|
||||
"sha512": "2sCCb7doXEwtYAbqzbF/8UAeDRMNmPaQbU2q50Psg1J9KzumyVVCgKQY8s53WIPTufNT0DpSe9QRvVjOzfDWBA==",
|
||||
"type": "package",
|
||||
@ -3382,6 +3571,96 @@
|
||||
"useSharedDesignerContext.txt"
|
||||
]
|
||||
},
|
||||
"System.ComponentModel.Annotations/5.0.0": {
|
||||
"sha512": "dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg==",
|
||||
"type": "package",
|
||||
"path": "system.componentmodel.annotations/5.0.0",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"Icon.png",
|
||||
"LICENSE.TXT",
|
||||
"THIRD-PARTY-NOTICES.TXT",
|
||||
"lib/MonoAndroid10/_._",
|
||||
"lib/MonoTouch10/_._",
|
||||
"lib/net45/_._",
|
||||
"lib/net461/System.ComponentModel.Annotations.dll",
|
||||
"lib/netcore50/System.ComponentModel.Annotations.dll",
|
||||
"lib/netstandard1.4/System.ComponentModel.Annotations.dll",
|
||||
"lib/netstandard2.0/System.ComponentModel.Annotations.dll",
|
||||
"lib/netstandard2.1/System.ComponentModel.Annotations.dll",
|
||||
"lib/netstandard2.1/System.ComponentModel.Annotations.xml",
|
||||
"lib/portable-net45+win8/_._",
|
||||
"lib/win8/_._",
|
||||
"lib/xamarinios10/_._",
|
||||
"lib/xamarinmac20/_._",
|
||||
"lib/xamarintvos10/_._",
|
||||
"lib/xamarinwatchos10/_._",
|
||||
"ref/MonoAndroid10/_._",
|
||||
"ref/MonoTouch10/_._",
|
||||
"ref/net45/_._",
|
||||
"ref/net461/System.ComponentModel.Annotations.dll",
|
||||
"ref/net461/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/System.ComponentModel.Annotations.dll",
|
||||
"ref/netcore50/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/de/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/es/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/fr/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/it/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/ja/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/ko/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/ru/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/zh-hans/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/zh-hant/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/System.ComponentModel.Annotations.dll",
|
||||
"ref/netstandard1.1/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/de/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/es/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/fr/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/it/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/ja/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/ko/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/ru/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/zh-hans/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/zh-hant/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/System.ComponentModel.Annotations.dll",
|
||||
"ref/netstandard1.3/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/de/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/es/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/fr/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/it/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/ja/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/ko/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/ru/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/zh-hans/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/zh-hant/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/System.ComponentModel.Annotations.dll",
|
||||
"ref/netstandard1.4/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/de/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/es/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/fr/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/it/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/ja/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/ko/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/ru/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/zh-hans/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/zh-hant/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard2.0/System.ComponentModel.Annotations.dll",
|
||||
"ref/netstandard2.0/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard2.1/System.ComponentModel.Annotations.dll",
|
||||
"ref/netstandard2.1/System.ComponentModel.Annotations.xml",
|
||||
"ref/portable-net45+win8/_._",
|
||||
"ref/win8/_._",
|
||||
"ref/xamarinios10/_._",
|
||||
"ref/xamarinmac20/_._",
|
||||
"ref/xamarintvos10/_._",
|
||||
"ref/xamarinwatchos10/_._",
|
||||
"system.componentmodel.annotations.5.0.0.nupkg.sha512",
|
||||
"system.componentmodel.annotations.nuspec",
|
||||
"useSharedDesignerContext.txt",
|
||||
"version.txt"
|
||||
]
|
||||
},
|
||||
"System.Composition/6.0.0": {
|
||||
"sha512": "d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==",
|
||||
"type": "package",
|
||||
@ -3543,6 +3822,34 @@
|
||||
"useSharedDesignerContext.txt"
|
||||
]
|
||||
},
|
||||
"System.Reactive/6.0.1": {
|
||||
"sha512": "rHaWtKDwCi9qJ3ObKo8LHPMuuwv33YbmQi7TcUK1C264V3MFnOr5Im7QgCTdLniztP3GJyeiSg5x8NqYJFqRmg==",
|
||||
"type": "package",
|
||||
"path": "system.reactive/6.0.1",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"build/net6.0-windows10.0.19041/_._",
|
||||
"build/net6.0/_._",
|
||||
"buildTransitive/net6.0-windows10.0.19041/_._",
|
||||
"buildTransitive/net6.0/_._",
|
||||
"icon.png",
|
||||
"lib/net472/System.Reactive.dll",
|
||||
"lib/net472/System.Reactive.xml",
|
||||
"lib/net6.0-windows10.0.19041/System.Reactive.dll",
|
||||
"lib/net6.0-windows10.0.19041/System.Reactive.xml",
|
||||
"lib/net6.0/System.Reactive.dll",
|
||||
"lib/net6.0/System.Reactive.xml",
|
||||
"lib/netstandard2.0/System.Reactive.dll",
|
||||
"lib/netstandard2.0/System.Reactive.xml",
|
||||
"lib/uap10.0.18362/System.Reactive.dll",
|
||||
"lib/uap10.0.18362/System.Reactive.pri",
|
||||
"lib/uap10.0.18362/System.Reactive.xml",
|
||||
"readme.md",
|
||||
"system.reactive.6.0.1.nupkg.sha512",
|
||||
"system.reactive.nuspec"
|
||||
]
|
||||
},
|
||||
"System.Reflection.Metadata/6.0.1": {
|
||||
"sha512": "III/lNMSn0ZRBuM9m5Cgbiho5j81u0FAEagFX5ta2DKbljZ3T0IpD8j+BIiHQPeKqJppWS9bGEp6JnKnWKze0g==",
|
||||
"type": "package",
|
||||
@ -3630,6 +3937,77 @@
|
||||
"useSharedDesignerContext.txt"
|
||||
]
|
||||
},
|
||||
"System.Text.Json/9.0.2": {
|
||||
"sha512": "4TY2Yokh5Xp8XHFhsY9y84yokS7B0rhkaZCXuRiKppIiKwPVH4lVSFD9EEFzRpXdBM5ZeZXD43tc2vB6njEwwQ==",
|
||||
"type": "package",
|
||||
"path": "system.text.json/9.0.2",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"Icon.png",
|
||||
"LICENSE.TXT",
|
||||
"PACKAGE.md",
|
||||
"THIRD-PARTY-NOTICES.TXT",
|
||||
"analyzers/dotnet/roslyn3.11/cs/System.Text.Json.SourceGeneration.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/cs/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/de/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/es/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/fr/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/it/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/ja/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/ko/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/pl/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/ru/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/tr/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/System.Text.Json.SourceGeneration.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/cs/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/de/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/es/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/fr/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/it/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/ja/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/ko/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/pl/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/ru/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/tr/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/System.Text.Json.SourceGeneration.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/cs/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/de/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/es/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/fr/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/it/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/ja/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/ko/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/pl/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/ru/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/tr/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"buildTransitive/net461/System.Text.Json.targets",
|
||||
"buildTransitive/net462/System.Text.Json.targets",
|
||||
"buildTransitive/net8.0/System.Text.Json.targets",
|
||||
"buildTransitive/netcoreapp2.0/System.Text.Json.targets",
|
||||
"buildTransitive/netstandard2.0/System.Text.Json.targets",
|
||||
"lib/net462/System.Text.Json.dll",
|
||||
"lib/net462/System.Text.Json.xml",
|
||||
"lib/net8.0/System.Text.Json.dll",
|
||||
"lib/net8.0/System.Text.Json.xml",
|
||||
"lib/net9.0/System.Text.Json.dll",
|
||||
"lib/net9.0/System.Text.Json.xml",
|
||||
"lib/netstandard2.0/System.Text.Json.dll",
|
||||
"lib/netstandard2.0/System.Text.Json.xml",
|
||||
"system.text.json.9.0.2.nupkg.sha512",
|
||||
"system.text.json.nuspec",
|
||||
"useSharedDesignerContext.txt"
|
||||
]
|
||||
},
|
||||
"System.Threading.Channels/6.0.0": {
|
||||
"sha512": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==",
|
||||
"type": "package",
|
||||
@ -3803,6 +4181,7 @@
|
||||
"Microsoft.EntityFrameworkCore >= 8.0.10",
|
||||
"Microsoft.EntityFrameworkCore.Design >= 8.0.10",
|
||||
"Npgsql.EntityFrameworkCore.PostgreSQL >= 8.0.10",
|
||||
"ReactiveUI >= 20.2.45",
|
||||
"iTextSharp >= 5.5.13.4",
|
||||
"xunit >= 2.9.3"
|
||||
]
|
||||
@ -3896,6 +4275,10 @@
|
||||
"target": "Package",
|
||||
"version": "[8.0.10, )"
|
||||
},
|
||||
"ReactiveUI": {
|
||||
"target": "Package",
|
||||
"version": "[20.2.45, )"
|
||||
},
|
||||
"iTextSharp": {
|
||||
"target": "Package",
|
||||
"version": "[5.5.13.4, )"
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "V6Z95Xb+ZCs=",
|
||||
"dgSpecHash": "rJUIf6Qta8g=",
|
||||
"success": true,
|
||||
"projectFilePath": "C:\\Users\\IVAN\\RiderProjects\\demo_hard\\demo_hard\\demo_hard.csproj",
|
||||
"expectedPackageFiles": [
|
||||
@ -22,6 +22,7 @@
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\avalonia.x11\\11.2.1\\avalonia.x11.11.2.1.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\bouncycastle.cryptography\\2.4.0\\bouncycastle.cryptography.2.4.0.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\dialoghost.avalonia\\0.8.1\\dialoghost.avalonia.0.8.1.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\dynamicdata\\9.1.2\\dynamicdata.9.1.2.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\harfbuzzsharp\\7.3.0.2\\harfbuzzsharp.7.3.0.2.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\harfbuzzsharp.nativeassets.linux\\7.3.0.2\\harfbuzzsharp.nativeassets.linux.7.3.0.2.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\harfbuzzsharp.nativeassets.macos\\7.3.0.2\\harfbuzzsharp.nativeassets.macos.7.3.0.2.nupkg.sha512",
|
||||
@ -55,13 +56,16 @@
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\mono.texttemplating\\2.2.1\\mono.texttemplating.2.2.1.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\npgsql\\8.0.5\\npgsql.8.0.5.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\npgsql.entityframeworkcore.postgresql\\8.0.10\\npgsql.entityframeworkcore.postgresql.8.0.10.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\reactiveui\\20.2.45\\reactiveui.20.2.45.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\skiasharp\\2.88.8\\skiasharp.2.88.8.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\skiasharp.nativeassets.linux\\2.88.8\\skiasharp.nativeassets.linux.2.88.8.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\skiasharp.nativeassets.macos\\2.88.8\\skiasharp.nativeassets.macos.2.88.8.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\skiasharp.nativeassets.webassembly\\2.88.8\\skiasharp.nativeassets.webassembly.2.88.8.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\skiasharp.nativeassets.win32\\2.88.8\\skiasharp.nativeassets.win32.2.88.8.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\splat\\15.3.1\\splat.15.3.1.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\system.codedom\\4.4.0\\system.codedom.4.4.0.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\system.collections.immutable\\6.0.0\\system.collections.immutable.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\system.componentmodel.annotations\\5.0.0\\system.componentmodel.annotations.5.0.0.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\system.composition\\6.0.0\\system.composition.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\system.composition.attributedmodel\\6.0.0\\system.composition.attributedmodel.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\system.composition.convention\\6.0.0\\system.composition.convention.6.0.0.nupkg.sha512",
|
||||
@ -69,9 +73,11 @@
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\system.composition.runtime\\6.0.0\\system.composition.runtime.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\system.composition.typedparts\\6.0.0\\system.composition.typedparts.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\system.io.pipelines\\8.0.0\\system.io.pipelines.8.0.0.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\system.reactive\\6.0.1\\system.reactive.6.0.1.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\system.reflection.metadata\\6.0.1\\system.reflection.metadata.6.0.1.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.0.0\\system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\system.text.encoding.codepages\\6.0.0\\system.text.encoding.codepages.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\system.text.json\\9.0.2\\system.text.json.9.0.2.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\system.threading.channels\\6.0.0\\system.threading.channels.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\tmds.dbus.protocol\\0.20.0\\tmds.dbus.protocol.0.20.0.nupkg.sha512",
|
||||
"C:\\Users\\IVAN\\.nuget\\packages\\xunit\\2.9.3\\xunit.2.9.3.nupkg.sha512",
|
||||
|
@ -1 +1 @@
|
||||
"restore":{"projectUniqueName":"C:\\Users\\IVAN\\RiderProjects\\demo_hard\\demo_hard\\demo_hard.csproj","projectName":"demo_hard","projectPath":"C:\\Users\\IVAN\\RiderProjects\\demo_hard\\demo_hard\\demo_hard.csproj","outputPath":"C:\\Users\\IVAN\\RiderProjects\\demo_hard\\demo_hard\\obj\\","projectStyle":"PackageReference","fallbackFolders":["C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"],"originalTargetFrameworks":["net9.0"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"C:\\Program Files\\dotnet\\library-packs":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net9.0":{"targetAlias":"net9.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"},"SdkAnalysisLevel":"9.0.200"}"frameworks":{"net9.0":{"targetAlias":"net9.0","dependencies":{"Avalonia":{"target":"Package","version":"[11.2.1, )"},"Avalonia.Desktop":{"target":"Package","version":"[11.2.1, )"},"Avalonia.Diagnostics":{"target":"Package","version":"[11.2.1, )"},"Avalonia.Fonts.Inter":{"target":"Package","version":"[11.2.1, )"},"Avalonia.Themes.Fluent":{"target":"Package","version":"[11.2.1, )"},"MessageBox.Avalonia":{"target":"Package","version":"[3.2.0, )"},"Microsoft.EntityFrameworkCore":{"target":"Package","version":"[8.0.10, )"},"Microsoft.EntityFrameworkCore.Design":{"include":"Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive","suppressParent":"All","target":"Package","version":"[8.0.10, )"},"Npgsql.EntityFrameworkCore.PostgreSQL":{"target":"Package","version":"[8.0.10, )"},"iTextSharp":{"target":"Package","version":"[5.5.13.4, )"},"xunit":{"target":"Package","version":"[2.9.3, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\9.0.200/PortableRuntimeIdentifierGraph.json"}}
|
||||
"restore":{"projectUniqueName":"C:\\Users\\IVAN\\RiderProjects\\demo_hard\\demo_hard\\demo_hard.csproj","projectName":"demo_hard","projectPath":"C:\\Users\\IVAN\\RiderProjects\\demo_hard\\demo_hard\\demo_hard.csproj","outputPath":"C:\\Users\\IVAN\\RiderProjects\\demo_hard\\demo_hard\\obj\\","projectStyle":"PackageReference","fallbackFolders":["C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"],"originalTargetFrameworks":["net9.0"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"C:\\Program Files\\dotnet\\library-packs":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net9.0":{"targetAlias":"net9.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"},"SdkAnalysisLevel":"9.0.200"}"frameworks":{"net9.0":{"targetAlias":"net9.0","dependencies":{"Avalonia":{"target":"Package","version":"[11.2.1, )"},"Avalonia.Desktop":{"target":"Package","version":"[11.2.1, )"},"Avalonia.Diagnostics":{"target":"Package","version":"[11.2.1, )"},"Avalonia.Fonts.Inter":{"target":"Package","version":"[11.2.1, )"},"Avalonia.Themes.Fluent":{"target":"Package","version":"[11.2.1, )"},"MessageBox.Avalonia":{"target":"Package","version":"[3.2.0, )"},"Microsoft.EntityFrameworkCore":{"target":"Package","version":"[8.0.10, )"},"Microsoft.EntityFrameworkCore.Design":{"include":"Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive","suppressParent":"All","target":"Package","version":"[8.0.10, )"},"Npgsql.EntityFrameworkCore.PostgreSQL":{"target":"Package","version":"[8.0.10, )"},"ReactiveUI":{"target":"Package","version":"[20.2.45, )"},"iTextSharp":{"target":"Package","version":"[5.5.13.4, )"},"xunit":{"target":"Package","version":"[2.9.3, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\9.0.200/PortableRuntimeIdentifierGraph.json"}}
|
@ -1 +1 @@
|
||||
17452715769561693
|
||||
17452753038636502
|
@ -1 +1 @@
|
||||
17452715769561693
|
||||
17452753050856052
|
Loading…
Reference in New Issue
Block a user