Esempio n. 1
0
        [ProducesResponseType(409)] // Conflict
        public async Task <IActionResult> Termine([FromQuery] uint idSite)
        {
            CarteUtilisateur carteUtilisateur = await CréeCarteFournisseur(idSite, EtatsRolePermis.Actif);

            if (carteUtilisateur.Erreur != null)
            {
                return(carteUtilisateur.Erreur);
            }

            Site site = carteUtilisateur.Fournisseur.Site;

            if (!site.Ouvert)
            {
                return(RésultatBadRequest("Ouverture incorrecte"));
            }

            // impossible de quitter l'état Catalogue si le site n'a pas de produits
            int produits = await _utile.NbDisponibles(site.Id);

            if (produits == 0)
            {
                return(RésultatBadRequest("catalogueVide"));
            }
            DateTime maintenant = DateTime.Now;
            bool     modifié    = await _service.ArchiveModifications(site, maintenant);

            DateTime?dateCatalogue = null;

            if (modifié)
            {
                dateCatalogue = maintenant;
            }
            RetourDeService <ArchiveSite> retour = await _siteService.TermineEtatCatalogue(site, dateCatalogue);

            if (retour.Ok)
            {
                return(RésultatCréé(new ContexteCatalogue(site)));
            }
            return(SaveChangesActionResult(retour));
        }