[ProducesResponseType(404)] // Not found public async Task <IActionResult> Lit([FromQuery] KeyUidRnoNo2 keyDétail) { CarteUtilisateur carte = await _utilisateurService.CréeCarteUtilisateur(HttpContext.User); if (carte == null) { // fausse carte return(Forbid()); } bool estLeClient = await carte.EstActifEtAMêmeUidRno(AKeyUidRnoNo2.KeyUidRno_1(keyDétail).KeyParam); if (!estLeClient) { bool estFournisseur = await carte.EstActifEtAMêmeUidRno(AKeyUidRnoNo2.KeyUidRno_2(keyDétail).KeyParam); if (!estFournisseur) { return(Forbid()); } } DétailCommande détail = await _détailCommandeService.Lit(keyDétail.KeyParam); if (détail == null) { return(NotFound()); } DétailCommandeVue vue = _détailCommandeService.CréeVue(détail); return(Ok(vue)); }
public Vérificateur(DétailCommandes.DétailCommandeVue vueDétail, ParamsEditeDétail paramsDétail) { KeyClient = AKeyUidRnoNo2.KeyUidRno_1(vueDétail); KeyCommande = AKeyUidRnoNo2.KeyUidRnoNo_1(vueDétail); KeyDétail = new KeyUidRnoNo2(); KeyDétail.CopieKey(vueDétail.KeyParam); VueDétail = vueDétail; if (paramsDétail != null) { NoLivraison = paramsDétail.NoLivraison; DateCatalogue = paramsDétail.DateCatalogue; } }
[ProducesResponseType(409)] // Conflict public async Task <IActionResult> CopieDem([FromQuery] KeyUidRnoNo2 keyDétail) { Vérificateur vérificateur = new Vérificateur(keyDétail); await vérificateur.Vérifie( ClientDeLAction, UtilisateurEstFournisseur, DétailExiste, ALivrerModifiable ); if (vérificateur.Erreur != null) { return(vérificateur.Erreur); } RetourDeService retour = await _service.CopieDemandes(vérificateur.Site, keyDétail); if (retour == null) { return(RésultatBadRequest("RienACopier")); } return(SaveChangesActionResult(retour)); }
/// <summary> /// Copie Demande dans AServir pour le DétailCommande si la demande est copiable /// </summary> /// <param name="site"></param> /// <param name="keyDétail"></param> /// <returns>null si le détail n'est pas copiable</returns> public async Task <RetourDeService> CopieDemandes(Site site, KeyUidRnoNo2 keyDétail) { return(await CopieDemandes(site, filtreClient : null, filtreProduit : null, filtreDétail : d => d.AMêmeKey(keyDétail))); }