示例#1
0
        public List <Models.Ville> GetListeVille()
        {
            SqlConnection sqlConnection = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;Initial Catalog=Frais;Integrated Security=True");

            SqlCommand    cmd = new SqlCommand();
            SqlDataReader reader;

            cmd.CommandText = "GetListVille";
            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.Connection  = sqlConnection;


            sqlConnection.Open();

            reader = cmd.ExecuteReader();

            List <Models.Ville> result = new List <Models.Ville>();

            while (reader.Read())
            {
                Models.Ville item = new Models.Ville()
                {
                    Nom = reader["nom"].ToString(),
                };

                result.Add(item);
            }



            return(result);
        }
        /// <summary>
        /// Créer un événement
        /// </summary>
        /// <param name="e">Le model de la vue de création événement</param>
        /// <param name="files">Le </param>
        /// <param name="user"></param>
        /// <returns></returns>
        public async Task <int> CreerEvenement(CreationEvenementViewModel e, ICollection <IFormFile> files, ApplicationUser user)
        {
            //Creer l'evenement
            Evenement ev = new Evenement();

            ev.Nom              = e.Nom;
            ev.Description      = e.Description;
            ev.Public           = e.Public;
            ev.DateLimite       = e.DateLimite;
            ev.HeureDebut       = e.HeureDebut;
            ev.BilletNecessaire = e.BilletNecessaire;
            ev.PrixBillet       = e.PrixBillet;
            ev.Debut            = e.Debut;
            ev.Fin              = e.Fin;
            ev.Categorie        = _db.Categories.Where(a => a.Nom == e.Categorie).FirstOrDefault();
            ev.AgeMinimum       = e.AgeMinimum;
            if (e.Duree != null)
            {
                ev.Duree = e.Duree;
            }

            Adresse ad = new Adresse();

            if (e.AdresseComplete != null)
            {
                ad.Ad = e.AdresseComplete;
                if (e.Ville != null)
                {
                    string ville = e.Ville;
                    if (_db.Villes.Where(a => a.Nom == ville).FirstOrDefault() != null)
                    {
                        ad.Ville = _db.Villes.Where(a => a.Nom == ville).FirstOrDefault();
                    }
                    else
                    {
                        Ville vi = new Models.Ville();
                        vi.Nom = ville;
                        _db.Villes.Add(vi);
                        _db.SaveChanges();
                        ad.Ville = vi;
                    }
                }
            }
            if (ad != null)
            {
                ev.Endroit = ad;
            }

            var uploads = Path.Combine(_environment.WebRootPath, "uploads");

            //todo :  ajouter le dossier du user au path et changer le nom de l'image! verifier si elle existe -> remplace ou renomme?
            foreach (var file in files)
            {
                if (file.Length > 0)
                {
                    //string nfilename = file.FileName + _db.Users.Where(a => a.Id.ToString() == user).Select(a=> a.UserName);
                    using (var fileStream = new FileStream(Path.Combine(uploads, file.FileName), FileMode.Create))
                    {
                        await file.CopyToAsync(fileStream);

                        ev.CheminPhoto = "/uploads/" + file.FileName;
                    }
                }
            }
            _db.Evenements.Add(ev);
            _db.SaveChanges();
            //Ajoute le créateur comme participant de role Createur, donc il peux éditer l'événement.
            Participation part = new Participation();

            part.Evenement          = _db.Evenements.Include(a => a.Endroit.Ville).Where(a => a.id == ev.id).First();
            part.NombreParticipants = 1;
            part.Participant        = user;
            part.Role = Role.Createur;

            _db.Participations.Add(part);
            _db.SaveChanges();
            return(_db.Evenements.Where(a => a.id == ev.id).Select(a => a.id).First());
        }