public static void DodajObrok(Obrok o)
        {
            ISession s = SesijeProvajder.Sesija;

            s.Save(o);
            s.Flush();
        }
        public static Obrok VratiObrok(int id)
        {
            ISession s = SesijeProvajder.Sesija;
            Obrok    o = s.Get <Obrok>(id);

            return(o);
        }
예제 #3
0
        public async Task <IActionResult> Edit(int id, [Bind("Kategorija")] Obrok obrok)
        {
            if (id != obrok.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(obrok);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ObrokExists(obrok.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(obrok));
        }
        public static void UpdateObrok(Obrok o)
        {
            ISession s = SesijeProvajder.Sesija;

            s.Update(o);
            s.Flush();
        }
        public static void ObrisiObrok(int id)
        {
            ISession s = SesijeProvajder.Sesija;
            Obrok    o = s.Get <Obrok>(id);

            s.Delete(o);
            s.Flush();
        }
        public static void PojediObrok(int id, int idLokacijeIskoriscenja)
        {
            ISession s = SesijeProvajder.Sesija;
            Obrok    o = s.Get <Obrok>(id);

            o.Iskoriscen           = true;
            o.DatumIskoriscenja    = DateTime.Now;
            o.LokacijaIskoriscenja = s.Load <Menza>(idLokacijeIskoriscenja);
            s.Update(o);
            s.Flush();
        }
예제 #7
0
        public async Task <IActionResult> Create([Bind("Kategorija")] Obrok obrok)
        {
            if (ModelState.IsValid)
            {
                _context.Add(obrok);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(obrok));
        }
예제 #8
0
        public async Task <IActionResult> Create([Bind("Naziv,Proteini,Ugljikohidrati,Masti,Kalorije")] Obrok obrok)
        {
            if (ModelState.IsValid)
            {
                _context.Add(obrok);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(obrok));
        }
예제 #9
0
        public IHttpActionResult VratiPogresnoSkinuteObroke([FromUri] int id, [FromUri] string sid)
        {
            try
            {
                SesijeProvajder.OtvoriSesiju();

                if (!ProvajderPodatakaKorisnika.SesijaValidna(sid))
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)
                    {
                        Content = new StringContent("Sesija istekla")
                    });
                }

                if (!ValidatorPrivilegija.KorisnikImaPrivilegiju(sid, ValidatorPrivilegija.UserPrivilegies.ModifikacijaObrok))
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Forbidden)
                    {
                        Content = new StringContent("Nemate privilegiju")
                    });
                }


                Obrok o = ProvajderPodatakaObroka.VratiObrok(id);
                if (o != null && ProvajderPodatakaObroka.DanasSkinutiObrociKorisnika(o.Uplatilac.IdKorisnika).Contains(o))
                {
                    o.DatumIskoriscenja    = null;
                    o.Iskoriscen           = false;
                    o.LokacijaIskoriscenja = null;

                    ProvajderPodatakaObroka.UpdateObrok(o);
                }

                return(Ok("Korekcija uspesno obavljena."));
            }
            catch (Exception e)
            {
                if (e is HttpResponseException)
                {
                    throw e;
                }
                DnevnikIzuzetaka.Zabelezi(e);
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError)
                {
                    Content = new StringContent("InternalError: " + e.Message)
                });
            }
            finally
            {
                SesijeProvajder.ZatvoriSesiju();
            }
        }
