fix client app p.2

This commit is contained in:
Zakharov_Rostislav 2024-05-13 14:36:30 +04:00
parent c41f0e635f
commit e4536d16c0
13 changed files with 40 additions and 26 deletions

View File

@ -82,7 +82,7 @@ namespace CarShowroomBusinessLogic.BusinessLogic
return; return;
if (string.IsNullOrEmpty(model.Name)) if (string.IsNullOrEmpty(model.Name))
throw new InvalidOperationException(); throw new InvalidOperationException();
if (model.Cost < 0) if (model.Price < 0)
throw new InvalidOperationException(); throw new InvalidOperationException();
var element = _serviceStorage.GetElement(new ServiceSearch var element = _serviceStorage.GetElement(new ServiceSearch
{ {

View File

@ -10,6 +10,6 @@ namespace CarShowroomContracts.AbstractModels
public interface IService : IId public interface IService : IId
{ {
string Name { get; } string Name { get; }
int Cost { get; } int Price { get; }
} }
} }

View File

@ -11,12 +11,12 @@ namespace CarShowroomDataModels.Dtos
{ {
public int Id { get; set; } public int Id { get; set; }
public string Name { get; set; } public string Name { get; set; }
public int Cost { get; set; } public int Price { get; set; }
public ServiceDto(IService model) public ServiceDto(IService model)
{ {
Id = model.Id; Id = model.Id;
Name = model.Name; Name = model.Name;
Cost = model.Cost; Price = model.Price;
} }
} }
} }

View File

@ -12,8 +12,6 @@ namespace CarShowroomDataModels.Views
{ {
[DisplayName("Номер машины")] [DisplayName("Номер машины")]
public int Id { get; set; } public int Id { get; set; }
[DisplayName("Название машины")]
public string Name { get; set; } = string.Empty;
[DisplayName("Цвет")] [DisplayName("Цвет")]
public string Color { get; set; } public string Color { get; set; }
[DisplayName("Дата производства")] [DisplayName("Дата производства")]
@ -22,7 +20,7 @@ namespace CarShowroomDataModels.Views
[DisplayName("Модель")] [DisplayName("Модель")]
public string ModelName { get; set; } = string.Empty; public string ModelName { get; set; } = string.Empty;
[DisplayName("Цена")] [DisplayName("Цена")]
public int ModelPrice { get; set; } public int Price { get; set; }
[DisplayName("Марка")] [DisplayName("Марка")]
public string MakeName { get; set; } = string.Empty; public string MakeName { get; set; } = string.Empty;
[DisplayName("Продана")] [DisplayName("Продана")]

View File

@ -11,12 +11,12 @@ namespace CarShowroomDataModels.Views
{ {
public int Id { get; set; } public int Id { get; set; }
public string Name { get; set; } public string Name { get; set; }
public int Cost { get; set; } public int Price { get; set; }
public ServiceView(IService model) public ServiceView(IService model)
{ {
Id = model.Id; Id = model.Id;
Name = model.Name; Name = model.Name;
Cost = model.Cost; Price = model.Price;
} }
public ServiceView() { } public ServiceView() { }
} }

View File

@ -34,7 +34,7 @@ namespace CarShowroomDatabaseStorage
modelBuilder.Entity<Employee>().Property(e => e.Password).HasDefaultValue("empty_string"); modelBuilder.Entity<Employee>().Property(e => e.Password).HasDefaultValue("empty_string");
modelBuilder.Entity<Car>().Property(c => c.Color).HasDefaultValue("empty_string"); modelBuilder.Entity<Car>().Property(c => c.Color).HasDefaultValue("empty_string");
modelBuilder.Entity<Car>().Property(c => c.IsSaled).HasDefaultValue(false); modelBuilder.Entity<Car>().Property(c => c.IsSaled).HasDefaultValue(false);
modelBuilder.Entity<Service>().Property(c => c.Cost).HasDefaultValue(-1); modelBuilder.Entity<Service>().Property(c => c.Price).HasDefaultValue(-1);
modelBuilder.Entity<Model>().Property(c => c.Price).HasDefaultValue(-1); modelBuilder.Entity<Model>().Property(c => c.Price).HasDefaultValue(-1);
modelBuilder.Entity<Sale>().Property(c => c.Cost).HasDefaultValue(-1); modelBuilder.Entity<Sale>().Property(c => c.Cost).HasDefaultValue(-1);
//on delete actions //on delete actions

View File

@ -61,10 +61,9 @@ namespace CarShowroomDatabaseStorage.Entities
public CarView GetView() public CarView GetView()
{ {
CarView car = new CarView(this); CarView car = new CarView(this);
car.ModelPrice = Model?.Price ?? 0; car.Price = Model?.Price ?? 0;
car.ModelName = Model?.Name ?? string.Empty; car.ModelName = Model?.Name ?? string.Empty;
car.MakeName = Model?.Make?.Name ?? string.Empty; car.MakeName = Model?.Make?.Name ?? string.Empty;
car.Name = car.Color + " " + car.MakeName + " " + car.ModelName;
return car; return car;
} }
} }

