Exemple #1
0
        public static EdizioneCorso ToEdizioneCorso(this EdizioneCorsoDTO edizioneCorsoDTO)
        {
            if (edizioneCorsoDTO == null)
            {
                return(null);
            }

            return(new EdizioneCorso
            {
                IdEdizioneCorso = edizioneCorsoDTO.IdEdizioneCorso,
                IdCorso = edizioneCorsoDTO.IdCorso,
                DataInizio = edizioneCorsoDTO.DataInizio
            });
        }
Exemple #2
0
        public IActionResult Post([FromBody] EdizioneCorsoDTO edizioneCorsoDTO)
        {
            if (edizioneCorsoDTO == null)
            {
                return(BadRequest());
            }

            EdizioneCorso edizioneCorso = edizioneCorsoDTO.ToEdizioneCorso();

            //work.Begin();
            //work.EdizioniCorsiRepo.Add(edizioneCorso);
            //work.Save();
            //work.End();

            try
            {
                work.AddEdizioneCorso(edizioneCorso);
            }
            catch (BusinessLogicException e)
            {
                return(BadRequest(e));
            }


            //N.B.: il tipo anonimo che viene passato a CreatedAtRoute(,,) come secondo parametro "routeValues:"
            //      deve avere un campo che si chiama COME IL PARAMETRO della Route passatagli come primo argomento.
            //          (In questo caso come routeName: gli passiamo "GetEdizioneCorso", e quindi il campo del tipo anonimo
            //           che gli passiamo come routeValues: deve chiamarsi idEdizioneCorso)
            //
            //      In caso contrario, SEBBENE METTENDO UN BREAKPOINT SU return risposta; il valore di "risposta" sembri essere corretto,
            //      Postman riceve uno status 500 (Internal Server Error) e la pagina di errore html inizia con le seguenti tre righe:
            //      « An unhandled exception occurred while processing the request.
            //        InvalidOperationException: No route matches the supplied values.
            //        Microsoft.AspNetCore.Mvc.CreatedAtRouteResult.OnFormatting(ActionContext context) »
            var risposta = CreatedAtRoute(routeName: "GetEdizioneCorso",
                                          routeValues: new { idEdizioneCorso = edizioneCorso.IdEdizioneCorso },
                                          value: edizioneCorso.ToDTO());

            return(risposta);
        }