예제 #1
0
        [ProducesResponseType(404)] // Not found
        public async Task <IActionResult> ListeC([FromQuery] KeyUidRno keyClient)
        {
            CarteUtilisateur carte = await _utilisateurService.CréeCarteUtilisateur(HttpContext.User);

            if (carte == null)
            {
                // fausse carte
                return(Forbid());
            }

            Site site = await _utile.SiteDeClient(keyClient);

            if (site == null)
            {
                return(NotFound());
            }

            if (!carte.EstClient(site))
            {
                return(Forbid());
            }

            Documents documents = await _service.ListeC(site, keyClient);

            return(Ok(documents));
        }
예제 #2
0
        private async Task <IActionResult> Document(KeyUidRnoNo keyDocument, Func <Site, KeyUidRnoNo, Task <AKeyUidRnoNo> > litDocument)
        {
            CarteUtilisateur carte = await _utilisateurService.CréeCarteUtilisateur(HttpContext.User);

            if (carte == null)
            {
                // fausse carte
                return(Forbid());
            }

            KeyUidRno keyClient = new KeyUidRno
            {
                Uid = keyDocument.Uid,
                Rno = keyDocument.Rno
            };

            Site site = await _utile.SiteDeClient(keyClient);

            if (site == null)
            {
                return(NotFound());
            }

            if (!await carte.EstActifEtAMêmeUidRno(site.KeyParam))
            {
                // l'utilisateur n'est pas le fournisseur
                if (!carte.EstClient(site))
                {
                    return(Forbid());
                }
            }

            AKeyUidRnoNo document = await litDocument(site, keyDocument);

            if (document == null)
            {
                return(NotFound());
            }

            return(Ok(document));
        }