Files
2026-07-21 14:28:43 +07:00

75 lines
2.9 KiB
C#

using Indotalent.ConfigBackEnd.Extensions;
using Indotalent.Data.Entities;
using Microsoft.EntityFrameworkCore;
namespace Indotalent.Infrastructure.Database.Demo;
public static class VendorContactSeeder
{
public static async Task GenerateDataAsync(AppDbContext context)
{
if (await context.VendorContact.AnyAsync()) return;
var firstNames = new string[]
{
"Adam", "Sarah", "Michael", "Emily", "David", "Jessica",
"Kevin", "Samantha", "Jason", "Olivia", "Matthew", "Ashley",
"Christopher", "Jennifer", "Nicholas", "Amanda", "Alexander",
"Stephanie", "Jonathan", "Lauren"
};
var lastNames = new string[]
{
"Johnson", "Williams", "Brown", "Jones", "Miller", "Davis",
"Garcia", "Rodriguez", "Wilson", "Martinez", "Anderson", "Taylor",
"Thomas", "Hernandez", "Moore", "Martin", "Jackson", "Thompson",
"White", "Lopez"
};
var jobTitles = new string[]
{
"Chief Executive Officer", "Data Scientist", "Product Manager", "Business Development Executive",
"IT Consultant", "Social Media Specialist", "Research Analyst", "Content Writer",
"Operations Manager", "Financial Planner", "Software Developer", "Vendor Success Manager",
"Marketing Coordinator", "Quality Assurance Tester", "HR Specialist", "Event Coordinator",
"Account Executive", "Network Administrator", "Sales Manager", "Legal Assistant"
};
var vendorIds = await context.Vendor.Select(x => x.Id).ToListAsync();
var random = new Random();
var entityName = nameof(VendorContact);
foreach (var vendorId in vendorIds)
{
for (int i = 0; i < 3; i++)
{
var firstName = GetRandomString(firstNames, random);
var lastName = GetRandomString(lastNames, random);
var autoNo = await context.GenerateAutoNumberAsync(
entityName: entityName,
prefixTemplate: $"{entityName.ToShortNameConsonant(3)}/{{Year}}/"
);
var contact = new VendorContact
{
Name = $"{firstName} {lastName}",
AutoNumber = autoNo,
VendorId = vendorId,
JobTitle = GetRandomString(jobTitles, random),
EmailAddress = $"{firstName.ToLower()}.{lastName.ToLower()}@gmail.com",
PhoneNumber = $"+1-{random.Next(100, 999)}-{random.Next(100, 999)}-{random.Next(1000, 9999)}"
};
await context.VendorContact.AddAsync(contact);
}
}
await context.SaveChangesAsync();
}
private static string GetRandomString(string[] array, Random random)
{
return array[random.Next(array.Length)];
}
}