Files
2026-07-21 13:52:43 +07:00

75 lines
3.1 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[]
{
"James", "Mary", "Robert", "Patricia", "John", "Jennifer",
"Michael", "Linda", "David", "Elizabeth", "William", "Barbara",
"Richard", "Susan", "Joseph", "Jessica", "Thomas", "Sarah",
"Charles", "Karen"
};
var lastNames = new string[]
{
"Smith", "Johnson", "Williams", "Brown", "Jones", "Garcia",
"Miller", "Davis", "Rodriguez", "Martinez", "Hernandez", "Lopez",
"Gonzalez", "Wilson", "Anderson", "Thomas", "Taylor", "Moore",
"Jackson", "Martin"
};
var jobTitles = new string[]
{
"Pharma Account Executive", "Medical Equipment Specialist", "Clinical Support Representative", "Healthcare Supply Chain Manager",
"Biomedical Engineer Consultant", "Laboratory Products Manager", "Medical Devices Sales Director", "Healthcare Procurement Specialist",
"Consumables Account Manager", "Surgical Supplies Coordinator", "Pharmacy Relations Manager", "Diagnostic Tech Lead",
"Dental Products Representative", "Radiology Equipment Consultant", "Hospitality & Linens Coordinator", "Medical IT Solutions Architect",
"Healthcare Logistics Director", "Regulatory Compliance Manager", "Infection Control Product Lead", "Emergency Supplies Account Exec"
};
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()}@med-supplier.example.com",
PhoneNumber = $"+1-{random.Next(200, 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)];
}
}