добавлены стили, мелкие правки

оценка почти но никак
This commit is contained in:
2024-12-13 04:12:54 +04:00
parent 76c13d303a
commit fd31ade855
36 changed files with 860 additions and 390 deletions

View File

@@ -15,10 +15,10 @@ namespace CandidateReviewDatabaseImplement.Implements
using var context = new CandidateReviewDatabase();
var element = context.Assessments
.Include(x => x.User)
.Include(x => x.Resume)
.Include(x => x.Criterions)
.ThenInclude(x => x.Criterion)
.Include(x => x.Criterions)
.ThenInclude(x => x.Criterion)
.Include(x => x.User)
.Include(x => x.Resume)
.FirstOrDefault(rec => rec.Id == model.Id);
if (element != null)
@@ -62,21 +62,6 @@ namespace CandidateReviewDatabaseImplement.Implements
?.GetViewModel;
}
public List<AssessmentCriterionViewModel>? GetAssessmentCriterions(int? assessmentId)
{
if (!assessmentId.HasValue)
{
return null;
}
using var context = new CandidateReviewDatabase();
return context.AssessmentCriterions
.Where(x => x.AssessmentId == assessmentId)
.ToList()
.Select(x => x.GetViewModel)
.ToList();
}
public List<AssessmentViewModel> GetFilteredList(AssessmentSearchModel model)
{
if (model is null)
@@ -123,26 +108,15 @@ namespace CandidateReviewDatabaseImplement.Implements
{
using var context = new CandidateReviewDatabase();
var newAssessment = new Assessment
var newAssessment = Assessment.Create(context, model);
if (newAssessment == null)
{
ResumeId = model.ResumeId,
UserId = model.UserId,
Comment = model.Comment
};
return null;
}
context.Assessments.Add(newAssessment);
context.SaveChanges();
/*var criterionsToAdd = model.AssessmentCriterions.Select(x => new AssessmentCriterion
{
AssessmentId = newAssessment.Id,
Criterion = context.Criterions.First(y => y.Id == x.Key),
Value = x.Value.Item2
}).ToList();
context.AssessmentCriterions.AddRange(criterionsToAdd);
context.SaveChanges();*/
return newAssessment.Id;
}

View File

@@ -71,6 +71,15 @@ namespace CandidateReviewDatabaseImplement.Implements
.Select(x => x.GetViewModel)
.ToList();
}
if (model.CompanyId.HasValue)
{
return context.Vacancies
.Include(x => x.Company)
.Where(x => x.CompanyId == model.CompanyId)
.ToList()
.Select(x => x.GetViewModel)
.ToList();
}
if (!string.IsNullOrEmpty(model.Tags) && model.Status.HasValue)
{
var tags = model.Tags.Split(' ', StringSplitOptions.RemoveEmptyEntries).Select(t => t.ToLowerInvariant()).ToArray();

View File

@@ -18,9 +18,9 @@ namespace CandidateReviewDatabaseImplement.Models
public virtual User User { get; set; }
public virtual Resume Resume { get; set; }
private Dictionary<int, (ICriterionModel, int)>? _assessmentCriterions = null;
private Dictionary<int, (CriterionModel, int)>? _assessmentCriterions = null;
public Dictionary<int, (ICriterionModel, int)> AssessmentCriterions
public Dictionary<int, (CriterionModel, int)> AssessmentCriterions
{
get
{
@@ -28,7 +28,7 @@ namespace CandidateReviewDatabaseImplement.Models
{
_assessmentCriterions = Criterions
.ToDictionary(recAC => recAC.CriterionId, recAC =>
(recAC.Criterion as ICriterionModel, recAC.Value));
(new CriterionModel { Id = recAC.Criterion.Id, Name = recAC.Criterion.Name }, recAC.Value));
}
return _assessmentCriterions;
}
@@ -37,22 +37,20 @@ namespace CandidateReviewDatabaseImplement.Models
[ForeignKey("AssessmentId")]
public virtual List<AssessmentCriterion> Criterions { get; set; } = new();
public static Assessment? Create(CandidateReviewDatabase context, AssessmentBindingModel model)
public static Assessment Create(CandidateReviewDatabase context, AssessmentBindingModel model)
{
if (model == null)
{
return null;
}
var assessment = new Assessment
return new Assessment()
{
Id = model.Id,
ResumeId = model.ResumeId,
UserId = model.UserId,
Comment = model.Comment,
Criterions = model.AssessmentCriterions.Select(x => new AssessmentCriterion
{
Assessment = context.Assessments.First(y => y.Id == x.Key),
Value = x.Value.Item2
}).ToList()
};
return assessment;
}
public void Update(AssessmentBindingModel model)
@@ -66,15 +64,6 @@ namespace CandidateReviewDatabaseImplement.Models
Comment = model.Comment;
}
private List<AssessmentCriterionViewModel> GetAssessmentCriterionsAsViewModel()
{
return AssessmentCriterions.Select(ac => new AssessmentCriterionViewModel
{
CriterionId = ac.Key,
Value = ac.Value.Item2,
}).ToList();
}
public AssessmentViewModel GetViewModel => new()
{
@@ -82,7 +71,7 @@ namespace CandidateReviewDatabaseImplement.Models
ResumeId = ResumeId,
UserId = UserId,
Comment = Comment,
AssessmentCriterions = GetAssessmentCriterionsAsViewModel()
AssessmentCriterions = AssessmentCriterions
};
public void UpdateCriterions(CandidateReviewDatabase context, AssessmentBindingModel model)
@@ -102,14 +91,20 @@ namespace CandidateReviewDatabaseImplement.Models
var assessment = context.Assessments.First(x => x.Id == Id);
foreach (var ac in model.AssessmentCriterions)
{
var criterion = context.Criterions.First(x => x.Id == ac.Value.Item1.Id);
if (criterion == null)
{
throw new Exception($"Критерий с ID {ac.Key} не найден.");
}
context.AssessmentCriterions.Add(new AssessmentCriterion
{
Assessment = assessment,
Criterion = context.Criterions.First(x => x.Id == ac.Key),
Criterion = criterion,
Value = ac.Value.Item2
});
context.SaveChanges();
}
context.SaveChanges();
_assessmentCriterions = null;
}
}

View File

@@ -14,13 +14,5 @@ namespace CandidateReviewDatabaseImplement.Models
public int Value { get; set; }
public virtual Assessment Assessment { get; set; } = new();
public virtual Criterion Criterion { get; set; } = new();
public AssessmentCriterionViewModel GetViewModel => new()
{
Id = Id,
AssessmentId = AssessmentId,
CriterionId = CriterionId,
Value = Value
};
}
}