This commit is contained in:
kagbie3nn@mail.ru 2024-05-31 13:43:04 +04:00
parent 936f33d59a
commit 8337e7d847
9 changed files with 127 additions and 47 deletions

View File

@ -40,19 +40,20 @@ namespace ZooView
services.AddTransient<IEmployeeStorage, EmployeeStorage>();
services.AddTransient<IPreserveStorage, PreserveStorage>();
services.AddTransient<IRouteStorage, RouteStorage>();
services.AddTransient<ICostStorage, CostStorage>();
services.AddTransient<IClientLogic, ClientLogic>();
services.AddTransient<IClientLogic, ClientLogic>();
services.AddTransient<IClientLogic, ClientLogic>();
services.AddTransient<IPreserveLogic, PreserveLogic>();
services.AddTransient<IEmployeeLogic, EmployeeLogic>();
services.AddTransient<IRouteLogic, RouteLogic>();
services.AddTransient<ICostLogic, CostLogic>();
services.AddTransient<FormRoutes>();
services.AddTransient<FormRoutes>();
services.AddTransient<FormRoute>();
services.AddTransient<FormRoutePreserves>();
services.AddTransient<FormPreserves>();

View File

@ -11,7 +11,7 @@ using ZooDataBaseImplement.Models;
namespace ZooDataBaseImplement.Implements
{
internal class CostStorage : ICostStorage
public class CostStorage : ICostStorage
{
public List<CostViewModel> GetFullList()
{

View File

@ -28,12 +28,12 @@ namespace ZooDataBaseImplement.Implements
return new();
}
using var context = new ZooDatabase();
return context.Preserves
.Where(x => x.PreserveName.Contains(model.PreserveName))
.Select(x => x.GetViewModel)
.ToList();
}
public PreserveViewModel? GetElement(PreserveSearchModel model)
return context.Preserves.Where(x => x.EmployeeId == model.EmployeeId)
.Where(x => String.IsNullOrEmpty(model.PreserveName) || x.PreserveName.Contains(model.PreserveName))
.Select(x => x.GetViewModel)
.ToList();
}
public PreserveViewModel? GetElement(PreserveSearchModel model)
{
if (string.IsNullOrEmpty(model.PreserveName) && !model.Id.HasValue)
{

View File

@ -12,8 +12,8 @@ using ZooDataBaseImplement;
namespace ZooDataBaseImplement.Migrations
{
[DbContext(typeof(ZooDatabase))]
[Migration("20240530171709_Initialcreate")]
partial class Initialcreate
[Migration("20240531085434_initialcreate")]
partial class initialcreate
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@ -50,6 +50,26 @@ namespace ZooDataBaseImplement.Migrations
b.ToTable("Clients");
});
modelBuilder.Entity("ZooDataBaseImplement.Models.Cost", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("CostName")
.IsRequired()
.HasColumnType("text");
b.Property<double>("CostPrice")
.HasColumnType("double precision");
b.HasKey("Id");
b.ToTable("Costs");
});
modelBuilder.Entity("ZooDataBaseImplement.Models.Employee", b =>
{
b.Property<int>("Id")
@ -83,7 +103,7 @@ namespace ZooDataBaseImplement.Migrations
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<int?>("EmployeeId")
b.Property<int>("EmployeeId")
.HasColumnType("integer");
b.Property<string>("PreserveName")
@ -111,6 +131,9 @@ namespace ZooDataBaseImplement.Migrations
b.Property<int>("ClientId")
.HasColumnType("integer");
b.Property<int?>("CostID")
.HasColumnType("integer");
b.Property<DateTime>("DateFinish")
.HasColumnType("timestamp with time zone");
@ -131,6 +154,8 @@ namespace ZooDataBaseImplement.Migrations
b.HasIndex("ClientId");
b.HasIndex("CostID");
b.ToTable("Routes");
});
@ -161,7 +186,9 @@ namespace ZooDataBaseImplement.Migrations
{
b.HasOne("ZooDataBaseImplement.Models.Employee", null)
.WithMany("Preserves")
.HasForeignKey("EmployeeId");
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("ZooDataBaseImplement.Models.Route", b =>
@ -172,6 +199,10 @@ namespace ZooDataBaseImplement.Migrations
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("ZooDataBaseImplement.Models.Cost", null)
.WithMany("Routes")
.HasForeignKey("CostID");
b.Navigation("Client");
});
@ -199,6 +230,11 @@ namespace ZooDataBaseImplement.Migrations
b.Navigation("Routes");
});
modelBuilder.Entity("ZooDataBaseImplement.Models.Cost", b =>
{
b.Navigation("Routes");
});
modelBuilder.Entity("ZooDataBaseImplement.Models.Employee", b =>
{
b.Navigation("Preserves");

View File

@ -7,7 +7,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
namespace ZooDataBaseImplement.Migrations
{
/// <inheritdoc />
public partial class Initialcreate : Migration
public partial class initialcreate : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
@ -27,6 +27,20 @@ namespace ZooDataBaseImplement.Migrations
table.PrimaryKey("PK_Clients", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Costs",
columns: table => new
{
Id = table.Column<int>(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
CostName = table.Column<string>(type: "text", nullable: false),
CostPrice = table.Column<double>(type: "double precision", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Costs", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Employees",
columns: table => new
@ -53,7 +67,8 @@ namespace ZooDataBaseImplement.Migrations
RoutePrice = table.Column<double>(type: "double precision", nullable: false),
Status = table.Column<int>(type: "integer", nullable: false),
DateStart = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
DateFinish = table.Column<DateTime>(type: "timestamp with time zone", nullable: false)
DateFinish = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
CostID = table.Column<int>(type: "integer", nullable: true)
},
constraints: table =>
{
@ -64,6 +79,11 @@ namespace ZooDataBaseImplement.Migrations
principalTable: "Clients",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Routes_Costs_CostID",
column: x => x.CostID,
principalTable: "Costs",
principalColumn: "Id");
});
migrationBuilder.CreateTable(
@ -72,9 +92,9 @@ namespace ZooDataBaseImplement.Migrations
{
Id = table.Column<int>(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
EmployeeId = table.Column<int>(type: "integer", nullable: false),
PreserveName = table.Column<string>(type: "text", nullable: false),
PreservePrice = table.Column<double>(type: "double precision", nullable: false),
EmployeeId = table.Column<int>(type: "integer", nullable: true)
PreservePrice = table.Column<double>(type: "double precision", nullable: false)
},
constraints: table =>
{
@ -83,7 +103,8 @@ namespace ZooDataBaseImplement.Migrations
name: "FK_Preserves_Employees_EmployeeId",
column: x => x.EmployeeId,
principalTable: "Employees",
principalColumn: "Id");
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
@ -131,6 +152,11 @@ namespace ZooDataBaseImplement.Migrations
name: "IX_Routes_ClientId",
table: "Routes",
column: "ClientId");
migrationBuilder.CreateIndex(
name: "IX_Routes_CostID",
table: "Routes",
column: "CostID");
}
/// <inheritdoc />
@ -150,6 +176,9 @@ namespace ZooDataBaseImplement.Migrations
migrationBuilder.DropTable(
name: "Clients");
migrationBuilder.DropTable(
name: "Costs");
}
}
}

View File

@ -47,6 +47,26 @@ namespace ZooDataBaseImplement.Migrations
b.ToTable("Clients");
});
modelBuilder.Entity("ZooDataBaseImplement.Models.Cost", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("CostName")
.IsRequired()
.HasColumnType("text");
b.Property<double>("CostPrice")
.HasColumnType("double precision");
b.HasKey("Id");
b.ToTable("Costs");
});
modelBuilder.Entity("ZooDataBaseImplement.Models.Employee", b =>
{
b.Property<int>("Id")
@ -80,7 +100,7 @@ namespace ZooDataBaseImplement.Migrations
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<int?>("EmployeeId")
b.Property<int>("EmployeeId")
.HasColumnType("integer");
b.Property<string>("PreserveName")
@ -108,6 +128,9 @@ namespace ZooDataBaseImplement.Migrations
b.Property<int>("ClientId")
.HasColumnType("integer");
b.Property<int?>("CostID")
.HasColumnType("integer");
b.Property<DateTime>("DateFinish")
.HasColumnType("timestamp with time zone");
@ -128,6 +151,8 @@ namespace ZooDataBaseImplement.Migrations
b.HasIndex("ClientId");
b.HasIndex("CostID");
b.ToTable("Routes");
});
@ -158,7 +183,9 @@ namespace ZooDataBaseImplement.Migrations
{
b.HasOne("ZooDataBaseImplement.Models.Employee", null)
.WithMany("Preserves")
.HasForeignKey("EmployeeId");
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("ZooDataBaseImplement.Models.Route", b =>
@ -169,6 +196,10 @@ namespace ZooDataBaseImplement.Migrations
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("ZooDataBaseImplement.Models.Cost", null)
.WithMany("Routes")
.HasForeignKey("CostID");
b.Navigation("Client");
});
@ -196,6 +227,11 @@ namespace ZooDataBaseImplement.Migrations
b.Navigation("Routes");
});
modelBuilder.Entity("ZooDataBaseImplement.Models.Cost", b =>
{
b.Navigation("Routes");
});
modelBuilder.Entity("ZooDataBaseImplement.Models.Employee", b =>
{
b.Navigation("Preserves");

View File

@ -127,7 +127,7 @@ namespace ZooShowEmployeeApp.Controllers
{
return Redirect("~/Home/Enter");
}
return View(APIEmployee.GetRequest<List<PreserveViewModel>>($"api/Preserve/getPreserves?clientid={APIEmployee.Employee.Id}"));
return View(APIEmployee.GetRequest<List<PreserveViewModel>>($"api/Preserve/getPreserves?Employeeid={APIEmployee.Employee.Id}"));
}
public IActionResult CreatePreserve()
{
@ -148,7 +148,7 @@ namespace ZooShowEmployeeApp.Controllers
{
throw new Exception("Ошибка в введённых данных");
}
APIEmployee.PostRequest("api/Preserve/createPreserve", new PreserveBindingModel
APIEmployee.PostRequest("api/Preserve/CreatePreserve", new PreserveBindingModel
{
PreserveName = name,
PreservePrice = price,
@ -162,7 +162,7 @@ namespace ZooShowEmployeeApp.Controllers
{
return Redirect("~/Home/Enter");
}
ViewBag.Preserves = APIEmployee.GetRequest<List<PreserveViewModel>>($"api/Preserve/getPreserves?clientid={APIEmployee.Employee.Id}");
ViewBag.Preserves = APIEmployee.GetRequest<List<PreserveViewModel>>($"api/Preserve/getPreserves?Employeeid={APIEmployee.Employee.Id}");
return View();
}
[HttpPost]

View File

@ -25,25 +25,3 @@ btn-primary" />
</div>
</div>
</form>
<script>
$('#preserve').on('change', function () {
check();
});
$('#PreservePrice').on('change', function () {
check();
});
function check() {
var price = $('#PreservePrice').val();
var preserve = $('#preserve').val();
if (price && product) {
$.ajax({
method: "POST",
url: "/Home/Calc",
data: { price: price, preserve: preserve },
success: function (result) {
$("#sum").val(result);
}
});
};
}
</script>

View File

@ -11,7 +11,7 @@
<div class="col-4">маршрут:</div>
<div class="col-8">
<select name="preserve" class="form-control" multiple size="5" id="preserve">
@foreach (var service in ViewBag.Preserve)
@foreach (var service in ViewBag.Preserves)
{
<option value="@service.Id">@service.PreserveName</option>
}