View File

@ -24,7 +24,7 @@ namespace CarShowroomDatabaseStorage.Entities
public string Name { get; private set; } = string.Empty; public string Name { get; private set; } = string.Empty;
[Required] [Required]
[Column("service_cost")] [Column("service_cost")]
public int Cost { get; private set; } public int Price { get; private set; }
public virtual List<SaleService> SaleServices { get; set; } = new(); public virtual List<SaleService> SaleServices { get; set; } = new();
private Service() { } private Service() { }
@ -33,7 +33,7 @@ namespace CarShowroomDatabaseStorage.Entities
{ {
Id = service.Id; Id = service.Id;
Name = service.Name; Name = service.Name;
Cost = service.Cost; Price = service.Price;
} }
public static Service? Create(IService service) public static Service? Create(IService service)
@ -48,7 +48,7 @@ namespace CarShowroomDatabaseStorage.Entities
if (service == null) if (service == null)
return; return;
Name = service.Name; Name = service.Name;
Cost = service.Cost; Price = service.Price;
} }
public ServiceView GetView() public ServiceView GetView()

View File

@ -3,6 +3,7 @@ using CarShowroomDatabaseStorage.Entities;
using CarShowroomDataModels.Dtos; using CarShowroomDataModels.Dtos;
using CarShowroomDataModels.SearchModel; using CarShowroomDataModels.SearchModel;
using CarShowroomDataModels.Views; using CarShowroomDataModels.Views;
using Microsoft.EntityFrameworkCore;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -17,6 +18,8 @@ namespace CarShowroomDatabaseStorage.Storages
{ {
using var context = new CarShowroomDatabase(); using var context = new CarShowroomDatabase();
return context.Cars return context.Cars
.Include(c => c.Model)
.ThenInclude(m => m.Make)
.Select(x => x.GetView()) .Select(x => x.GetView())
.ToList(); .ToList();
} }
@ -29,6 +32,8 @@ namespace CarShowroomDatabaseStorage.Storages
} }
using var context = new CarShowroomDatabase(); using var context = new CarShowroomDatabase();
return context.Cars return context.Cars
.Include(c => c.Model)
.ThenInclude(m => m.Make)
.Where(x => !model.Id.HasValue || x.Id == model.Id) .Where(x => !model.Id.HasValue || x.Id == model.Id)
.Select(x => x.GetView()) .Select(x => x.GetView())
.ToList(); .ToList();

View File

