/// <summary>
 /// Supprime un parking
 /// </summary>
 public void Delete()
 {
     if (this.Id != Guid.Empty)
     {
         ServiceParking.Delete(this.Metier);
     }
 }
        // GET: Evenements/Details/5
        public ActionResult Details(int?id)
        {
            Evenement      evenement;
            List <Parking> parkings;

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            evenement = ServiceEvenement.GetOneEvenement(id);
            if (evenement == null)
            {
                return(HttpNotFound());
            }

            //liste de l'ensemble des parkings
            parkings = ServiceParking.GetListEventCarpark(evenement);

            //liste des parkings selectionnés selon filtre
            parkings = ServiceParking.SelectNearestCarPark(evenement, parkings, FREE);

            parkings = ServiceParking.FindAdress(parkings);

            //ajouter la liste de tous les parkings à l'évément
            evenement.Parkings = parkings;

            return(View(evenement));
        }
        /// <summary>
        /// Recupere un parking par son id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static Parking GetById(Guid id)
        {
            Parking parking = null;

            using (ParkingContext context = new ParkingContext())
            {
                parking = ServiceParking.GetById(id, context);
                //Parking = context.Parkings.FirstOrDefault(l => l.Id == id);
            }
            return(parking);
        }
 /// <summary>
 /// Enregistre ou met a jour un parking
 /// </summary>
 public void Save()
 {
     if (this.Id == Guid.Empty)
     {
         this.Metier.Id = Guid.NewGuid();
         ServiceParking.Insert(this.Metier);
     }
     else
     {
         ServiceParking.Update(this.Metier);
     }
 }
        public static void AddtoBase()
        {
            List <Parking> parkingToAdd = new List <Parking>();

            //recupere les parkings
            using (ParkingContext context = new ParkingContext())
            {
                using (WebClient wc = new WebClient())
                {
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://data.citedia.com/r1/parks/timetable-and-prices");

                    StreamReader reader;

                    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                    {
                        reader = new StreamReader(response.GetResponseStream());
                        List <string[]> csvfile = new List <string[]>();// = reader.ReadToEnd();
                        string          line;
                        while ((line = reader.ReadLine()) != null)
                        {
                            csvfile.Add(Regex.Matches(line, @"[\""].+?[\""]|[^;]+").Cast <Match>().Select(m => m.Value).ToArray());
                        }
                        reader.Close();


                        int count = 0;
                        foreach (string[] stringtab in csvfile)
                        {
                            if (count != 0)
                            {
                                var     json = wc.DownloadString("http://data.citedia.com/r1/parks/" + stringtab[0]);
                                dynamic data = JsonConvert.DeserializeObject <ParkInformation>(json);

                                Adresse adresse = new Adresse(Guid.NewGuid(), stringtab[3], 0, 35000, "rennes", "france", true);
                                Parking parking = new Parking(Guid.NewGuid(), RemoveDiacritics(stringtab[0]), adresse, data.max, data.free, RemoveDiacritics(stringtab[2]), RemoveDiacritics(stringtab[1]), data.status);

                                ServiceAdresse.Insert(adresse, context);
                                ServiceParking.Insert(parking, context);

                                //Suppression des anciennes données
                                ServiceParking.DeleteAll();
                                ServiceAdresse.DeleteParking();

                                parkingToAdd.Add(parking);
                            }
                            count++;
                        }
                    }
                    context.Parkings.AddRange(parkingToAdd);
                    context.SaveChanges();
                }
            }
        }
        public static EvenementParkingViewModel Get3ParkingByEvent(Guid id, string adresseConvive)
        {
            EvenementParkingViewModel epvm = new EvenementParkingViewModel();

            //ParkingViewModel.AddtoBase();
            using (ParkingContext context = new ParkingContext())
            {
                epvm.Evenement      = ServiceEvenement.GetByGuid(id);
                epvm.Parkings       = ServiceParking.Get3(id);
                epvm.AdresseConvive = adresseConvive;
            }
            return(epvm);
        }
        internal static List <ParkingViewModel> Get3(Guid id)
        {
            List <ParkingViewModel> listParkings = new List <ParkingViewModel>();

            //listLivres = Dal.Get

            using (ParkingContext context = new ParkingContext())
            {
                List <Parking> parkings = ServiceParking.Get3(id);
                foreach (Parking parking in parkings)
                {
                    listParkings.Add(new ParkingViewModel(parking));
                }
            }
            return(listParkings);
        }