예제 #10
0
        public static void Dodaj(Obrok Item)
        {
            try
            {
                var collection = Connection <Obrok> .getCollection(CollectionName);

                collection.Save(Item);;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
예제 #11
0
 protected void btnDelete_Click(object sender, EventArgs e)
 {
     try
     {
         IDObrok = int.Parse(ddlObroci.SelectedValue);
         obrok   = obroci.Find(x => x.IDObrok == IDObrok);
         SqlRepo.Instance.DeleteObrok(obrok);
         tbNaziv.Text = null;
         obroci       = SqlRepo.Instance.FetchObroci();
         FillDdlObroci();
     }
     catch (Exception) { }
 }
예제 #12
0
        static public Obrok Procitaj(ObjectId id)
        {
            Obrok found = new Obrok();

            try
            {
                var collection = Connection <Obrok> .getCollection(CollectionName);

                return(collection.FindOneByIdAs <Obrok>(id));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(default(Obrok));
            }
        }
예제 #13
0
        static public void ObrisiObrok(ObjectId planId, MongoDBRef obrok)
        {
            try
            {
                var collection = Connection <Obrok> .getCollection(CollectionName);

                Obrok k = Obroci.Procitaj(planId);

                k.Namirnice.Remove(obrok);

                collection.Save(k);
            }

            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
예제 #14
0
        static public void ObrisiNamirnicu(ObjectId ObrokID, MongoDBRef nam)
        {
            try
            {
                var collection = Connection <Obrok> .getCollection(CollectionName);

                Obrok k = Obroci.Procitaj(ObrokID);

                k.Namirnice.Remove(nam);

                collection.Save(k);
            }

            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
예제 #15
0
        static public void PromeniRedniBroj(ObjectId ObrokID, int broj)
        {
            try
            {
                var collection = Connection <Obrok> .getCollection(CollectionName);

                Obrok k = Obroci.Procitaj(ObrokID);

                k.Redni_Broj_Obroka = broj;

                collection.Save(k);
            }

            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
예제 #16
0
 public void UpdateObrok(Obrok obrok)
 {
     using (SqlConnection con = new SqlConnection(cs))
     {
         con.Open();
         using (SqlCommand cmd = con.CreateCommand())
         {
             if (!FetchObroci().Contains(obrok))
             {
                 cmd.CommandText = "UpdateObrok";
                 cmd.CommandType = CommandType.StoredProcedure;
                 cmd.Parameters.Add("@naz", SqlDbType.VarChar).Value     = obrok.Naziv;
                 cmd.Parameters.Add("@idobrok", SqlDbType.VarChar).Value = obrok.IDObrok;
                 object value = cmd.ExecuteNonQuery();
             }
         }
     }
 }
        public static bool UplatiObrok(int id, int brojObroka, int tipObroka)
        {
            ISession s = SesijeProvajder.Sesija;

            if (brojObroka == 0)
            {
                return(false);
            }

            Korisnik k = ProvajderPodatakaKorisnika.VratiKorisnika(id);

            if (k == null)
            {
                return(false);
            }

            if (k.TipNaloga.IdTip != 5)
            {
                return(false);
            }

            for (int i = 0; i < brojObroka; i++)
            {
                Obrok o = new Obrok()
                {
                    Iskoriscen        = false,
                    DatumUplacivanja  = DateTime.Now,
                    DatumIskoriscenja = null,
                    Uplatilac         = k,
                    Tip = ProvajderPodatakaTipovaObroka.VratiTipObroka(tipObroka),
                    LokacijaIskoriscenja = null,
                    LokacijaUplate       = ProvajderPodatakaMenzi.VratiMenzu(4)
                };

                k.Obroci.Add(o);
            }

            s.Save(k);
            s.Flush();
            return(true);
        }
예제 #18
0
        private void parseXML(IFormFile file)
        {
            XmlDocument doc = new XmlDocument();

            doc.Load(file.FileName);



            XmlNodeList nodes = doc.DocumentElement.SelectNodes("/jelovnik/obrok");

            var enumerator = nodes.GetEnumerator();

            jelovnik.Obroci = new List <Obrok>();
            foreach (XmlNode node in nodes)
            {
                Obrok o = new Obrok();
                o.Naziv  = node.SelectSingleNode("naziv").InnerText;
                o.Cijena = int.Parse(node.SelectSingleNode("cijena").InnerText);
                jelovnik.Obroci.Add(o);
            }
        }
        public ActionResult DodajObrok(string plan, int rednibroj, string[] namirnice)
        {
            Obrok o = new Obrok
            {
                Redni_Broj_Obroka = rednibroj,
            };

            foreach (string namirnicaId in namirnice)
            {
                ObjectId   id = ObjectId.Parse(namirnicaId);
                MongoDBRef r  = new MongoDBRef("namirnice", id);
                o.Namirnice.Add(r);
            }

            Obroci.Dodaj(o);
            ObjectId planId = ObjectId.Parse(plan);

            Obroci.Procitaj(o.Id);
            PlanIshrane.DodajObrok(planId, new MongoDBRef("obroci", o.Id));

            PlanIshraneModel model = new PlanIshraneModel();

            return(View("~/Views/PlanIshrane/ListaPlanovaIshrane.cshtml", model));
        }
예제 #20
0
        public IHttpActionResult NaplatiObroke([FromBody] ObrokNaplataDto obNapDto, [FromUri] string sid)
        {
            int i = 1;

            try
            {
                SesijeProvajder.OtvoriSesiju();

                if (!ProvajderPodatakaKorisnika.SesijaValidna(sid))
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)
                    {
                        Content = new StringContent("Sesija istekla")
                    });
                }

                if (!ValidatorPrivilegija.KorisnikImaPrivilegiju(sid, ValidatorPrivilegija.UserPrivilegies.ModifikacijaObrok))
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Forbidden)
                    {
                        Content = new StringContent("Nemate privilegiju")
                    });
                }

                while (i <= obNapDto.BrojObroka)
                {
                    Obrok obrokZaSkidanje = ProvajderPodatakaObroka.ObrokZaSkidanjeOvogTipa(obNapDto.IdKorisnika, obNapDto.IdTipa);
                    if (obrokZaSkidanje != null)
                    {
                        ProvajderPodatakaObroka.PojediObrok(obrokZaSkidanje.IdObroka, obNapDto.IdLokacijeIskoriscenja);
                        ++i;
                    }
                    else
                    {
                        break;
                    }
                }

                if (i == 1)
                {
                    return(Ok("Ne moze se skunuti, nema obroka"));
                }
                else
                {
                    return(Ok("Uspesno je skunuto " + (i - 1).ToString() + " obroka."));
                }
            }
            catch (Exception e)
            {
                if (e is HttpResponseException)
                {
                    throw e;
                }
                DnevnikIzuzetaka.Zabelezi(e);
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError)
                {
                    Content = new StringContent("InternalError: " + e.Message)
                });
            }
            finally
            {
                SesijeProvajder.ZatvoriSesiju();
            }
        }
