public IActionResult Promijeni(string id, string ime, string prezime, string email, string sifra, string ponovljenaSifra)
        {
            DbKorisnik k = context.Korisnik.Where(o => o.DbKorisnikID.Equals(Int32.Parse(id))).First();
            DbClan     c = context.Clan.Where(o => o.DbClanID.Equals(Int32.Parse(id))).First();

            prijavljeniClan = new Clan(k, c);
            if (ime == null || prezime == null || sifra == null || ponovljenaSifra == null || email == null)
            {
                string poruka = "Potrebno je popuniti sva polja!";
                ViewBag.Podaci = poruka;
                return(View());
            }

            if (!ponovljenaSifra.Equals(sifra))
            {
                string poruka = "Šifre nisu jednake!";
                ViewBag.Podaci = poruka;
                return(View());
            }


            var korisnici = context.Korisnik.Where(o => o.EMail.Equals(email));

            if (korisnici.Count() != 0 && email != prijavljeniClan.EMail)
            {
                string poruka = "Već postoji račun sa navedenom email adresom!";
                ViewBag.Podaci = poruka;
                return(View());
            }
            System.Diagnostics.Debug.WriteLine(prijavljeniClan.Ime + " - " + ime);
            Teretana.getInstance().promijeniAtributeKorisnika(Int32.Parse(id), new Clan(ime, prezime, email, prijavljeniClan.KorisnickoIme, sifra, prijavljeniClan.Clanarina, prijavljeniClan.DatumUclanjivanja, prijavljeniClan.BrojPosjeta, prijavljeniClan.TrenutnoPrisutan, prijavljeniClan.PlanIshrane));

            return(RedirectToAction("Postavke", new { id = Int32.Parse(id) }));
        }
        public async Task <IActionResult> ZauzimanjeOpreme(int id)
        {
            DbKorisnik k = context.Korisnik.Where(o => o.DbKorisnikID.Equals(id)).First();
            DbClan     c = context.Clan.Where(o => o.DbClanID.Equals(id)).First();

            prijavljeniClan  = new Clan(k, c);
            ViewData["clan"] = c;
            List <DbOprema> opremaZaZauzimanje = context.Oprema.ToList();
            List <Oprema>   oprema             = new List <Oprema>();


            foreach (DbOprema o in opremaZaZauzimanje)
            {
                System.Diagnostics.Debug.WriteLine("DB" + o.DbOpremaID);
                Oprema oo = new Oprema(o);
                System.Diagnostics.Debug.WriteLine("DB" + oo.ID);
                if (o.TipZauzetosti == TipZauzetostiOpreme.SLOBODNO && context.Oprema.Where(x => x.DbOpremaID == o.DbOpremaID).FirstOrDefault() != null)
                {
                    oprema.Add(new Oprema(context.Oprema.Where(x => x.DbOpremaID == o.DbOpremaID).FirstOrDefault()));
                }
            }
            System.Diagnostics.Debug.WriteLine("desilo se");
            ViewData["oprema"]   = oprema;
            ViewData["username"] = prijavljeniClan.Ime;
            return(View(prijavljeniClan));
        }
        public async Task <IActionResult> PrijavaTreninga(int id)
        {
            DbKorisnik k = context.Korisnik.Where(o => o.DbKorisnikID.Equals(id)).First();
            DbClan     c = context.Clan.Where(o => o.DbClanID.Equals(id)).First();

            prijavljeniClan  = new Clan(k, c);
            ViewData["clan"] = c;
            Dictionary <Trening, Trener> treninzi             = new Dictionary <Trening, Trener>();
            List <DbTrening>             treninziZaIteriranje = context.Trening.ToList();

            foreach (DbTrening t in treninziZaIteriranje)
            {
                if (t.DatumOdrzavanja > new DateTime())
                {
                    System.Diagnostics.Debug.WriteLine("DB" + t.DbTreningID);
                    Trening treningNovi = new Trening(t);
                    System.Diagnostics.Debug.WriteLine("NEDB" + treningNovi.ID);
                    treninzi.Add(treningNovi, new Trener(context.Korisnik.Where(tr => tr.DbKorisnikID == t.DbTrenerID).FirstOrDefault()));
                    //treninzi.Add(new Trening(t));
                }
            }
            System.Diagnostics.Debug.WriteLine(treninzi.Count);
            ViewData["treninzi"] = treninzi;
            ViewData["username"] = prijavljeniClan.Ime;
            return(View(prijavljeniClan));
        }
        public async Task <IActionResult> Postavke(int id)
        {
            DbKorisnik k = context.Korisnik.Where(o => o.DbKorisnikID.Equals(id)).First();
            DbClan     c = context.Clan.Where(o => o.DbClanID.Equals(id)).First();

            prijavljeniClan = new Clan(k, c);

            DateTime date = prijavljeniClan.DatumUclanjivanja;

            if (prijavljeniClan.Clanarina == TipClanarine.JEDNOMJESECNA)
            {
                date = date.AddDays(30);
            }
            else if (prijavljeniClan.Clanarina == TipClanarine.TROMJESECNA)
            {
                date = date.AddDays(90);
            }
            else if (prijavljeniClan.Clanarina == TipClanarine.SESTOMJESECNA)
            {
                date = date.AddDays(180);
            }
            ViewData["date"]     = date.Date.ToShortDateString();
            ViewData["clan"]     = c;
            ViewData["username"] = prijavljeniClan.Ime;
            //ViewData["korisnik"] = k;
            return(View(prijavljeniClan));
        }
        public async Task <IActionResult> ZauzmiOpremuDetalji(int id, int opremaID)
        {
            DbKorisnik k = context.Korisnik.Where(o => o.DbKorisnikID.Equals(id)).First();
            DbClan     c = context.Clan.Where(o => o.DbClanID.Equals(id)).First();

            System.Diagnostics.Debug.WriteLine("primljeni id" + opremaID);
            Oprema oprema = new Oprema(context.Oprema.Where(x => x.DbOpremaID == opremaID).FirstOrDefault());

            prijavljeniClan      = new Clan(k, c);
            ViewData["clan"]     = c;
            ViewData["oprema"]   = oprema;
            ViewData["username"] = prijavljeniClan.Ime;
            return(View(prijavljeniClan));
        }
        public async Task <IActionResult> TreningDetalji(int id, int treningID)
        {
            DbKorisnik k = context.Korisnik.Where(o => o.DbKorisnikID.Equals(id)).First();
            DbClan     c = context.Clan.Where(o => o.DbClanID.Equals(id)).First();

            System.Diagnostics.Debug.WriteLine("primljeni id" + treningID);
            Trening trening = new Trening(context.Trening.Where(x => x.DbTreningID == treningID).FirstOrDefault());

            prijavljeniClan      = new Clan(k, c);
            ViewData["clan"]     = c;
            ViewData["trening"]  = trening;
            ViewData["username"] = prijavljeniClan.Ime;
            return(View(prijavljeniClan));
        }
        public IActionResult Index(int id)
        {
            DbKorisnik k = context.Korisnik.Where(o => o.DbKorisnikID.Equals(id)).First();
            DbClan     c = context.Clan.Where(o => o.DbClanID.Equals(id)).First();

            prijavljeniClan = new Clan(k, c);

            List <Novost> novosti = Teretana.getInstance().Novosti;

            ViewData["novosti"]  = novosti;
            ViewData["username"] = prijavljeniClan.Ime;


            return(View(k));
        }
        public async Task <IActionResult> Profil(int id)
        {
            DbKorisnik k = context.Korisnik.Where(o => o.DbKorisnikID.Equals(id)).First();
            DbClan     c = context.Clan.Where(o => o.DbClanID.Equals(id)).First();

            prijavljeniClan  = new Clan(k, c);
            ViewData["clan"] = c;
            List <DbClanTrening> clanTrening = context.ClanTrening.ToList();
            List <int>           treninziID  = new List <int>();

            foreach (DbClanTrening dct in clanTrening)
            {
                if (dct.DbClanID == id)
                {
                    treninziID.Add(dct.DbTreningID);
                }
            }
            Dictionary <Trening, Trener> treninzi             = new Dictionary <Trening, Trener>();
            List <DbTrening>             treninziZaIteriranje = context.Trening.ToList();

            foreach (DbTrening t in treninziZaIteriranje)
            {
                if (treninziID.Contains(t.DbTreningID))
                {
                    treninzi.Add(new Trening(t), new Trener(context.Korisnik.Where(tr => tr.DbKorisnikID == t.DbTrenerID).FirstOrDefault()));
                    //treninzi.Add(new Trening(t));
                }
            }

            List <DbOprema> iznajmljenaOprema = context.Oprema.Where(o => o.KorisnikOpreme != null && o.KorisnikOpreme.DbKorisnikID == id && o.TipZauzetosti == TipZauzetostiOpreme.IZNAJMLJENO).ToList();
            List <Oprema>   oprema            = new List <Oprema>();

            foreach (DbOprema o in iznajmljenaOprema)
            {
                oprema.Add(new Oprema(context.Oprema.Where(x => x.DbOpremaID == o.DbOpremaID).FirstOrDefault()));
            }

            ViewData["oprema"]   = oprema;
            ViewData["treninzi"] = treninzi;
            ViewData["username"] = prijavljeniClan.Ime;
            return(View(prijavljeniClan));
        }
        public IActionResult PromijeniClanarinu(string id, IFormCollection fc)
        {
            DbKorisnik k = context.Korisnik.Where(o => o.DbKorisnikID.Equals(Int32.Parse(id))).First();
            DbClan     c = context.Clan.Where(o => o.DbClanID.Equals(Int32.Parse(id))).First();

            prijavljeniClan = new Clan(k, c);
            if (ModelState.IsValid)
            {
                if (Convert.ToString(fc["clanarina"]) != null)
                {
                    string typeValue = Convert.ToString(fc["clanarina"]);

                    DateTime date = prijavljeniClan.DatumUclanjivanja;
                    if (prijavljeniClan.Clanarina == TipClanarine.JEDNOMJESECNA)
                    {
                        date = date.AddDays(30);
                    }
                    else if (prijavljeniClan.Clanarina == TipClanarine.TROMJESECNA)
                    {
                        date = date.AddDays(90);
                    }
                    else if (prijavljeniClan.Clanarina == TipClanarine.SESTOMJESECNA)
                    {
                        date = date.AddDays(180);
                    }

                    TipClanarine tipClanarine = TipClanarine.JEDNOMJESECNA;
                    if (typeValue.Equals("tromjesecna"))
                    {
                        tipClanarine = TipClanarine.TROMJESECNA;
                    }
                    else if (typeValue.Equals("sestomjesecna"))
                    {
                        tipClanarine = TipClanarine.SESTOMJESECNA;
                    }

                    Teretana.getInstance().promijeniAtributeKorisnika(Int32.Parse(id), new Clan(prijavljeniClan.Ime, prijavljeniClan.Prezime, prijavljeniClan.EMail, prijavljeniClan.KorisnickoIme, prijavljeniClan.Sifra, tipClanarine, date, prijavljeniClan.BrojPosjeta, prijavljeniClan.TrenutnoPrisutan, prijavljeniClan.PlanIshrane));
                }
            }
            return(RedirectToAction("Postavke", new { id = Int32.Parse(id) }));
        }
        public IActionResult Login(string korisnickoIme, string sifra)
        {
            if (sifra == null || korisnickoIme == null || sifra.Count() == 0 || korisnickoIme.Count() == 0)
            {
                string poruka = "Potrebno je unijeti sva polja!";
                ViewBag.Log = poruka;

                return(View());
            }

            var kk = context.Korisnik.Where(o => o.KorisnickoIme.Equals(korisnickoIme) && o.Sifra.Equals(sifra));

            if (kk.Count() == 0)
            {
                string poruka = "Pogrešni pristupni podaci!";
                ViewBag.Log = poruka;

                return(View());
            }

            DbKorisnik k = context.Korisnik.Where(i => i.KorisnickoIme.Equals(korisnickoIme) && i.Sifra.Equals(sifra)).Single();

            var clan = context.Clan.Where(c => c.DbClanID.Equals(k.DbKorisnikID));

            if (clan.Count() != 0)
            {
                prijavljeniKorisnik = new Clan(k, clan.First()); return(RedirectToAction("Index", new RouteValueDictionary(
                                                                                             new { controller = "Clan", action = "Index", id = k.DbKorisnikID })));
            }

            //    var trener = context.Trener.Where(t => t.DbTrenerID.Equals(k.DbKorisnikID));

            //   if (trener.Count() != 0) { prijavljeniKorisnik = new Trener(k, trener.First()); return RedirectToAction("Index"); }

            return(View());
        }
        public async Task <IActionResult> Register(string ime, string prezime, string email, string sifra, string ponovljenaSifra, IFormCollection fc)
        {
            if (ime == null || prezime == null || sifra == null || ponovljenaSifra == null || email == null)
            {
                string poruka = "Potrebno je popuniti sva polja!";
                ViewBag.Registracija = poruka;
                return(View());
            }

            if (!ponovljenaSifra.Equals(sifra))
            {
                string poruka = "Šifre nisu jednake!";
                ViewBag.Registracija = poruka;
                return(View());
            }


            var k = context.Korisnik.Where(o => o.EMail.Equals(email));

            if (k.Count() != 0)
            {
                string poruka = "Već postoji račun sa navedenom email adresom!";
                ViewBag.Registracija = poruka;
                return(View());
            }

            if (ModelState.IsValid)
            {
                if (Convert.ToString(fc["clanarina"]) != null)
                {
                    string typeValue = Convert.ToString(fc["clanarina"]);

                    TipClanarine tipClanarine = TipClanarine.JEDNOMJESECNA;
                    if (typeValue.Equals("tromjesecna"))
                    {
                        tipClanarine = TipClanarine.TROMJESECNA;
                    }
                    else if (typeValue.Equals("sestomjesecna"))
                    {
                        tipClanarine = TipClanarine.SESTOMJESECNA;
                    }
                    DbKorisnik korisnik = new DbKorisnik {
                        Ime = ime, Prezime = prezime, EMail = email, KorisnickoIme = ime + prezime, Sifra = sifra
                    };
                    DbClan clan = new DbClan {
                        Clanarina = tipClanarine, DatumUclanjivanja = DateTime.Now, BrojPosjeta = 0, TrenutnoPrisutan = false, DbClanID = 0
                    };
                    Teretana.getInstance().dodajClana(korisnik, clan);

                    MailMessage mail = new MailMessage();
                    mail.To.Add(email);
                    mail.From    = new MailAddress("*****@*****.**");
                    mail.Subject = "E-Teretana: Pristupni podaci";
                    string Body = "Dobrodošli u e-Teretanu! Vaše korisnicko ime je: " + ime + prezime;
                    mail.Body       = Body;
                    mail.IsBodyHtml = true;
                    SmtpClient smtp = new SmtpClient();
                    smtp.Host = "smtp.gmail.com";
                    smtp.Port = 587;
                    smtp.UseDefaultCredentials = false;
                    smtp.Credentials           = new System.Net.NetworkCredential("*****@*****.**", "koliko00");
                    smtp.EnableSsl             = true;
                    smtp.Send(mail);
                    return(RedirectToAction("Login"));
                }
            }
            return(View());
        }