private bool SeedOptional()
{
//Required seed hasn't been performed for Master worksration type, but data are used in optional seed
if (viewModel.Project.WorkstationType == WorkstationType.Master)
{
SeedRequired();
}
firstSetupRepo.BeginTransaction();
#region PlateManufacturers
PlateManufacturer[] plateManufacturers =
{
new PlateManufacturer {Name = "Алапаевский металлургический завод", IsActive = true, IsNative = true, Project = viewModel.Project},
new PlateManufacturer {Name = "Альметьевский трубный завод", IsActive = true, IsNative = true, Project = viewModel.Project},
new PlateManufacturer {Name = "Борский трубный завод", IsActive = true, IsNative = true, Project = viewModel.Project},
new PlateManufacturer {Name = "Волжский трубный завод", IsActive = true, IsNative = true, Project = viewModel.Project},
new PlateManufacturer {Name = "Волгоградский трубный завод", IsActive = true, IsNative = true, Project = viewModel.Project},
new PlateManufacturer {Name = "Гурьевский металлургический завод", IsActive = true, IsNative = true, Project = viewModel.Project},
new PlateManufacturer {Name = "Завод Точлит", IsActive = true}
};
Array.ForEach(plateManufacturers, s => firstSetupRepo.PlateManRepo.Save(s));
#endregion
firstSetupRepo.Commit();
firstSetupRepo.BeginTransaction();
#region Heat
List<Heat> heats = new List<Heat>();
for(int i = 0; i < HEATCOUNT; i++)
{
heats.Add
(
new Heat ()
{
Number = RndString(8),
SteelGrade = RndString(6),
PlateManufacturer = plateManufacturers[rnd.Next(plateManufacturers.Length - 1)],
IsActive = true
}
);
firstSetupRepo.HeatRepo.Save(heats[i]);
}
#endregion
firstSetupRepo.Commit();
firstSetupRepo.BeginTransaction();
#region PurchaseOrder
List<PurchaseOrder> orders = new List<PurchaseOrder>
{
new PurchaseOrder {Number = RndString(5),Date = DateTime.Now.AddMonths(-rnd.Next(10)),IsActive=true},
new PurchaseOrder {Number = RndString(5),Date = DateTime.Now.AddMonths(-rnd.Next(10)),IsActive=true},
new PurchaseOrder {Number = RndString(5),Date = DateTime.Now.AddMonths(-rnd.Next(10)),IsActive=true},
new PurchaseOrder {Number = RndString(5),Date = DateTime.Now.AddMonths(-rnd.Next(10)),IsActive=true},
new PurchaseOrder {Number = RndString(5),Date = DateTime.Now.AddMonths(-rnd.Next(10)),IsActive=true}
};
orders.ForEach(s => firstSetupRepo.PurchaseRepo.Save(s));
#endregion
firstSetupRepo.Commit();
firstSetupRepo.BeginTransaction();
#region MillPipe
List<Pipe> pipes = new List<Pipe>();
for(int i = 0; i < PIPECOUNT; i++)
{
var plate = new Plate
{
Number = RndString(8),
Thickness = rnd.Next(2000),
Heat = heats[rnd.Next(heats.Count - 1)],
IsActive = true
};
firstSetupRepo.PlateRepo.Save(plate);
var pipe = new Pipe
{
Number = RndString(8),
Plate = plate,
Mill = viewModel.MillName,
Diameter = types[0].Diameter,
WallThickness = types[0].Thickness,
Type = types[rnd.Next(1)],
PurchaseOrder = orders[orders.Count - 1],
Project = viewModel.Project,
Status = PipeMillStatus.Produced,
ProductionDate = DateTime.Now.AddDays(-rnd.Next(20)),
IsActive = true
};
pipe.RecalculateWeight();
var results = new List<PipeTestResult>();
foreach(var item in tests.Where(x => x.pipeType == pipe.Type))
{
var testResult = new PipeTestResult
{
Operation = item,
Pipe = pipe,
Status = PipeTestResultStatus.Scheduled
};
results.Add(testResult);
firstSetupRepo.PipeTestResultRepo.Save(testResult);
}
pipe.PipeTestResult = results;
pipes.Add(pipe);
if(pipes.Count % 2 == 0)
{
foreach(var item in pipe.PipeTestResult)
{
item.Status = PipeTestResultStatus.Accepted;
if(item.Operation.Category.Type == FixedCategory.Length)
{
item.Value = PIPELENGHT.ToString();
}
}
pipe.Length = PIPELENGHT;
pipe.Status = PipeMillStatus.Stocked;
pipe.ConstructionStatus = PartConstructionStatus.Pending;
pipe.IsAvailableToJoint = true;
pipe.ToExport = true;
pipe.WallThickness = 12;
pipe.RecalculateWeight();
}
firstSetupRepo.PipeRepo.Save(pipe);
};
#endregion
firstSetupRepo.Commit();
firstSetupRepo.BeginTransaction();
#region Inspector
List<Inspector> inspectors = new List<Inspector>();
for(int i = 0; i < INSPECTORCOUNT; i++)
{
var insp = new Inspector
{
Name = new PersonName
{
FirstName = RndName(fNames),
LastName = RndName(lNames),
MiddleName = RndName(mNames),
},
IsActive = true
};
insp.Certificates = CreateInspectorCertificates(insp, inspetorCertTypes);
inspectors.Add(insp);
firstSetupRepo.InspectorRepo.Save(insp);
}
#endregion
firstSetupRepo.Commit();
firstSetupRepo.BeginTransaction();
#region Welder
List<Welder> welders = new List<Welder>();
for(int i = 0; i < WELDERCOUNT; i++)
{
var welder = new Welder
{
Grade = rnd.Next(6),
Name = new PersonName
{
FirstName = RndName(fNames),
LastName = RndName(lNames),
MiddleName = RndName(mNames),
},
Stamp = RndString(12),
Certificate = new Certificate
{
Number = RndString(14),
ExpirationDate = DateTime.Now.AddDays(rnd.Next(60)),
IsActive = true
},
IsActive = true
};
welders.Add(welder);
firstSetupRepo.WelderRepo.Save(welder);
}
#endregion
firstSetupRepo.Commit();
firstSetupRepo.BeginTransaction();
#region ComponentType
ComponentType[] componentTypes =
{
new ComponentType{Name = "Заглушка",ConnectorsCount = 1, IsActive = true},
new ComponentType{Name = "Переходник",ConnectorsCount = 2, IsActive = true},
new ComponentType{Name = "Т - Соединение",ConnectorsCount = 3, IsActive = true},
new ComponentType{Name = "Тройник",ConnectorsCount = 3, IsActive = true}
};
foreach(var item in componentTypes)
{
firstSetupRepo.ComponentTypeRepo.Save(item);
}
#endregion
firstSetupRepo.Commit();
firstSetupRepo.BeginTransaction();
#region Component
List<Domain.Entity.Construction.Component> components = new List<Domain.Entity.Construction.Component>();
foreach(var type in componentTypes)
{
for(int i = 0; i < COMPONENTCOUNT; i++)
{
var component = CreateComponent(type);
firstSetupRepo.ComponentRepo.Save(component);
components.Add(component);
}
}
#endregion
firstSetupRepo.Commit();
firstSetupRepo.BeginTransaction();
#region Release
List<Prizm.Domain.Entity.Mill.ReleaseNote> releases = new List<Prizm.Domain.Entity.Mill.ReleaseNote>();
for(int i = 0; i < RELEASECOUNT; i++)
{
Prizm.Domain.Entity.Mill.ReleaseNote release = new Prizm.Domain.Entity.Mill.ReleaseNote
{
Number = RndString(10),
Shipped = false,
Date = DateTime.Now.AddDays(-rnd.Next(10)),
IsActive = true
};
release.Railcars = CreateRailcars(rnd.Next(2, 5));
firstSetupRepo.ReleaseRepo.Save(release);
}
#endregion
firstSetupRepo.Commit();
return false;
}