예제 #21
0
        public ObrokFullDto VratiObrokFull([FromUri] int id, [FromUri] string sid)
        {
            try
            {
                SesijeProvajder.OtvoriSesiju();

                if (!ProvajderPodatakaKorisnika.SesijaValidna(sid))
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)
                    {
                        Content = new StringContent("Sesija istekla")
                    });
                }

                if (!ValidatorPrivilegija.KorisnikImaPrivilegiju(sid, ValidatorPrivilegija.UserPrivilegies.CitanjeObrok))
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Forbidden)
                    {
                        Content = new StringContent("Nemate privilegiju")
                    });
                }

                Obrok        o     = null;
                ObrokFullDto obrok = new ObrokFullDto();

                o = ProvajderPodatakaObroka.VratiObrok(id);
                if (o == null)
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)
                    {
                        Content = new StringContent("Obrok nije pronadjen")
                    });
                }

                obrok.IdObroka         = o.IdObroka;
                obrok.Iskoriscen       = o.Iskoriscen;
                obrok.DatumUplacivanja = o.DatumUplacivanja;
                if (o.DatumIskoriscenja != null)
                {
                    obrok.DatumIskoriscenja = o.DatumIskoriscenja;
                }
                obrok.IdUplatioca      = o.Uplatilac.IdKorisnika;
                obrok.IdTipaObroka     = o.Tip.IdTipObroka;
                obrok.IdLokacijeUplate = o.LokacijaUplate.IdMenza;
                if (o.LokacijaIskoriscenja != null)
                {
                    obrok.IdLokacijeIskoriscenja = o.LokacijaIskoriscenja.IdMenza;
                }


                SesijeProvajder.ZatvoriSesiju();

                return(obrok);
            }
            catch (Exception e)
            {
                if (e is HttpResponseException)
                {
                    throw e;
                }
                DnevnikIzuzetaka.Zabelezi(e);
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError)
                {
                    Content = new StringContent("InternalError: " + e.Message)
                });
            }
            finally
            {
                SesijeProvajder.ZatvoriSesiju();
            }
        }
예제 #22
0
        public IHttpActionResult UplatiObroke([FromBody] ObrokUplataDto obUpDto, [FromUri] string sid)
        {
            int i;

            try
            {
                SesijeProvajder.OtvoriSesiju();

                if (!ProvajderPodatakaKorisnika.SesijaValidna(sid))
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)
                    {
                        Content = new StringContent("Sesija istekla")
                    });
                }

                if (!ValidatorPrivilegija.KorisnikImaPrivilegiju(sid, ValidatorPrivilegija.UserPrivilegies.DodavanjeObrok))
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Forbidden)
                    {
                        Content = new StringContent("Nemate privilegiju")
                    });
                }


                for (i = 0; i < obUpDto.BrojObroka; ++i)
                {
                    if (!ProvajderPodatakaObroka.KorisnikDostigaoLimitZaOvajMesecZaOvajObrok(obUpDto.IdKorisnika, obUpDto.IdTipa))
                    {
                        Obrok o = new Obrok
                        {
                            Iskoriscen        = false,
                            DatumUplacivanja  = DateTime.Now,
                            DatumIskoriscenja = null,
                            Uplatilac         = ProvajderPodatakaKorisnika.VratiKorisnika(obUpDto.IdKorisnika),
                            Tip                  = ProvajderPodatakaTipovaObroka.VratiTipObroka(obUpDto.IdTipa),
                            LokacijaUplate       = ProvajderPodatakaMenzi.VratiMenzu(obUpDto.IdLokacijeUplate),
                            LokacijaIskoriscenja = null
                        };

                        ProvajderPodatakaObroka.DodajObrok(o);
                    }
                    else
                    {
                        break;
                    }
                }
                if (i == 0)
                {
                    return(Ok("Ne moze se uopste uplatiti, dostignut je limit."));
                }
                else
                {
                    return(Ok("Uspesno je dodato " + i + " obroka."));
                }
            }
            catch (Exception e)
            {
                if (e is HttpResponseException)
                {
                    throw e;
                }
                DnevnikIzuzetaka.Zabelezi(e);
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError)
                {
                    Content = new StringContent("InternalError: " + e.Message)
                });
            }
            finally
            {
                SesijeProvajder.ZatvoriSesiju();
            }
        }
