public ActionResult Create(AutaBaza autaBaza, FormCollection collection)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    autaBazaRepository.Add(autaBaza);
                    autaBazaRepository.Save();

                    return(RedirectToAction("Create", "Samochod"));
                }
                catch
                {
                    return(PartialView("Create", autaBaza));
                }
            }
            else
            {
                return(PartialView("Create", autaBaza));
            }
        }
Exemple #2
0
        public ActionResult PopulateAutaBaza(FormCollection collection, HttpPostedFileBase file)
        {
            AutaBazaRepository autaBazaRepository = new AutaBazaRepository();
            string             extension          = Path.GetExtension(file.FileName);
            List <string>      ErrorObjects       = new List <string>();
            List <AutaBaza>    Objects            = new List <AutaBaza>();

            if (Path.GetExtension(file.FileName).ToLower() == ".json" && file != null)
            {
                try
                {
                    List <string>      rows   = new List <string>();
                    StreamReader       reader = new StreamReader(file.InputStream);
                    string             record = reader.ReadToEnd();
                    List <AutaBazaDTO> ABD    = JsonConvert.DeserializeObject <List <AutaBazaDTO> >(record);
                    foreach (var row in ABD)
                    {
                        foreach (var item in row.models)
                        {
                            AutaBaza Auto = new AutaBaza();
                            Auto.Marka = row.brand;
                            Auto.Model = item;

                            if (autaBazaRepository.GetRecordByMakeModel(Auto.Marka, Auto.Model).Count() == 0) //Przeszukiwanie bazy czy nie ma już takiego rekordu
                            {
                                Objects.Add(Auto);
                            }
                            else
                            {
                                ErrorObjects.Add("Rekord : " + Auto.Marka + ", " + Auto.Model + " figuruje już w bazie danych!");
                            }
                        }
                    }
                    if (Objects.Count() > 0)
                    {
                        foreach (var item in Objects)
                        {
                            if (ModelState.IsValid)
                            {
                                autaBazaRepository.Add(item);
                                autaBazaRepository.Save();
                            }
                            else
                            {
                                TempData["errorMessage"] = "Wystąpił błąd przy dodawaniu samochodu " + item.Marka + " " + item.Model + "; ModelState.IsValid==false!";
                                return(RedirectToAction("Index", "Samochod"));
                            }
                        }

                        TempData["okMessage"] = "Dodano samochody (" + Objects.Count() + ")";
                        if (ErrorObjects.Count > 0)
                        {
                            TempData["okMessage"] += "Pominięto samochody (" + ErrorObjects.Count() + ")";
                        }
                        return(RedirectToAction("Index", "Samochod"));
                    }
                    else
                    {
                        TempData["errorMessage"] = "Nie dodano żadnych samochodów!";
                        return(RedirectToAction("Index", "Samochod"));
                    }
                }
                catch (Exception e)
                {
                    TempData["errorMessage"] = "Wystąpił błąd : " + e;
                    return(RedirectToAction("Index", "Samochod"));
                }
            }
            else
            {
                TempData["errorMessage"] = "Proszę używać tylko plików o formacie .json!";
                return(RedirectToAction("Index", "Samochod"));
            }
        }