public IQueryable <CandidatureDto> GetCandidatures(Guid id) { var assessment = Db.Assessments.SingleOrDefault(x => x.Id == id); var userService = new UserInfoService(); var result = new List <CandidatureDto>(); foreach (var candidature in assessment.Candidatures) { var user = userService.GetUser(candidature.UserId); var c = new CandidatureDto { Id = candidature.Id, FirstName = user != null ? user.FirstName : "", LastName = user != null ? user.LastName : "Kein Benutzerkonto", Motivation = candidature.Motivation, Characteristics = candidature.Characteristics, ProfileImgId = user != null && user.BinaryData != null ? candidature.Id : Guid.Empty, Stages = new List <StageDto>() }; // die stages foreach (var stage in assessment.Stages.OrderBy(x => x.OpeningDateTime)) { // es kann auch sein, dass jemand mehrere Stufen angelegt hat var candStages = candidature.Stages.Where(x => x.AssessmentStage.Id == stage.Id).ToList(); foreach (var candStage in candStages) { var cs = new StageDto { Name = stage.Name, Material = new List <MaterialDto>() }; foreach (var material in candStage.Material) { var cm = new MaterialDto(); cm.Id = material.Id; cs.Material.Add(cm); } c.Stages.Add(cs); } } result.Add(c); } return(result.AsQueryable()); }
public MaterialDto GetMaterialDesc(Guid id) { var material = Db.CandidatureStageMaterial.SingleOrDefault(x => x.Id == id); var cm = new MaterialDto(); if (material.Storage != null) { cm.Description = material.Storage.Description; cm.Title = material.Storage.Name; cm.Created = material.Storage.Created?.ToString("s"); } else { cm.Title = "Kein Bild vorhanden"; } return(cm); }