Ejemplo n.º 1
0
        public static Employee Model(EmployeeSeed seed)
        {
            var model = new Employee
            {
                Id           = seed.Id,
                Name         = seed.Name,
                AnnualSalary = seed.Salary,
                Dependents   = new List <Dependent>(),
                EmployerId   = seed.EmployerId,
            };

            if (seed.SpouseName != null)
            {
                model.Dependents.Add(new Dependent {
                    Id = seed.SpouseId, Name = seed.SpouseName, Relationship = Relationship.Spouse
                });
            }
            foreach (var(childId, childName) in seed.Children)
            {
                model.Dependents.Add(new Dependent {
                    Id = childId, Name = childName, Relationship = Relationship.Child
                });
            }

            return(model);
        }
Ejemplo n.º 2
0
 public static void MigrateTablesAndSeed(IHost host)
 {
     using (var scope = host.Services.CreateScope())
     {
         var services = scope.ServiceProvider;
         try
         {
             using (var context = new CompanyContext(
                        services.GetRequiredService <
                            DbContextOptions <CompanyContext> >()))
             {
                 // Migrate the tables
                 context.Database.Migrate();
             }
             EmployeeSeed.Initialize(services);
             JobSeed.Initialize(services);
             JobEmployeeSeed.Initialize(services);
         }
         catch (Exception ex)
         {
             var logger = services.GetRequiredService <ILogger <Program> >();
             logger.LogError(ex, "An error occurred seeding the DB.");
         }
     }
 }
Ejemplo n.º 3
0
        public void Search_ContextHasRecords()
        {
            //Arrange
            var employees = EmployeeSeed.Data();

            //Act
            var results = _manager.Add(employees);

            //Assert
            Assert.True(results.Succeeded);
        }
Ejemplo n.º 4
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            #region Employee
            modelBuilder.Entity <Employee>()
            .HasOne(a => a.LoginInfo)
            .WithOne(b => b.Employee)
            .HasForeignKey <LoginInfo>(b => b.EmployeeId);

            modelBuilder.Entity <Employee>()
            .HasOne(a => a.AtWork)
            .WithOne(b => b.Employee)
            .HasForeignKey <AtWork>(b => b.EmployeeId);

            modelBuilder.Entity <Employee>()
            .HasData(EmployeeSeed.Seed());

            modelBuilder.Entity <Employee>()
            .HasMany(a => a.LoginsHistory)
            .WithOne(b => b.Employee);
            #endregion

            #region LoginInfo
            modelBuilder.Entity <LoginInfo>()
            .HasIndex(prop => prop.Username)
            .IsUnique();

            modelBuilder.Entity <LoginInfo>()
            .HasData(LoginInfoSeed.Seed());
            #endregion

            #region Role
            modelBuilder.Entity <Role>()
            .HasMany(a => a.Employees)
            .WithOne(b => b.Role);

            modelBuilder.Entity <Role>()
            .HasData(RoleSeed.Seed());
            #endregion

            #region AtWork
            //No seed needed
            #endregion

            #region LoginHistory
            // no seed needed
            #endregion
        }
Ejemplo n.º 5
0
        public static void Initialize(IServiceProvider serviceProvider)
        {
            using (var context = new EmplyeeDbConext(
                       serviceProvider.GetRequiredService <DbContextOptions <EmplyeeDbConext> >()))
            {
                // Look for any board games.
                if (context.Employee.Any())
                {
                    return;   // Data was already seeded
                }

                var employees = EmployeeSeed.Data();
                context.Employee.AddRange(employees);

                context.SaveChanges();
            }
        }
Ejemplo n.º 6
0
        public void Search_FindStaffs()
        {
            //Arrange
            var employees = EmployeeSeed.Data();
            var search    = "Baxter";

            //Act
            var addResults = _manager.Add(employees);
            var results    = _manager.Find(search);


            //Assert
            Assert.True(addResults.Succeeded);

            Assert.True(results.Succeeded);
            Assert.Equal(search, results.Employees.First().Lastname);
        }
Ejemplo n.º 7
0
        public static EmployeeDto Dto(EmployeeSeed seed)
        {
            var dto = new EmployeeDto
            {
                Id           = seed.Id,
                AnnualSalary = seed.Salary,
                Name         = seed.Name,
                Spouse       = seed.SpouseName == null ? null : new DependentDto {
                    Id = seed.SpouseId, Name = seed.SpouseName
                },
                // This has been open for 3 years ☹ https://github.com/dotnet/csharplang/issues/258
                Children = seed.Children.Select(((int childId, string childName)c) => new DependentDto {
                    Id = c.childId, Name = c.childName
                }).ToList(),
            };

            return(dto);
        }
Ejemplo n.º 8
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider serviceProvider)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseHttpsRedirection();

            app.UseRouting();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });

            EmployeeSeed.AddEmployees(serviceProvider).Wait();
        }
Ejemplo n.º 9
0
 public DomainSeed(EmployeeSeed employeeSeed) =>
 this.employeeSeed = employeeSeed;
Ejemplo n.º 10
0
 public static (Employee, EmployeeDto) GenerateEmployee(EmployeeSeed seed)
 {
     return(Model(seed), Dto(seed));
 }
Ejemplo n.º 11
0
        public static (Employee, EmployeeDto) GenerateEmployee(EmployeeSeedParams seedParams)
        {
            var seed = new EmployeeSeed(seedParams);

            return(GenerateEmployee(seed));
        }