66 messaggi dal 17 maggio 2011
Ciao a tutti,

Non so bene come gestire nel miglior modo possibile il return degli errori alla view.

Il mio controller in primo luogo richiama il metodo CheckRequestInstrument di _interventionService.

CheckRequestInstrument richiama GetRequestInstrument_UserInstrument dal repository che mi restituisce una lista di oggetti che contiene TipologiaStrumento e StrumentoInPossessoAlTecnico

Nel InterventionService devo fare due controlli:
se UserInstrument == null allora il tecnico non è in possesso dello strumento.
Al contrario richiamo il metodo IsValidInstrument del service Instrument che mi dice se lo strumento è valido (Se ha un certificato in corso di validita).

Quello che ho pensato è aggiungere queste stringhe di errore ad IList<String> che ritorna al controller, il quale li aggiunge al model state.
E' corretta questa cosa o ci sono metodi migliori per la gestione degli errori?

Controller
        public async Task<IActionResult> Execute(int id)
        {
            var strErr = await _interventionService.CheckRequestInstrument(GuidUser, id);
            if(strErr.Count != 0)
            {
                foreach (var err in strErr)
                    ModelState.AddModelError("",err);

            }
        }


InterventionService
        public async Task<IList<String>> CheckRequestInstrument(string GuidUser, int InterventionId)
        {
            var listStr = await _interventionRepository.GetRequestInstrument_UserInstrument(GuidUser, InterventionId);
            IList<string> Error = new List<string>();
            foreach (var ele in listStr)
            {
                if (ele.UserInstrument == null)
                {
                    Error.Add(_localizer["InstrumentRequired"] + ele.RequestType.Description);
                }
                else
                {
                    if (!_instrumentService.IsValidInstrument(ele.UserInstrument))
                    {
                        Error.Add(_localizer["InstrumentInvalid"] + ele.UserInstrument.Description + " " + ele.UserInstrument.Model);
                    }
                }

            }
            return Error;
        }

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.