@ -75,8 +75,8 @@ namespace CarShowroomManagerApp.Controllers
return Redirect("~/Home/Enter"); return Redirect("~/Home/Enter");
} }
ViewBag.Cars = ApiClient.GetRequest<List<CarView>>("api/car/getcarlist"); ViewBag.Cars = ApiClient.GetRequest<List<CarView>>("api/car/getcarlist");
ViewBag.Clients = ApiClient.GetRequest<List<CarView>>("api/client/getclientlist"); ViewBag.Clients = ApiClient.GetRequest<List<ClientView>>("api/client/getclientlist");
ViewBag.Services = ApiClient.GetRequest<List<CarView>>("api/service/getservicelist"); ViewBag.Services = ApiClient.GetRequest<List<ServiceView>>("api/service/getservicelist");
return View(); return View();
} }
@ -132,7 +132,7 @@ namespace CarShowroomManagerApp.Controllers
{ {
return Redirect("~/Home/Enter"); return Redirect("~/Home/Enter");
} }
ViewBag.Shops = ApiClient.GetRequest<List<ClientView>>("api/client/getclientlist"); ViewBag.Clients = ApiClient.GetRequest<List<ClientView>>("api/client/getclientlist");
return View(); return View();
} }
@ -154,7 +154,7 @@ namespace CarShowroomManagerApp.Controllers
Name = name, Name = name,
PhoneNumber = phonenumber PhoneNumber = phonenumber
}); });
Response.Redirect("Index"); Response.Redirect("Clients");
} }
public IActionResult SaleDelete() public IActionResult SaleDelete()
@ -163,7 +163,7 @@ namespace CarShowroomManagerApp.Controllers
{ {
return Redirect("~/Home/Enter"); return Redirect("~/Home/Enter");
} }
ViewBag.Shops = ApiClient.GetRequest<List<SaleView>>("api/sale/getsalelist"); ViewBag.Sales = ApiClient.GetRequest<List<SaleView>>("api/sale/getsalelist");
return View(); return View();
} }

View File

@ -6,6 +6,13 @@
<h2 class="display-4">Редактирование данных клиента</h2> <h2 class="display-4">Редактирование данных клиента</h2>
</div> </div>
<form method="post"> <form method="post">
<div class="row">
<div class="col-4">Клиент:</div>
<div class="col-8">
<select name="client" id="client" class="form-control"
asp-items="@(new SelectList(@ViewBag.Clients, "Id", "Name"))"></select>
</div>
</div>
<div class="row"> <div class="row">
<div class="col-4">Номер телефона:</div> <div class="col-4">Номер телефона:</div>
<div class="col-8"><input type="text" name="phonenumber" /></div> <div class="col-8"><input type="text" name="phonenumber" /></div>
@ -17,7 +24,7 @@
<div class="row"> <div class="row">
<div class="col-8"></div> <div class="col-8"></div>
<div class="col-4"> <div class="col-4">
<input type="submit" value="C" <input type="submit" value="Cохранить данные"
class="btn btn-primary" /> class="btn btn-primary" />
</div> </div>
</div> </div>

View File

@ -5,12 +5,12 @@
<h2 class="display-4">Продажа</h2> <h2 class="display-4">Продажа</h2>
</div> </div>
<form method="post"> <form method="post">
<div class="row"> @* <div class="row">
<div class="col-4">Сумма:</div> <div class="col-4">Сумма:</div>
<div class="col-8"> <div class="col-8">
<input type="number" name="sum" id="sum" readonly/> <input type="number" name="sum" id="sum" readonly/>
</div> </div>
</div> </div> *@
<div class="row"> <div class="row">
<div class="col-4">Клиент:</div> <div class="col-4">Клиент:</div>
<div class="col-8"> <div class="col-8">
@ -24,7 +24,7 @@
<select name="cars" id="cars" class="form-control" multiple size="5"> <select name="cars" id="cars" class="form-control" multiple size="5">
@foreach (var car in ViewBag.Cars) @foreach (var car in ViewBag.Cars)
{ {
<option value="@car.Id">@car.Name</option> <option value="@car.Id">@car.Color @car.MakeName @car.ModelName, @car.Price рублей</option>
} }
</select> </select>
</div> </div>
@ -35,7 +35,7 @@
<select name="services" id="services" class="form-control" multiple size="5"> <select name="services" id="services" class="form-control" multiple size="5">
@foreach (var service in ViewBag.Services) @foreach (var service in ViewBag.Services)
{ {
<option value="@service.Id">@service.Name</option> <option value="@service.Id">@service.Name, @service.Price рублей</option>
} }
</select> </select>
</div> </div>

View File

@ -0,0 +1,5 @@
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": []
}