I am bussy with a application in C# that can generate random data and put it in the database.
I can can do it with one hardcoded record - that it will be saved in the database.
But now I try to make it more generic, so that you can put a x count records in the database.
I have it like so:
public class ZaakGenerator:DataGenerator
{
private static int count = 0;
private List<LijstWaarde> __zaakTypes;
public ZaakGenerator(UnitOfWork unitOfWork): base(unitOfWork)
{
DateTime tomorrow = DateTime.Now;
var startDate = GetRandomDate(DateTime.Now.AddYears(-3), DateTime.Now.AddDays(-5));
var endDate = ProbabilityBool(80) ? null : (DateTime?)GetRandomDate(DateTime.Now.AddDays(-1), DateTime.Now.AddYears(2));
//var zaak = new Zaak
//{
// Type = 100,
// Verwijzing = "123459850",
// Status = 106,
// Substatus = null,
// Afhandeling = 106,
// Actiehouder = 101,
// DatumBinnenkomst = DateTime.Now.AddDays(1), //tomorrow.Add(10).ToString(),
// DatumAfgehandeld = null,
// Steekproef = false,
// DocumentenZaaknummer = null,
// DatumVerval = DateTime.Now.AddDays(10)
//};
ZakenGenerator(count);
//HelperManager.ZaakReposHelper.Insert(zaak);
}
public void ZakenGenerator(int count)
{
// CreateZaak(count);
}
public Zaak CreateZaak()
{
DateTime datumBinnenkomst = GetRandomDate(DateTime.Now.AddMonths(-18), DateTime.Now);
var DatumAfgehandeld = ProbabilityBool(80) ? null : (DateTime?)GetRandomDate(DateTime.Now.AddDays(-1), DateTime.Now.AddYears(2));
var zaak = new Zaak
{
Type = __zaakTypes.OrderBy(a => Guid.NewGuid()).First().Id,
Verwijzing = RandomNumber(10, 100).ToString(),
Status = 103,
Substatus = null,
Afhandeling = 106,
Actiehouder = 101,
DatumBinnenkomst = datumBinnenkomst,
DatumAfgehandeld = DatumAfgehandeld,
Steekproef = generateZeroreOrNull(),
DocumentenZaaknummer = "case" + RandomStringNumbers(9)
};
HelperManager.ZaakReposHelper.Insert(zaak);
return zaak;
}
}
public class ZaakReposHelper : HelperBase<Zaak>
{
private ZaakHistorieReposHelper _zaakHistorieReposHelper;
private ZaakNotitieReposHelper _zaakNotitieReposHelper;
/// <summary>
/// Constructor
/// </summary>
/// <param name="manager"></param>
/// <param name="unitOfWork"></param>
public ZaakReposHelper(HelperManager manager, UnitOfWork unitOfWork) : base(manager, unitOfWork)
{
_zaakHistorieReposHelper = new ZaakHistorieReposHelper(manager, unitOfWork);
_zaakNotitieReposHelper = new ZaakNotitieReposHelper(manager, unitOfWork);
}
public override void Insert(Zaak zaak, bool autoSave = true)
{
//foreach (var historieEntry in zaak.ZaakHistorie)
//{
// _zaakHistorieReposHelper.Insert(historieEntry, false);
//}
if (zaak.ZaakNotitie.FirstOrDefault() != null)
{
foreach (var notitie in zaak.ZaakNotitie)
{
_zaakNotitieReposHelper.Insert(notitie, false);
}
}
base.Insert(zaak, autoSave);
}
public override void Delete(Zaak zaak, bool autoSave = true)
{
_zaakHistorieReposHelper.DeleteByZaakId(zaak.Id, false);
if (zaak.ZaakNotitie.FirstOrDefault() != null)
{
_zaakNotitieReposHelper.DeleteByZaakId(zaak.Id, false);
}
base.Delete(zaak, autoSave);
}
}
And I am using a console application with this method:
public class ZaakProcess : ProcessBase
{
protected override void Generate(int size)
{
//var zaakGenerator = new ZaakGenerator(new UnitOfWork());
// zaakGenerator.ZakenGenerator(size);
var generator = new ZaakGenerator(new UnitOfWork());
for (int i = 0; i < size; i++)
{
try
{
var result = generator.CreateZaak();
//Trace.WriteLine($" met Kvk {result.KvkNummer} is aangemaakt");
}
catch (Exception exp)
{
Trace.WriteLine($"zaken zijn NIET aangemaakt. Details: {exp}");
}
}
}
}
But if I run the application I get this error:
Value cannot be null. Parameter name: source
Thank you
in the catch:
catch (Exception exp)
{
Trace.WriteLine($"zaken zijn NIET aangemaakt. Details: {exp}");
}
This is the strack trace:
at System.Linq.OrderedEnumerable`2..ctor(IEnumerable`1 source, Func`2 keySelector, IComparer`1 comparer, Boolean descending)
at System.Linq.Enumerable.OrderBy[TSource,TKey](IEnumerable`1 source, Func`2 keySelector)
at VLR.TestData.Generator.Processes.ZaakGenerator.CreateZaak() in E:\Projects\Source\Repos\EndToEndTest\VLR.TestData.Generator\Processes\ZaakGenerator.cs:line 59
at VLR.TestData.Generator.Tool.Processes.ZaakProcess.Generate(Int32 size) in E:\Projects\Source\Repos\EndToEndTest\VLR.TestData.Generator.Tool\Processes\ZaakProcess.cs:line 25
Aucun commentaire:
Enregistrer un commentaire