Skip to content

Commit 0241976

Browse files
author
breno.dev
committed
Seeding Service
1 parent 9d4e6e6 commit 0241976

File tree

2 files changed

+90
-1
lines changed

2 files changed

+90
-1
lines changed

SalesWebMvc/Data/SeedingService.cs

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
using SalesWebMvc.Models;
2+
using SalesWebMvc.Models.Enums;
3+
using System;
4+
using System.Linq;
5+
6+
namespace SalesWebMvc.Data
7+
{
8+
public class SeedingService
9+
{
10+
private SalesWebMvcContext _context;
11+
12+
public SeedingService(SalesWebMvcContext context)
13+
{
14+
_context = context;
15+
}
16+
17+
public void Seed()
18+
{
19+
if (_context.Department.Any() ||
20+
_context.Seller.Any() ||
21+
_context.SalesRecord.Any())
22+
{
23+
return; // DB has been seeded
24+
}
25+
26+
Department d1 = new Department(1, "Computers");
27+
Department d2 = new Department(2, "Electronics");
28+
Department d3 = new Department(3, "Fashion");
29+
Department d4 = new Department(4, "Books");
30+
31+
Seller s1 = new Seller(1, "Bob Brown", "[email protected]", new DateTime(1998, 4, 21), 1000.0, d1);
32+
Seller s2 = new Seller(2, "Maria Green", "[email protected]", new DateTime(1979, 12, 31), 3500.0, d2);
33+
Seller s3 = new Seller(3, "Alex Grey", "[email protected]", new DateTime(1988, 1, 15), 2200.0, d1);
34+
Seller s4 = new Seller(4, "Martha Red", "[email protected]", new DateTime(1993, 11, 30), 3000.0, d4);
35+
Seller s5 = new Seller(5, "Donald Blue", "[email protected]", new DateTime(2000, 1, 9), 4000.0, d3);
36+
Seller s6 = new Seller(6, "Alex Pink", "[email protected]", new DateTime(1997, 3, 4), 3000.0, d2);
37+
38+
SalesRecord r1 = new SalesRecord(1, new DateTime(2018, 09, 25), 11000.0, SaleStatus.Billed, s1);
39+
SalesRecord r2 = new SalesRecord(2, new DateTime(2018, 09, 4), 7000.0, SaleStatus.Billed, s5);
40+
SalesRecord r3 = new SalesRecord(3, new DateTime(2018, 09, 13), 4000.0, SaleStatus.Canceled, s4);
41+
SalesRecord r4 = new SalesRecord(4, new DateTime(2018, 09, 1), 8000.0, SaleStatus.Billed, s1);
42+
SalesRecord r5 = new SalesRecord(5, new DateTime(2018, 09, 21), 3000.0, SaleStatus.Billed, s3);
43+
SalesRecord r6 = new SalesRecord(6, new DateTime(2018, 09, 15), 2000.0, SaleStatus.Billed, s1);
44+
SalesRecord r7 = new SalesRecord(7, new DateTime(2018, 09, 28), 13000.0, SaleStatus.Billed, s2);
45+
SalesRecord r8 = new SalesRecord(8, new DateTime(2018, 09, 11), 4000.0, SaleStatus.Billed, s4);
46+
SalesRecord r9 = new SalesRecord(9, new DateTime(2018, 09, 14), 11000.0, SaleStatus.Pending, s6);
47+
SalesRecord r10 = new SalesRecord(10, new DateTime(2018, 09, 7), 9000.0, SaleStatus.Billed, s6);
48+
SalesRecord r11 = new SalesRecord(11, new DateTime(2018, 09, 13), 6000.0, SaleStatus.Billed, s2);
49+
SalesRecord r12 = new SalesRecord(12, new DateTime(2018, 09, 25), 7000.0, SaleStatus.Pending, s3);
50+
SalesRecord r13 = new SalesRecord(13, new DateTime(2018, 09, 29), 10000.0, SaleStatus.Billed, s4);
51+
SalesRecord r14 = new SalesRecord(14, new DateTime(2018, 09, 4), 3000.0, SaleStatus.Billed, s5);
52+
SalesRecord r15 = new SalesRecord(15, new DateTime(2018, 09, 12), 4000.0, SaleStatus.Billed, s1);
53+
SalesRecord r16 = new SalesRecord(16, new DateTime(2018, 10, 5), 2000.0, SaleStatus.Billed, s4);
54+
SalesRecord r17 = new SalesRecord(17, new DateTime(2018, 10, 1), 12000.0, SaleStatus.Billed, s1);
55+
SalesRecord r18 = new SalesRecord(18, new DateTime(2018, 10, 24), 6000.0, SaleStatus.Billed, s3);
56+
SalesRecord r19 = new SalesRecord(19, new DateTime(2018, 10, 22), 8000.0, SaleStatus.Billed, s5);
57+
SalesRecord r20 = new SalesRecord(20, new DateTime(2018, 10, 15), 8000.0, SaleStatus.Billed, s6);
58+
SalesRecord r21 = new SalesRecord(21, new DateTime(2018, 10, 17), 9000.0, SaleStatus.Billed, s2);
59+
SalesRecord r22 = new SalesRecord(22, new DateTime(2018, 10, 24), 4000.0, SaleStatus.Billed, s4);
60+
SalesRecord r23 = new SalesRecord(23, new DateTime(2018, 10, 19), 11000.0, SaleStatus.Canceled, s2);
61+
SalesRecord r24 = new SalesRecord(24, new DateTime(2018, 10, 12), 8000.0, SaleStatus.Billed, s5);
62+
SalesRecord r25 = new SalesRecord(25, new DateTime(2018, 10, 31), 7000.0, SaleStatus.Billed, s3);
63+
SalesRecord r26 = new SalesRecord(26, new DateTime(2018, 10, 6), 5000.0, SaleStatus.Billed, s4);
64+
SalesRecord r27 = new SalesRecord(27, new DateTime(2018, 10, 13), 9000.0, SaleStatus.Pending, s1);
65+
SalesRecord r28 = new SalesRecord(28, new DateTime(2018, 10, 7), 4000.0, SaleStatus.Billed, s3);
66+
SalesRecord r29 = new SalesRecord(29, new DateTime(2018, 10, 23), 12000.0, SaleStatus.Billed, s5);
67+
SalesRecord r30 = new SalesRecord(30, new DateTime(2018, 10, 12), 5000.0, SaleStatus.Billed, s2);
68+
69+
70+
_context.Department.AddRange(d1, d2, d3, d4);
71+
72+
_context.Seller.AddRange(s1, s2, s3, s4, s5, s6);
73+
74+
_context.SalesRecord.AddRange(
75+
r1, r2, r3, r4, r5, r6, r7, r8, r9, r10,
76+
r11, r12, r13, r14, r15, r16, r17, r18, r19, r20,
77+
r21, r22, r23, r24, r25, r26, r27, r28, r29, r30
78+
);
79+
80+
_context.SaveChanges();
81+
82+
}
83+
84+
}
85+
}

SalesWebMvc/Startup.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
using Microsoft.Extensions.DependencyInjection;
1212
using Microsoft.EntityFrameworkCore;
1313
using SalesWebMvc.Models;
14+
using SalesWebMvc.Data;
1415

1516
namespace SalesWebMvc
1617
{
@@ -39,14 +40,17 @@ public void ConfigureServices(IServiceCollection services)
3940
services.AddDbContext<SalesWebMvcContext>(options =>
4041
options.UseMySql(Configuration.GetConnectionString("SalesWebMvcContext"), builder =>
4142
builder.MigrationsAssembly("SalesWebMvc")));
43+
44+
services.AddScoped<SeedingService>();
4245
}
4346

4447
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
45-
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
48+
public void Configure(IApplicationBuilder app, IHostingEnvironment env, SeedingService seedingService)
4649
{
4750
if (env.IsDevelopment())
4851
{
4952
app.UseDeveloperExceptionPage();
53+
seedingService.Seed();
5054
}
5155
else
5256
{

0 commit comments

Comments
 (0)