Ejemplo n.º 1
0
        public async Task <GetResultatResource> Update(int idResultat, int idResultatUnite, int idResultatMatiere, SetResultatMatiereResource resultatMatiereResource)
        {
            var resultat = await _repositoryResultat.GetByIdFull(idResultat);

            if (resultat == null)
            {
                return(_mapper.Map <Resultat, GetResultatResource>(resultat));
            }

            var resultatunite   = resultat.ResultatUnites.SingleOrDefault(ru => ru.Id == idResultatUnite);
            var resultatMatiere = resultatunite.ResultatMatieres.SingleOrDefault(rm => rm.Id == idResultatMatiere);

            //ResultatMatiereUpdate
            resultatMatiereResource.MoyenneMatiere = ((resultatMatiereResource.NoteExamen * 2) + resultatMatiereResource.NoteControl) / 3;
            resultatMatiereResource.TotalMatiere   = resultatMatiereResource.MoyenneMatiere * resultatMatiere.Matiere.Coefficient;

            if (resultatMatiereResource.MoyenneMatiere >= 10)
            {
                resultatMatiereResource.CreditMatiere = resultatMatiere.Matiere.Credit;
                resultatMatiereResource.Acquit        = true;
            }

            _mapper.Map <SetResultatMatiereResource, ResultatMatiere>(resultatMatiereResource, resultatMatiere);


            //ResultatUniteUpdate
            resultatunite.TotalUnite  += resultatMatiere.TotalMatiere;
            resultatunite.MoyenneUnite = resultatunite.TotalUnite / resultatunite.TotalCoff;
            resultatunite.CreditUnite += resultatMatiere.CreditMatiere;

            if (resultatunite.MoyenneUnite >= 10)
            {
                resultatunite.Acquit = true;
            }

            //ResultatGlobalUpdate
            resultat.Total       += resultatunite.TotalUnite;
            resultat.MoyenneFinal = resultat.Total / resultat.TotalCoff;
            resultat.TotalCredit += resultatunite.CreditUnite;

            if (resultat.MoyenneFinal >= 10)
            {
                resultat.Acquit = true;
            }

            resultat.LastUpdate = DateTime.Now;

            await _unitOfWork.CompleteAsync();

            return(_mapper.Map <Resultat, GetResultatResource>(resultat));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> UpdateResultat(int idResultat, int idResultatUnite, int idResultatMatiere, [FromBody] SetResultatMatiereResource resultatMatiereResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            return(Ok(await _appService.Update(idResultat, idResultatUnite, idResultatMatiere, resultatMatiereResource)));
        }