2023-04-22 19:42:51 +04:00
|
|
|
|
using Contracts.BindingModels;
|
|
|
|
|
using Contracts.ViewModels;
|
|
|
|
|
using DataModels.Models;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
2023-05-05 21:47:09 +04:00
|
|
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
2023-04-22 19:42:51 +04:00
|
|
|
|
|
|
|
|
|
namespace DataBase;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Таблица рейсов
|
|
|
|
|
/// </summary>
|
|
|
|
|
public partial class Voyage : IVoyage
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Айди рейса
|
|
|
|
|
/// </summary>
|
|
|
|
|
public int Id { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Машина для рейса
|
|
|
|
|
/// </summary>
|
|
|
|
|
public int? CarId { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Водитель для рейса
|
|
|
|
|
/// </summary>
|
|
|
|
|
public int? HumanId { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Компания, заказавшая рейс
|
|
|
|
|
/// </summary>
|
|
|
|
|
public int? CompanyId { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Маршрут рейса
|
|
|
|
|
/// </summary>
|
|
|
|
|
public int? RouteId { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Дата отправки
|
|
|
|
|
/// </summary>
|
|
|
|
|
public DateOnly? DateStart { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Дедлайн
|
|
|
|
|
/// </summary>
|
|
|
|
|
public DateOnly? DateEnd { get; set; }
|
|
|
|
|
|
|
|
|
|
public virtual Car? Car { get; set; }
|
|
|
|
|
|
|
|
|
|
public virtual Company? Company { get; set; }
|
|
|
|
|
|
|
|
|
|
public virtual Human? Human { get; set; }
|
|
|
|
|
|
|
|
|
|
public virtual Route? Route { get; set; }
|
2023-05-05 21:47:09 +04:00
|
|
|
|
[NotMapped]
|
|
|
|
|
public string? CarName { get; set; } = string.Empty;
|
|
|
|
|
[NotMapped]
|
|
|
|
|
public string? HumanName { get; set; } = string.Empty;
|
|
|
|
|
[NotMapped]
|
|
|
|
|
public string? CompanyName { get; set; } = string.Empty;
|
|
|
|
|
[NotMapped]
|
|
|
|
|
public string? RouteName { get; set; } = string.Empty;
|
|
|
|
|
[NotMapped]
|
|
|
|
|
public int? Km { get; set; }
|
2023-04-22 19:42:51 +04:00
|
|
|
|
public static Voyage Create(LogisticContext context, VoyageBM model)
|
|
|
|
|
{
|
|
|
|
|
return new Voyage()
|
|
|
|
|
{
|
|
|
|
|
Id = model.Id,
|
|
|
|
|
CarId=model.CarId,
|
|
|
|
|
HumanId=model.HumanId,
|
|
|
|
|
CompanyId=model.CompanyId,
|
|
|
|
|
RouteId=model.RouteId,
|
|
|
|
|
DateStart=model.DateStart,
|
|
|
|
|
DateEnd=model.DateEnd,
|
|
|
|
|
CarName=model.CarName,
|
|
|
|
|
HumanName=model.HumanName,
|
|
|
|
|
CompanyName=model.CompanyName,
|
2023-05-05 21:47:09 +04:00
|
|
|
|
RouteName = model.RouteName
|
|
|
|
|
|
2023-04-22 19:42:51 +04:00
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public VoyageVM GetViewModel => new()
|
|
|
|
|
{
|
|
|
|
|
Id = Id,
|
|
|
|
|
CarId = CarId,
|
|
|
|
|
HumanId = HumanId,
|
|
|
|
|
CompanyId = CompanyId,
|
|
|
|
|
RouteId = RouteId,
|
|
|
|
|
DateStart = DateStart,
|
|
|
|
|
DateEnd = DateEnd,
|
2023-05-05 21:47:09 +04:00
|
|
|
|
CarName = Car?.Model,
|
|
|
|
|
HumanName = Human?.Name,
|
|
|
|
|
CompanyName = Company?.Title,
|
|
|
|
|
RouteName = Route?.PlaceStartNavigation?.Title + " - " + Route?.PlaceStartNavigation?.Title,
|
|
|
|
|
Km = Route?.Length
|
|
|
|
|
};
|
|
|
|
|
public VoyageVM GetReportVM => new()
|
|
|
|
|
{
|
|
|
|
|
HumanName=Human?.Name,
|
|
|
|
|
Km=Km
|
2023-04-22 19:42:51 +04:00
|
|
|
|
};
|
|
|
|
|
}
|