public async Task <ActionResult <IEnumerable <Evaluation> > > PostEvaluation([FromBody] EvaluationCreate evaluation) { var response = await _evaluation.AddEvaluation(evaluation); if (!response) { return(NotFound()); } return(RedirectToRoute("GetEvaluations")); }
public async Task <bool> AddEvaluation(EvaluationCreate evaluationCreate) { try { var evaluation = _mapper.Map <EvaluationCreate, Evaluation>(evaluationCreate); var evaluationAdd = _mapper.Map <Evaluation, EvaluationAdd>(evaluation); var response = await _evaluation.PostEvaluationAsync(evaluationAdd); if (!response.Signal) { return(false); } var evaluations = await _evaluation.GetAllEvaluationsAsync(new EvaluationEmpty()); var evaluationNew = evaluations.Evaluations.SingleOrDefault((e) => e.User.Id == evaluation.User.Id && e.Series.Id == evaluation.Series.Id); if (evaluationNew is null) { return(false); } List <MarkAdd> marks = new List <MarkAdd>(); evaluationCreate.Marks.ForEach((mark) => { var markAdd = _mapper.Map <MarkCreate, MarkAdd>(mark); markAdd.Evaluation = evaluationNew; marks.Add(markAdd); }); var response2 = await _evaluation.PostMarksAsync(new MarksResponse() { Marks = { marks } }); return(response2.Signal); } catch (Exception e) { _logger.LogError(e, "ERROR"); return(false); } }