예제 #23
0
 private void SetEdit()
 {
     IDObrok      = int.Parse(ddlObroci.SelectedValue);
     obrok        = obroci.Find(x => x.IDObrok == IDObrok);
     tbNaziv.Text = obrok.Naziv.ToString();
 }
예제 #24
0
 public static bool ObrokPostoji(Obrok o)
 {
     return(o != null);
 }
예제 #25
0
        private Jelovnik GenerirajJelovnik()
        {
            Session["MjerneJedinice"] = null;

            var random        = new Random(DateTime.Now.Millisecond);
            var selectedValue = (int)Session["SelectedObroka"];
            var selectedDate  = DateTime.Parse(Session["Date"].ToString());

            var korisnik = DAL.DAL.DohvatiKorisnika(Session["Username"].ToString(), Session["Password"].ToString());
            var energija = DAL.DAL.IzracunajDnevnuPotrebuEnergije(korisnik);

            var kombinacija = DAL.DAL.DohvatiKombinacijuZaBrojObroka(selectedValue);
            var namirnice   = DAL.DAL.DohvatiNamirnice();

            var namirniceBjelancevine   = namirnice.Where(x => x.TipNamirniceID == 1).ToList();
            var namirniceUgljikohidrati = namirnice.Where(x => x.TipNamirniceID == 2).ToList();
            var namirniceMasti          = namirnice.Where(x => x.TipNamirniceID == 3).ToList();

            var mjerneJedinice = new List <MjernaJedinica>();

            var jelovnik = new Jelovnik
            {
                Datum      = selectedDate,
                KorisnikID = korisnik.IDKorisnik,
                Obroci     = new List <Obrok>()
            };

            int i = 1;

            foreach (var obrok in kombinacija.Obroci)
            {
                var randBjelancevina   = random.Next(1, namirniceBjelancevine.Count());
                var randUgljikohidrati = random.Next(1, namirniceUgljikohidrati.Count());
                var randMasti          = random.Next(1, namirniceMasti.Count());

                var udioObrokaOdDnevnePotrebe = ((obrok.DnevniUdio / 100.0) * energija) / 100.0;

                var noviObrok = new Obrok
                {
                    IDUJelovniku = i,
                    IDObrok      = i++,
                    NazivObroka  = obrok.NazivObroka,
                    Zadrzi       = true,
                    Namirnice    = new List <NamirnicaUObroku>()
                };

                // Dodaj po jednu namirnicu od svakog tipa u obrok.
                noviObrok.Namirnice.Add(new NamirnicaUObroku
                {
                    Namirnica = namirniceBjelancevine.ElementAt(randBjelancevina),
                    Zadrzi    = true,
                    Kolicina  = (udioObrokaOdDnevnePotrebe * obrok.UdioBjelancevina) / namirniceBjelancevine.ElementAt(randBjelancevina).EnergetskaVrijednostKcalPoGramu
                });


                noviObrok.Namirnice.Add(new NamirnicaUObroku
                {
                    Namirnica = namirniceUgljikohidrati.ElementAt(randUgljikohidrati),
                    Zadrzi    = true,
                    Kolicina  = (udioObrokaOdDnevnePotrebe * obrok.UdioUgljikohidrata) / namirniceUgljikohidrati.ElementAt(randUgljikohidrati).EnergetskaVrijednostKcalPoGramu
                });


                noviObrok.Namirnice.Add(new NamirnicaUObroku
                {
                    Namirnica = namirniceMasti.ElementAt(randMasti),
                    Zadrzi    = true,
                    Kolicina  = (udioObrokaOdDnevnePotrebe * obrok.UdioMasti) / namirniceMasti.ElementAt(randMasti).EnergetskaVrijednostKcalPoGramu
                });

                // Ukloni dodane namirnice kako se ne bi ponovile u sljedećim obrocima.
                namirniceBjelancevine.RemoveAt(randBjelancevina);
                namirniceUgljikohidrati.RemoveAt(randUgljikohidrati);
                namirniceMasti.RemoveAt(randMasti);

                jelovnik.Obroci.Add(noviObrok);
            }
            return(jelovnik);
        }