public static void EnsureSeedData(this A1ServicesAppDbContext ctx) { var jobMaterialLinks = ProcessServiceMaterialsLinkFile("D:\\Projects\\A1ServicesApp\\A1ServicesApp\\Features\\JobServiceMaterialLinks\\ServiceMaterialsLinks.csv"); var servicesList = ProcessServicesFile("D:\\Projects\\A1ServicesApp\\A1ServicesApp\\Features\\JobServiceMaterialLinks\\ServicesBook.csv"); var materialsList = ProcessMaterialsFile("D:\\Projects\\A1ServicesApp\\A1ServicesApp\\Features\\JobServiceMaterialLinks\\MaterialsBook.csv"); var jobServiceMaterialLinks = new List <JobServiceMaterialLink>(); if (ctx.JobServiceMaterialLinks.Any()) { return; } ctx.JobMaterials.AddRange(materialsList); ctx.JobServices.AddRange(servicesList); ctx.SaveChanges(); var jobMaterialLinksGroups = jobMaterialLinks.GroupBy(j => j.ServiceId).ToList(); foreach (var link in jobMaterialLinksGroups) { var service = ctx.JobServices.Where(s => s.ServiceId == link.Key).FirstOrDefault(); var newJobServiceMaterialLink = new JobServiceMaterialLink() { ServiceId = service.ServiceId, ServiceCode = service.Code, Active = 1, MaterialLists = new List <MaterialList>() }; foreach (var matList in link) { var newMaterialList = new MaterialList() { Type = "All", Name = matList.MaterialCode + " - " + link.Key + " - " + "Links" }; var material = ctx.JobMaterials.Where(j => j.MaterialId == matList.MaterialId).FirstOrDefault(); var materialListItem = new MaterialListItem() { JobMaterialId = material.Id, JobMaterial = material, MaterialId = material.MaterialId }; newMaterialList.MaterialListItems.Add(materialListItem); newJobServiceMaterialLink.MaterialLists.Add(newMaterialList); } jobServiceMaterialLinks.Add(newJobServiceMaterialLink); } ctx.JobServiceMaterialLinks.AddRange(jobServiceMaterialLinks); ctx.SaveChanges(); }
private IMaterialValidator ConvertToAllMaterialValidators(MaterialList list, JobServiceMaterialLink link) { var validator = (IMaterialValidator) new AllMaterialValidator() { ServiceCode = link.ServiceCode, ServiceId = link.ServiceId, State = new Valid(), MaterialLists = new List <MaterialList>() { new MaterialList(list) } }; return(validator); }
public Task <JobServiceMaterialLinkDto> Handle(CreateNewJobServiceMaterialLinkCommand request, CancellationToken cancellationToken) { var jobService = _ctx.JobServices.Where(s => s.ServiceId == request.ServiceId).FirstOrDefault(); var materialLists = request.MaterialLists.ToList(); var jobMaterials = new List <JobMaterial>(); var newMaterialLists = new List <MaterialList>(); foreach (var list in request.MaterialLists) { var allMaterialListItems = new List <MaterialListItem>(); foreach (var m in list.MaterialListItems) { var material = _ctx.JobMaterials.Where(jm => jm.MaterialId == m.MaterialId).FirstOrDefault(); var newMaterialListItem = new MaterialListItem() { MaterialId = material.MaterialId, JobMaterialId = material.Id }; allMaterialListItems.Add(newMaterialListItem); } list.MaterialListItems = allMaterialListItems; newMaterialLists.Add(list); } var newJobServiceMaterialLink = new JobServiceMaterialLink() { Active = request.Active, Name = request.Name, ServiceId = request.ServiceId, ServiceCode = jobService.Code, MaterialLists = newMaterialLists }; _ctx.JobServiceMaterialLinks.Add(newJobServiceMaterialLink); _ctx.SaveChanges(); return(Task.FromResult <JobServiceMaterialLinkDto>(_mapper.Map <JobServiceMaterialLinkDto>(newJobServiceMaterialLink))); }