auto.bus_razor/TicketOffice/Models/SeedData.cs

383 lines
14 KiB
C#

using Microsoft.EntityFrameworkCore;
using TicketOffice.Data;
namespace TicketOffice.Models;
public class SeedData
{
public static void Initialize(IServiceProvider serviceProvider)
{
using var context =
new TicketOfficeContext(serviceProvider
.GetRequiredService<DbContextOptions<TicketOfficeContext>>());
if (context == null)
{
throw new ArgumentNullException(nameof(serviceProvider));
}
if (context.User.Any() | context.Route.Any() |
context.RouteCity.Any() | context.Ticket.Any()) // Data has been seeded
{
return;
}
context.Database.EnsureCreated();
context.User.AddRange(new User[]
{
new User
{
Email = "admin",
Password = "admin",
IsManager = true
},
new User
{
Email = "user",
Password = "user",
IsManager = false
}
});
context.Route.AddRange(new Route[]
{
new Route()
{
Number = 027,
Capacity = 30,
Cities = new List<RouteCity>()
{
new RouteCity
{
Name = "Сватове",
ArrivalTime = null,
DepartureTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
6,
30,
0),
CostFromPreviousCity = null
},
new RouteCity
{
Name = "Красноріченське",
ArrivalTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
7,
10,
0),
DepartureTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
7,
20,
0),
CostFromPreviousCity = 30
},
new RouteCity
{
Name = "Кремінна",
ArrivalTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
7,
50,
0),
DepartureTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
8,
0,
0),
CostFromPreviousCity = 30
},
new RouteCity
{
Name = "Рубіжне",
ArrivalTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
8,
30,
0),
DepartureTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
8,
40,
0),
CostFromPreviousCity = 15
},
new RouteCity
{
Name = "Сєвєродонецьк",
ArrivalTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
9,
10,
0),
DepartureTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
9,
20,
0),
CostFromPreviousCity = 15
},
new RouteCity
{
Name = "Лисичанськ",
ArrivalTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
9,
50,
0),
DepartureTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
12,
0,
0),
CostFromPreviousCity = 20
},
new RouteCity
{
Name = "Сєвєродонецьк",
ArrivalTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
12,
30,
0),
DepartureTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
12,
40,
0),
CostFromPreviousCity = 20
},
new RouteCity
{
Name = "Рубіжне",
ArrivalTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
13,
10,
0),
DepartureTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
13,
20,
0),
CostFromPreviousCity = 15
},
new RouteCity
{
Name = "Кремінна",
ArrivalTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
13,
50,
0),
DepartureTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
14,
0,
0),
CostFromPreviousCity = 15
},
new RouteCity
{
Name = "Красноріченське",
ArrivalTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
14,
30,
0),
DepartureTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
14,
40,
0),
CostFromPreviousCity = 30
},
new RouteCity
{
Name = "Сватове",
ArrivalTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
15,
20,
0),
DepartureTime = null,
CostFromPreviousCity = 30
}
}
},
new Route()
{
Number = 013,
Capacity = 25,
Cities = new List<RouteCity>()
{
new RouteCity
{
Name = "Кремінна",
ArrivalTime = null,
DepartureTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
7,
0,
0),
CostFromPreviousCity = null
},
new RouteCity
{
Name = "Рубіжне",
ArrivalTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
7,
30,
0),
DepartureTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
7,
40,
0),
CostFromPreviousCity = 15
},
new RouteCity
{
Name = "Сєвєродонецьк",
ArrivalTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
8,
10,
0),
DepartureTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
8,
20,
0),
CostFromPreviousCity = 15
},
new RouteCity
{
Name = "Станиця Луганська",
ArrivalTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
9,
20,
0),
DepartureTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
11,
20,
0),
CostFromPreviousCity = 40
},
new RouteCity
{
Name = "Сєвєродонецьк",
ArrivalTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
12,
20,
0),
DepartureTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
12,
30,
0),
CostFromPreviousCity = 40
},
new RouteCity
{
Name = "Рубіжне",
ArrivalTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
13,
0,
0),
DepartureTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
13,
10,
0),
CostFromPreviousCity = 15
},
new RouteCity
{
Name = "Кремінна",
ArrivalTime = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day,
13,
40,
0),
DepartureTime = null,
CostFromPreviousCity = 15
}
}
}
});
context.SaveChanges();
}
}