// GET: /Adres/Create
 public ActionResult Create(long? id, KomuAdres komu)
 {
     if (Session["Auth"] != null)
     {
         if (Session["Auth"].ToString() == "Recepcjonista" || Session["Auth"].ToString() == "Administrator")
         {
             if (id != null)
             {
                 switch (komu)
                 {
                     case KomuAdres.Osoba:
                         Osoba osoba = db.Osoby.Find(id);
                         ViewBag.Osoba = osoba;
                         komuPrzypisac = komu;
                         break;
                     case KomuAdres.Silownia:
                         Silownia.Models.Silownia silownia = db.Silownie.Find(id);
                         ViewBag.Silownia = silownia;
                         komuPrzypisac = komu;
                         break;
                 }
             }
             return View();
         }
     }
       return HttpNotFound();
 }
        public ActionResult Create([Bind(Include = "AdresID,KodPocztowy,Kraj,Miasto,Ulica,NrBudynku,NrLokalu")] Adres adres, long? id, KomuAdres komu)
        {
            if (Session["Auth"] != null)
            {
                if (Session["Auth"].ToString() == "Recepcjonista" || Session["Auth"].ToString() == "Administrator")
                {
                    object redirectTo = null;
                    if (ModelState.IsValid)
                    {
                        switch (komu)
                        {
                            case KomuAdres.Osoba:
                                Osoba osoba = db.Osoby.Find(id);
                                redirectTo = osoba.GetType().BaseType.Name;
                                osoba.Adres = adres;
                                //Google Maps
                                var locationServiceO = new GoogleLocationService();
                                AddressData adrO = new AddressData();
                                adrO.Country = adres.Kraj;
                                adrO.City = adres.Miasto;
                                adrO.Zip = adres.KodPocztowy;
                                adrO.Address = adres.Ulica + " " + adres.NrBudynku + " " + adres.NrLokalu;
                                var pointO = locationServiceO.GetLatLongFromAddress(adrO);
                                osoba.Szerokosc = pointO.Longitude;
                                osoba.Dlugosc = pointO.Latitude;
                                redirectTo = osoba.GetType().BaseType.Name;

                                //adres.Osoba = osoba;
                                break;
                            case KomuAdres.Silownia:
                                Silownia.Models.Silownia silownia = db.Silownie.Find(id);
                                silownia.Adres = adres;
                                var locationServiceS = new GoogleLocationService();
                                AddressData adrS = new AddressData();
                                adrS.Country = adres.Kraj;
                                adrS.City = adres.Miasto;
                                adrS.Zip = adres.KodPocztowy;
                                adrS.Address = adres.Ulica + " " + adres.NrBudynku + " " + adres.NrLokalu;
                                var pointS = locationServiceS.GetLatLongFromAddress(adrS);
                                silownia.Szerokosc = pointS.Longitude;
                                silownia.Dlugosc = pointS.Latitude;
                                redirectTo = silownia.GetType().BaseType.Name;
                                break;
                        }
                        db.Adresy.Add(adres);
                        db.SaveChanges();
                        return RedirectToAction("Index", redirectTo.ToString());
                    }

                    return View(adres);
                }
            }
               return HttpNotFound();
        }