Changed the manager's mobile number across all seed data entries to reflect the correct contact information for the complex manager.
511 lines
31 KiB
C#
511 lines
31 KiB
C#
using Complex.Domain.Entities;
|
||
using Microsoft.EntityFrameworkCore;
|
||
|
||
namespace Complex.Infrastructure
|
||
{
|
||
public static class DataSeeder
|
||
{
|
||
public static async Task SeedAsync(ComplexDBContext context)
|
||
{
|
||
// Only seed if the database is empty (no provinces means fresh database)
|
||
if (await context.Set<Province>().AnyAsync())
|
||
return;
|
||
|
||
// ============================================================
|
||
// 1. PROVINCES & CITIES (Reference Data)
|
||
// ============================================================
|
||
var provinces = GetProvinces();
|
||
context.Set<Province>().AddRange(provinces);
|
||
await context.SaveChangesAsync();
|
||
|
||
// ============================================================
|
||
// 2. TRANSACTION TYPES (Reference Data)
|
||
// ============================================================
|
||
var transactionTypes = new List<TransactionType>
|
||
{
|
||
new() { Id = 1, Title = "درآمد" }, // Income
|
||
new() { Id = 2, Title = "مخارج" }, // Expense
|
||
};
|
||
context.Set<TransactionType>().AddRange(transactionTypes);
|
||
await context.SaveChangesAsync();
|
||
|
||
// ============================================================
|
||
// 3. INCOME/COST TITLES (Reference Data)
|
||
// ============================================================
|
||
var incomeCostTitles = new List<IncomeCostTitle>
|
||
{
|
||
new() { Id = 1, Title = "شارژ ماهیانه", TransactionTypeId = 1 },
|
||
new() { Id = 2, Title = "هزینه آب", TransactionTypeId = 2 },
|
||
new() { Id = 3, Title = "هزینه برق", TransactionTypeId = 2 },
|
||
new() { Id = 4, Title = "هزینه گاز", TransactionTypeId = 2 },
|
||
new() { Id = 5, Title = "هزینه نظافت", TransactionTypeId = 2 },
|
||
new() { Id = 6, Title = "هزینه تعمیرات", TransactionTypeId = 2 },
|
||
new() { Id = 7, Title = "هزینه آسانسور", TransactionTypeId = 2 },
|
||
new() { Id = 8, Title = "پارکینگ", TransactionTypeId = 1 },
|
||
new() { Id = 9, Title = "جریمه", TransactionTypeId = 1 },
|
||
new() { Id = 10, Title = "هزینه اینترنت", TransactionTypeId = 2 },
|
||
new() { Id = 11, Title = "هزینه نگهبانی", TransactionTypeId = 2 },
|
||
new() { Id = 12, Title = "هزینه باغبانی", TransactionTypeId = 2 },
|
||
};
|
||
context.Set<IncomeCostTitle>().AddRange(incomeCostTitles);
|
||
await context.SaveChangesAsync();
|
||
|
||
// ============================================================
|
||
// 4. UNIT STATES (Reference Data)
|
||
// ============================================================
|
||
var unitStates = new List<UnitState>
|
||
{
|
||
new() { Id = 1, Title = "ساکن دارد", Icon = "home" },
|
||
new() { Id = 2, Title = "خالی", Icon = "door-open" },
|
||
new() { Id = 3, Title = "بازسازی", Icon = "hammer" },
|
||
new() { Id = 4, Title = "اجاره داده شده", Icon = "key" },
|
||
new() { Id = 5, Title = "فروخته شده", Icon = "handshake" },
|
||
};
|
||
context.Set<UnitState>().AddRange(unitStates);
|
||
await context.SaveChangesAsync();
|
||
|
||
// ============================================================
|
||
// 5. PERSONS (Test Data)
|
||
// ============================================================
|
||
var persons = new List<Person>
|
||
{
|
||
new() { Id = "09354600904", FirstName = "علی", LastName = "مدیر", Gender = 1, IsActive = true },
|
||
new() { Id = "09120000002", FirstName = "رضا", LastName = "ساکن", Gender = 1, IsActive = true },
|
||
new() { Id = "09120000003", FirstName = "مریم", LastName = "ساکنی", Gender = 2, IsActive = true },
|
||
new() { Id = "09120000004", FirstName = "مدیر", LastName = "سیستم", Gender = 1, IsActive = true },
|
||
new() { Id = "09120000005", FirstName = "احمد", LastName = "احمدی", Gender = 1, IsActive = true },
|
||
new() { Id = "09120000006", FirstName = "سارا", LastName = "محمدی", Gender = 2, IsActive = true },
|
||
new() { Id = "09120000007", FirstName = "حسین", LastName = "حسینی", Gender = 1, IsActive = true },
|
||
new() { Id = "09120000008", FirstName = "زهرا", LastName = "رضایی", Gender = 2, IsActive = true },
|
||
new() { Id = "09120000009", FirstName = "محمد", LastName = "محمدیان", Gender = 1, IsActive = true },
|
||
new() { Id = "09120000010", FirstName = "فاطمه", LastName = "کریمی", Gender = 2, IsActive = true },
|
||
new() { Id = "09120000011", FirstName = "امیر", LastName = "امیری", Gender = 1, IsActive = true },
|
||
new() { Id = "09120000012", FirstName = "نرگس", LastName = "نرگسی", Gender = 2, IsActive = true },
|
||
};
|
||
context.Set<Person>().AddRange(persons);
|
||
await context.SaveChangesAsync();
|
||
|
||
// ============================================================
|
||
// 6. COMPLEX ENTITIES (Test Data)
|
||
// ============================================================
|
||
var complexId1 = Guid.Parse("A1B2C3D4-E5F6-7890-ABCD-EF1234567890");
|
||
var complexId2 = Guid.Parse("B2C3D4E5-F6A7-8901-BCDE-F12345678901");
|
||
|
||
var complexes = new List<ComplexEntity>
|
||
{
|
||
new()
|
||
{
|
||
Id = complexId1,
|
||
Title = "مجتمع بهاران",
|
||
Address = "تهران، خیابان ولیعصر، نبش کوچه بهار",
|
||
CityId = 1, // Tehran
|
||
AreaMeter = 2000,
|
||
YardMeter = 500,
|
||
ElevatorCount = 2,
|
||
WarehouseCount = 10,
|
||
YearMake = 1398,
|
||
Description = "مجتمع مسکونی 10 واحده با امکانات کامل"
|
||
},
|
||
new()
|
||
{
|
||
Id = complexId2,
|
||
Title = "مجتمع ساحل",
|
||
Address = "اصفهان، خیابان چهارباغ، روبروی پارک ساحل",
|
||
CityId = 3, // Isfahan
|
||
AreaMeter = 1500,
|
||
YardMeter = 300,
|
||
ElevatorCount = 1,
|
||
WarehouseCount = 6,
|
||
YearMake = 1400,
|
||
Description = "مجتمع مسکونی 6 واحده"
|
||
},
|
||
};
|
||
context.Set<ComplexEntity>().AddRange(complexes);
|
||
await context.SaveChangesAsync();
|
||
|
||
// ============================================================
|
||
// 7. COMPLEX MANAGERS (Test Data)
|
||
// ============================================================
|
||
var complexManagers = new List<ComplexManager>
|
||
{
|
||
new()
|
||
{
|
||
ComplexId = complexId1,
|
||
ManagerMobileNumberId = "09354600904", // علی مدیر
|
||
StartDate = "1402/01/01",
|
||
EndDate = "1405/12/29"
|
||
},
|
||
new()
|
||
{
|
||
ComplexId = complexId2,
|
||
ManagerMobileNumberId = "09120000004", // مدیر سیستم
|
||
StartDate = "1402/06/01",
|
||
EndDate = "1405/06/01"
|
||
},
|
||
};
|
||
context.Set<ComplexManager>().AddRange(complexManagers);
|
||
await context.SaveChangesAsync();
|
||
|
||
// ============================================================
|
||
// 8. COMPLEX PERSONS (Test Data)
|
||
// ============================================================
|
||
var complexPersons = new List<ComplexPerson>
|
||
{
|
||
new() { ComplexId = complexId1, PersonMobileNumberId = "09354600904" },
|
||
new() { ComplexId = complexId1, PersonMobileNumberId = "09120000002" },
|
||
new() { ComplexId = complexId1, PersonMobileNumberId = "09120000003" },
|
||
new() { ComplexId = complexId1, PersonMobileNumberId = "09120000005" },
|
||
new() { ComplexId = complexId1, PersonMobileNumberId = "09120000006" },
|
||
new() { ComplexId = complexId1, PersonMobileNumberId = "09120000007" },
|
||
new() { ComplexId = complexId1, PersonMobileNumberId = "09120000008" },
|
||
new() { ComplexId = complexId1, PersonMobileNumberId = "09120000009" },
|
||
new() { ComplexId = complexId1, PersonMobileNumberId = "09120000010" },
|
||
new() { ComplexId = complexId1, PersonMobileNumberId = "09120000011" },
|
||
new() { ComplexId = complexId1, PersonMobileNumberId = "09120000012" },
|
||
new() { ComplexId = complexId2, PersonMobileNumberId = "09120000004" },
|
||
new() { ComplexId = complexId2, PersonMobileNumberId = "09120000005" },
|
||
new() { ComplexId = complexId2, PersonMobileNumberId = "09120000006" },
|
||
new() { ComplexId = complexId2, PersonMobileNumberId = "09120000007" },
|
||
};
|
||
context.Set<ComplexPerson>().AddRange(complexPersons);
|
||
await context.SaveChangesAsync();
|
||
|
||
// ============================================================
|
||
// 9. UNITS (Test Data)
|
||
// ============================================================
|
||
var unitIds = new List<Guid>
|
||
{
|
||
Guid.Parse("11111111-1111-1111-1111-111111111101"),
|
||
Guid.Parse("11111111-1111-1111-1111-111111111102"),
|
||
Guid.Parse("11111111-1111-1111-1111-111111111103"),
|
||
Guid.Parse("11111111-1111-1111-1111-111111111104"),
|
||
Guid.Parse("11111111-1111-1111-1111-111111111105"),
|
||
Guid.Parse("11111111-1111-1111-1111-111111111106"),
|
||
Guid.Parse("11111111-1111-1111-1111-111111111107"),
|
||
Guid.Parse("11111111-1111-1111-1111-111111111108"),
|
||
Guid.Parse("11111111-1111-1111-1111-111111111109"),
|
||
Guid.Parse("11111111-1111-1111-1111-111111111110"),
|
||
Guid.Parse("22222222-2222-2222-2222-222222222201"),
|
||
Guid.Parse("22222222-2222-2222-2222-222222222202"),
|
||
Guid.Parse("22222222-2222-2222-2222-222222222203"),
|
||
Guid.Parse("22222222-2222-2222-2222-222222222204"),
|
||
Guid.Parse("22222222-2222-2222-2222-222222222205"),
|
||
Guid.Parse("22222222-2222-2222-2222-222222222206"),
|
||
};
|
||
|
||
var units = new List<Unit>
|
||
{
|
||
// Complex 1 - 10 units
|
||
new() { Id = unitIds[0], ComplexId = complexId1, UnitName = "واحد 1", OwnerId = "09120000002", TenantId = null, IsActive = true, AreaMeter = 120, Floor = 1, StateId = 1, EmergencyTels = "09120000002" },
|
||
new() { Id = unitIds[1], ComplexId = complexId1, UnitName = "واحد 2", OwnerId = "09120000003", TenantId = null, IsActive = true, AreaMeter = 100, Floor = 1, StateId = 1, EmergencyTels = "09120000003" },
|
||
new() { Id = unitIds[2], ComplexId = complexId1, UnitName = "واحد 3", OwnerId = "09120000005", TenantId = "09120000006", IsActive = true, AreaMeter = 110, Floor = 2, StateId = 4, EmergencyTels = "09120000005,09120000006" },
|
||
new() { Id = unitIds[3], ComplexId = complexId1, UnitName = "واحد 4", OwnerId = "09120000007", TenantId = null, IsActive = true, AreaMeter = 130, Floor = 2, StateId = 1, EmergencyTels = "09120000007" },
|
||
new() { Id = unitIds[4], ComplexId = complexId1, UnitName = "واحد 5", OwnerId = null, TenantId = null, IsActive = true, AreaMeter = 90, Floor = 3, StateId = 2, EmergencyTels = "" },
|
||
new() { Id = unitIds[5], ComplexId = complexId1, UnitName = "واحد 6", OwnerId = "09120000008", TenantId = null, IsActive = true, AreaMeter = 140, Floor = 3, StateId = 1, EmergencyTels = "09120000008" },
|
||
new() { Id = unitIds[6], ComplexId = complexId1, UnitName = "واحد 7", OwnerId = "09120000009", TenantId = "09120000010", IsActive = true, AreaMeter = 95, Floor = 4, StateId = 4, EmergencyTels = "09120000009,09120000010" },
|
||
new() { Id = unitIds[7], ComplexId = complexId1, UnitName = "واحد 8", OwnerId = "09120000011", TenantId = null, IsActive = true, AreaMeter = 115, Floor = 4, StateId = 1, EmergencyTels = "09120000011" },
|
||
new() { Id = unitIds[8], ComplexId = complexId1, UnitName = "واحد 9", OwnerId = "09120000012", TenantId = null, IsActive = true, AreaMeter = 105, Floor = 5, StateId = 1, EmergencyTels = "09120000012" },
|
||
new() { Id = unitIds[9], ComplexId = complexId1, UnitName = "واحد 10", OwnerId = null, TenantId = null, IsActive = false,AreaMeter = 80, Floor = 5, StateId = 3, EmergencyTels = "" },
|
||
// Complex 2 - 6 units
|
||
new() { Id = unitIds[10], ComplexId = complexId2, UnitName = "واحد 1", OwnerId = "09120000005", TenantId = null, IsActive = true, AreaMeter = 110, Floor = 1, StateId = 1, EmergencyTels = "09120000005" },
|
||
new() { Id = unitIds[11], ComplexId = complexId2, UnitName = "واحد 2", OwnerId = "09120000006", TenantId = null, IsActive = true, AreaMeter = 90, Floor = 1, StateId = 1, EmergencyTels = "09120000006" },
|
||
new() { Id = unitIds[12], ComplexId = complexId2, UnitName = "واحد 3", OwnerId = "09120000007", TenantId = null, IsActive = true, AreaMeter = 120, Floor = 2, StateId = 1, EmergencyTels = "09120000007" },
|
||
new() { Id = unitIds[13], ComplexId = complexId2, UnitName = "واحد 4", OwnerId = null, TenantId = null, IsActive = true, AreaMeter = 85, Floor = 2, StateId = 2, EmergencyTels = "" },
|
||
new() { Id = unitIds[14], ComplexId = complexId2, UnitName = "واحد 5", OwnerId = "09120000004", TenantId = null, IsActive = true, AreaMeter = 100, Floor = 3, StateId = 1, EmergencyTels = "09120000004" },
|
||
new() { Id = unitIds[15], ComplexId = complexId2, UnitName = "واحد 6", OwnerId = null, TenantId = null, IsActive = false,AreaMeter = 95, Floor = 3, StateId = 3, EmergencyTels = "" },
|
||
};
|
||
context.Set<Unit>().AddRange(units);
|
||
await context.SaveChangesAsync();
|
||
|
||
// ============================================================
|
||
// 10. COST CYCLES (Test Data)
|
||
// ============================================================
|
||
var costCycleId1 = Guid.Parse("CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCC01");
|
||
var costCycleId2 = Guid.Parse("CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCC02");
|
||
|
||
var costCycles = new List<CostCycle>
|
||
{
|
||
new()
|
||
{
|
||
Id = costCycleId1,
|
||
ComplexId = complexId1,
|
||
Title = "شارژ فروردین 1404",
|
||
StartDate = new DateOnly(1404, 1, 1),
|
||
EndDate = new DateOnly(1404, 1, 31),
|
||
Amount = 500000,
|
||
EncouragementDay = 10,
|
||
EncouragementAmount = 450000,
|
||
IncomeCostTitleId = null, // شارژ ماهیانه
|
||
},
|
||
new()
|
||
{
|
||
Id = costCycleId2,
|
||
ComplexId = complexId1,
|
||
Title = "هزینه نظافت فروردین 1404",
|
||
StartDate = new DateOnly(1404, 1, 1),
|
||
EndDate = new DateOnly(1404, 1, 31),
|
||
Amount = 200000,
|
||
EncouragementDay = 0,
|
||
EncouragementAmount = 0,
|
||
IncomeCostTitleId = 5, // هزینه نظافت
|
||
},
|
||
};
|
||
context.Set<CostCycle>().AddRange(costCycles);
|
||
await context.SaveChangesAsync();
|
||
|
||
// Associate CostCycles with Units (many-to-many via CostCycleUnit)
|
||
// For costCycle1 - all units of complex1
|
||
var complex1Units = units.Take(10).ToList();
|
||
foreach (var unit in complex1Units)
|
||
{
|
||
// We need to add to the join table manually via the navigation property
|
||
var cycle1 = await context.Set<CostCycle>().Include(c => c.Units).FirstAsync(c => c.Id == costCycleId1);
|
||
cycle1.Units.Add(unit);
|
||
}
|
||
// For costCycle2 - only units 1,2,3,4 of complex1
|
||
var selectedUnits = units.Take(4).ToList();
|
||
var cycle2 = await context.Set<CostCycle>().Include(c => c.Units).FirstAsync(c => c.Id == costCycleId2);
|
||
foreach (var unit in selectedUnits)
|
||
{
|
||
cycle2.Units.Add(unit);
|
||
}
|
||
await context.SaveChangesAsync();
|
||
|
||
// ============================================================
|
||
// 11. UNIT COSTS (Test Data)
|
||
// ============================================================
|
||
var unitCosts = new List<UnitCost>();
|
||
long unitCostId = 1;
|
||
foreach (var unit in complex1Units)
|
||
{
|
||
unitCosts.Add(new UnitCost
|
||
{
|
||
Id = unitCostId++,
|
||
CostCycleId = costCycleId1,
|
||
UnitId = unit.Id,
|
||
Date = new DateOnly(1404, 1, 1),
|
||
TransactionId = null
|
||
});
|
||
}
|
||
foreach (var unit in selectedUnits)
|
||
{
|
||
unitCosts.Add(new UnitCost
|
||
{
|
||
Id = unitCostId++,
|
||
CostCycleId = costCycleId2,
|
||
UnitId = unit.Id,
|
||
Date = new DateOnly(1404, 1, 1),
|
||
TransactionId = null
|
||
});
|
||
}
|
||
context.Set<UnitCost>().AddRange(unitCosts);
|
||
await context.SaveChangesAsync();
|
||
|
||
// ============================================================
|
||
// 12. TRANSACTIONS (Test Data - some paid, some unpaid)
|
||
// ============================================================
|
||
var transactions = new List<Transaction>
|
||
{
|
||
new()
|
||
{
|
||
Id = 1,
|
||
TransactionTitleId = null, // شارژ
|
||
TransactionPersianDate = "1404/01/15",
|
||
TransactionDate = new DateTime(2025, 4, 4),
|
||
Amount = 500000,
|
||
Description = "پرداخت شارژ فروردین - واحد 1",
|
||
CostCycleId = costCycleId1,
|
||
UnitId = unitIds[0],
|
||
UnitCostId = 1, // First UnitCost
|
||
ComplexId = complexId1,
|
||
PersonId = "09120000002",
|
||
FicheId = "FICHE-001"
|
||
},
|
||
new()
|
||
{
|
||
Id = 2,
|
||
TransactionTitleId = null,
|
||
TransactionPersianDate = "1404/01/20",
|
||
TransactionDate = new DateTime(2025, 4, 9),
|
||
Amount = 500000,
|
||
Description = "پرداخت شارژ فروردین - واحد 2",
|
||
CostCycleId = costCycleId1,
|
||
UnitId = unitIds[1],
|
||
UnitCostId = 2,
|
||
ComplexId = complexId1,
|
||
PersonId = "09120000003",
|
||
FicheId = "FICHE-002"
|
||
},
|
||
new()
|
||
{
|
||
Id = 3,
|
||
TransactionTitleId = 5, // هزینه نظافت
|
||
TransactionPersianDate = "1404/01/25",
|
||
TransactionDate = new DateTime(2025, 4, 14),
|
||
Amount = 200000,
|
||
Description = "پرداخت هزینه نظافت - واحد 1",
|
||
CostCycleId = costCycleId2,
|
||
UnitId = unitIds[0],
|
||
UnitCostId = 11,
|
||
ComplexId = complexId1,
|
||
PersonId = "09120000002",
|
||
FicheId = "FICHE-003"
|
||
},
|
||
};
|
||
context.Set<Transaction>().AddRange(transactions);
|
||
await context.SaveChangesAsync();
|
||
|
||
// Update UnitCosts to mark them as paid (link TransactionId)
|
||
var paidUnitCost1 = await context.Set<UnitCost>().FindAsync(1L);
|
||
if (paidUnitCost1 != null) paidUnitCost1.TransactionId = 1;
|
||
|
||
var paidUnitCost2 = await context.Set<UnitCost>().FindAsync(2L);
|
||
if (paidUnitCost2 != null) paidUnitCost2.TransactionId = 2;
|
||
|
||
var paidUnitCost11 = await context.Set<UnitCost>().FindAsync(11L);
|
||
if (paidUnitCost11 != null) paidUnitCost11.TransactionId = 3;
|
||
|
||
await context.SaveChangesAsync();
|
||
|
||
// ============================================================
|
||
// 13. CHATS (Test Data)
|
||
// ============================================================
|
||
var chats = new List<Chat>
|
||
{
|
||
new()
|
||
{
|
||
ComplexId = complexId1,
|
||
PersonMobileNumber = "09120000002",
|
||
Body = "سلام. وقت بخیر. لطفاً در مورد شارژ ماه جاری راهنمایی بفرمایید.",
|
||
ChatTypeId = 1
|
||
},
|
||
new()
|
||
{
|
||
ComplexId = complexId1,
|
||
PersonMobileNumber = "09354600904",
|
||
Body = "سلام. شارژ فروردین ۵۰۰ هزار تومان است. مهلت پرداخت تا ۱۰ فروردین با تخفیف میباشد.",
|
||
ChatTypeId = 2
|
||
},
|
||
new()
|
||
{
|
||
ComplexId = complexId1,
|
||
PersonMobileNumber = "09120000005",
|
||
Body = "آسانسور طبقه ۳ مشکل دارد. لطفاً رسیدگی کنید.",
|
||
ChatTypeId = 1
|
||
},
|
||
};
|
||
context.Set<Chat>().AddRange(chats);
|
||
await context.SaveChangesAsync();
|
||
|
||
// ============================================================
|
||
// 14. COMPLEX UNIT EVENTS (Test Data)
|
||
// ============================================================
|
||
var events = new List<ComplexUnitEvent>
|
||
{
|
||
new()
|
||
{
|
||
UnitId = unitIds[0],
|
||
EventDate = "1404/01/05",
|
||
RegisterMobileNumber = "09120000002",
|
||
Body = "تعویض کنتور آب",
|
||
Description = "کنتور آب واحد ۱ تعویض شد"
|
||
},
|
||
new()
|
||
{
|
||
UnitId = unitIds[2],
|
||
EventDate = "1404/01/10",
|
||
RegisterMobileNumber = "09120000005",
|
||
Body = "تعمیر شیرآلات",
|
||
Description = "شیرآلات آشپزخانه تعمیر شد"
|
||
},
|
||
new()
|
||
{
|
||
ComplexId = null,
|
||
UnitId = null,
|
||
EventDate = "1404/01/01",
|
||
RegisterMobileNumber = "09354600904",
|
||
Body = "سال نو مبارک",
|
||
Description = "تبریک سال نو به تمام ساکنین مجتمع"
|
||
},
|
||
};
|
||
context.Set<ComplexUnitEvent>().AddRange(events);
|
||
await context.SaveChangesAsync();
|
||
|
||
// ============================================================
|
||
// 15. POSTERS (Test Data)
|
||
// ============================================================
|
||
var posters = new List<Poster>
|
||
{
|
||
new()
|
||
{
|
||
RegisterMobileNumber = "09354600904",
|
||
IsActive = true,
|
||
ImagePath = "/images/posters/banner1.jpg"
|
||
},
|
||
new()
|
||
{
|
||
RegisterMobileNumber = "09354600904",
|
||
IsActive = false,
|
||
ImagePath = "/images/posters/banner2.jpg"
|
||
},
|
||
};
|
||
context.Set<Poster>().AddRange(posters);
|
||
await context.SaveChangesAsync();
|
||
}
|
||
|
||
private static List<Province> GetProvinces()
|
||
{
|
||
return new List<Province>
|
||
{
|
||
new() { ProvinceId = 1, ProvinceTitle = "آذربایجان شرقی", Cities = GetCities(1, "تبریز", "مراغه", "مرند", "میانه") },
|
||
new() { ProvinceId = 2, ProvinceTitle = "آذربایجان غربی", Cities = GetCities(2, "ارومیه", "خوی", "میاندوآب", "سلماس") },
|
||
new() { ProvinceId = 3, ProvinceTitle = "اردبیل", Cities = GetCities(3, "اردبیل", "پارسآباد", "مشگینشهر") },
|
||
new() { ProvinceId = 4, ProvinceTitle = "اصفهان", Cities = GetCities(4, "اصفهان", "کاشان", "خمینیشهر", "نجفآباد", "شهرضا") },
|
||
new() { ProvinceId = 5, ProvinceTitle = "البرز", Cities = GetCities(5, "کرج", "فردیس", "هشتگرد") },
|
||
new() { ProvinceId = 6, ProvinceTitle = "ایلام", Cities = GetCities(6, "ایلام", "دهلران") },
|
||
new() { ProvinceId = 7, ProvinceTitle = "بوشهر", Cities = GetCities(7, "بوشهر", "برازجان", "کنگان") },
|
||
new() { ProvinceId = 8, ProvinceTitle = "تهران", Cities = GetCities(8, "تهران", "شهریار", "اسلامشهر", "رباطکریم", "ورامین") },
|
||
new() { ProvinceId = 9, ProvinceTitle = "چهارمحال و بختیاری", Cities = GetCities(9, "شهرکرد", "بروجن") },
|
||
new() { ProvinceId = 10, ProvinceTitle = "خراسان جنوبی", Cities = GetCities(10, "بیرجند", "قائن") },
|
||
new() { ProvinceId = 11, ProvinceTitle = "خراسان رضوی", Cities = GetCities(11, "مشهد", "نیشابور", "سبزوار", "گناباد", "تربتحیدریه") },
|
||
new() { ProvinceId = 12, ProvinceTitle = "خراسان شمالی", Cities = GetCities(12, "بجنورد", "شیروان") },
|
||
new() { ProvinceId = 13, ProvinceTitle = "خوزستان", Cities = GetCities(13, "اهواز", "آبادان", "خرمشهر", "دزفول", "بندر ماهشهر") },
|
||
new() { ProvinceId = 14, ProvinceTitle = "زنجان", Cities = GetCities(14, "زنجان", "ابهر") },
|
||
new() { ProvinceId = 15, ProvinceTitle = "سمنان", Cities = GetCities(15, "سمنان", "شاهرود", "دامغان") },
|
||
new() { ProvinceId = 16, ProvinceTitle = "سیستان و بلوچستان", Cities = GetCities(16, "زاهدان", "زابل", "چابهار", "ایرانشهر") },
|
||
new() { ProvinceId = 17, ProvinceTitle = "فارس", Cities = GetCities(17, "شیراز", "مرودشت", "جهرم", "فسا", "کازرون") },
|
||
new() { ProvinceId = 18, ProvinceTitle = "قزوین", Cities = GetCities(18, "قزوین", "الوند", "تاکستان") },
|
||
new() { ProvinceId = 19, ProvinceTitle = "قم", Cities = GetCities(19, "قم") },
|
||
new() { ProvinceId = 20, ProvinceTitle = "کردستان", Cities = GetCities(20, "سنندج", "سقز", "مریوان") },
|
||
new() { ProvinceId = 21, ProvinceTitle = "کرمان", Cities = GetCities(21, "کرمان", "رفسنجان", "سیرجان", "زرند") },
|
||
new() { ProvinceId = 22, ProvinceTitle = "کرمانشاه", Cities = GetCities(22, "کرمانشاه", "اسلامآباد غرب", "کنگاور") },
|
||
new() { ProvinceId = 23, ProvinceTitle = "کهگیلویه و بویراحمد", Cities = GetCities(23, "یاسوج", "گچساران") },
|
||
new() { ProvinceId = 24, ProvinceTitle = "گلستان", Cities = GetCities(24, "گرگان", "گنبد کاووس", "علیآباد") },
|
||
new() { ProvinceId = 25, ProvinceTitle = "گیلان", Cities = GetCities(25, "رشت", "انزلی", "لاهیجان", "لنگرود") },
|
||
new() { ProvinceId = 26, ProvinceTitle = "لرستان", Cities = GetCities(26, "خرمآباد", "بروجرد", "الیگودرز") },
|
||
new() { ProvinceId = 27, ProvinceTitle = "مازندران", Cities = GetCities(27, "ساری", "بابل", "آمل", "قائمشهر", "چالوس") },
|
||
new() { ProvinceId = 28, ProvinceTitle = "مرکزی", Cities = GetCities(28, "اراک", "ساوه", "خمین") },
|
||
new() { ProvinceId = 29, ProvinceTitle = "هرمزگان", Cities = GetCities(29, "بندرعباس", "قشم", "کیش", "بندر لنگه") },
|
||
new() { ProvinceId = 30, ProvinceTitle = "همدان", Cities = GetCities(30, "همدان", "ملایر", "نهاوند") },
|
||
new() { ProvinceId = 31, ProvinceTitle = "یزد", Cities = GetCities(31, "یزد", "میبد", "اردکان") },
|
||
};
|
||
}
|
||
|
||
private static List<City> GetCities(int provinceId, params string[] cityNames)
|
||
{
|
||
var cities = new List<City>();
|
||
int cityId = provinceId * 100; // Simple ID generation: provinceId * 100 + index
|
||
for (int i = 0; i < cityNames.Length; i++)
|
||
{
|
||
cities.Add(new City
|
||
{
|
||
CityId = cityId + i + 1,
|
||
ProvinceId = provinceId,
|
||
CityTitle = cityNames[i]
|
||
});
|
||
}
|
||
return cities;
|
||
}
|
||
}
|
||
}
|