示例#1
0
        public bool SnimiPodatke()
        {
            bool          uspeh            = false;
            KombinacijaDB objKombinacijaDB = new KombinacijaDB(pStringKonekcije);
            Kombinacija   objKombinacija   = new Kombinacija();

            // prerada ulaznih podataka
            objKombinacija.ID          = this.pID;
            objKombinacija.IdKorisnika = this.pIdKorisnika;
            objKombinacija.PrviBroj    = this.pPrviBroj;
            objKombinacija.DrugiBroj   = this.pDrugiBroj;
            objKombinacija.TreciBroj   = this.pTreciBroj;
            objKombinacija.CetvrtiBroj = this.pCetvrtiBroj;
            objKombinacija.PetiBroj    = this.pPetiBroj;
            objKombinacija.SestiBroj   = this.pSestiBroj;
            objKombinacija.SedmiBroj   = this.pSedmiBroj;

            // snimanje putem DB klase
            uspeh = objKombinacijaDB.DodajNovuKombinaciju(objKombinacija);
            return(uspeh);
        }
示例#2
0
文件: Program.cs 项目: komshija/ds
        //class PrintKlijent
        //{
        //    public void PrintIt(string text)
        //    {
        //        Console.WriteLine(text);
        //    }
        //}

        static void Main(string[] args)
        {
            //PrintKlijent k = new PrintKlijent();
            string           nadimak     = Console.ReadLine();
            ObavestiCallback callback    = new ObavestiCallback(nadimak /*,k.PrintIt*/);
            InstanceContext  ic          = new InstanceContext(callback);
            LotoClient       proxy       = new LotoClient(ic);
            List <int>       kombBrojevi = new List <int>()
            {
                1, 2, 3, 4, 5, 6, 7
            };

            Kombinacija kombinacija = new Kombinacija(kombBrojevi);

            proxy.DodajKombinaciju(nadimak, kombinacija);
            int x = Convert.ToInt32(Console.ReadLine());

            if (x == 1)
            {
                proxy.ZapocniIzvlacenje();
            }

            Console.ReadLine();
        }
示例#3
0
        public ActionResult GenerateMenu(int NumberOfMeals = 0)
        {
            if (String.IsNullOrWhiteSpace((string)Session["id"]))
            {
                Session["id"] = 0;
            }
            if (!Helper.CheckIfLoggedInMVC(Convert.ToInt32(Session["id"])))
            {
                return(RedirectToAction("Login", "User"));
            }

            User   userinfo = new User();
            int    id;
            string username = Session["name"].ToString();
            int    userEnergyNeeded;

            Kombinacija combination = new Kombinacija();
            List <KombinacijaDetalji> combinationDetailsList = new List <KombinacijaDetalji>();
            List <Namirnica>          goodsList          = new List <Namirnica>();
            List <Jedinica>           MeasuringUnitsList = new List <Jedinica>();
            List <NazivObroka>        MealNamesList      = new List <NazivObroka>();
            List <TipNamirnice>       FoodTypeList       = new List <TipNamirnice>();
            // get all available number of meals per menu in database
            List <int> available_number_of_meals = new List <int>();

            using (SqlConnection con = new SqlConnection(Helper.CONNECTION_STRING))
            {
                con.Open();
                using (var cmd = new SqlCommand("select * from Kombinacija", con))
                {
                    using (var rd = cmd.ExecuteReader())
                    {
                        while (rd.Read())
                        {
                            available_number_of_meals.Add(rd.GetInt32(rd.GetOrdinal("BrojObroka")));
                            if (rd.GetInt32(rd.GetOrdinal("BrojObroka")) == NumberOfMeals)
                            {
                                combination.BrojObroka     = NumberOfMeals;
                                combination.DatumKreiranja = rd.GetDateTime(rd.GetOrdinal("DatumKreiranja"));
                                combination.IDKombinacija  = rd.GetInt32(rd.GetOrdinal("IDKombinacija"));
                                combination.VrijediDo      = rd.GetDateTime(rd.GetOrdinal("VrijediDo"));
                            }
                        }
                    }
                }
                con.Close();
            }

            // return if no of meals is 0 to avoid error message showing on start
            if (NumberOfMeals == 0)
            {
                return(View(new ViewModels {
                    ErrorMessage = ""
                }));
            }
            // return if there is no combination with that number of meals
            if (available_number_of_meals.All(x => x != NumberOfMeals))
            {
                return(View(new ViewModels {
                    ErrorMessage = "Cant find meal combination with that number of meals"
                }));
            }

            // fill combinationDetails array
            using (SqlConnection con = new SqlConnection(Helper.CONNECTION_STRING))
            {
                con.Open();
                using (var cmd = new SqlCommand("select * from KombinacijaDetalji where KombinacijaID = " + combination.IDKombinacija, con))
                {
                    using (var rd = cmd.ExecuteReader())
                    {
                        while (rd.Read())
                        {
                            combinationDetailsList.Add(
                                new KombinacijaDetalji
                            {
                                IDKombinacijaDetalji   = rd.GetInt32(rd.GetOrdinal("IDKombinacijaDetalji")),
                                NazivObrokaID          = rd.GetInt32(rd.GetOrdinal("NazivObrokaID")),
                                KombinacijaID          = combination.IDKombinacija,
                                PostotakMasti          = rd.GetInt32(rd.GetOrdinal("PostotakMasti")),
                                PostotakProteina       = rd.GetInt32(rd.GetOrdinal("PostotakProteina")),
                                PostotakUgljikohidrata = rd.GetInt32(rd.GetOrdinal("PostotakUgljikohidrata")),
                                PostotakUkupno         = rd.GetInt32(rd.GetOrdinal("PostotakUkupno")),
                            });
                        }
                    }
                }
                con.Close();
            }

            // get user energy needed
            using (SqlConnection con2 = new SqlConnection(Helper.CONNECTION_STRING))
            {
                DataTable t = new DataTable();
                using (SqlDataAdapter aa = new SqlDataAdapter("select * from Korisnik where KorisnickoIme = '" + username + "'", con2))
                {
                    aa.SelectCommand.CommandType = CommandType.Text;
                    aa.Fill(t);
                    userinfo.Height        = Convert.ToInt32(t.Rows[0]["Visina"]);
                    userinfo.Weight        = Convert.ToInt32(t.Rows[0]["Tezina"]);
                    userinfo.Sex           = Convert.ToInt32(t.Rows[0]["SpolID"]);
                    userinfo.Diabetes_type = Convert.ToInt32(t.Rows[0]["TipDia"]);
                    userinfo.Activity      = Convert.ToInt32(t.Rows[0]["AktivnostID"]);
                }
                double Activity = 1;
                double diabtype = 1;
                double gender;
                if (userinfo.Activity == 1)
                {
                    Activity = 1.2;
                }
                else if (userinfo.Activity == 2)
                {
                    Activity = 1.375;
                }
                else if (userinfo.Activity == 3)
                {
                    Activity = 1.5;
                }

                if (userinfo.Diabetes_type == 1)
                {
                    diabtype = 0.99;
                }
                else if (userinfo.Diabetes_type == 2)
                {
                    diabtype = 0.98;
                }
                if (userinfo.Sex == 1)
                {
                    gender = 5;
                }
                else
                {
                    gender = -161;
                }

                userEnergyNeeded = Helper.Get_kcal(userinfo.Weight, userinfo.Height, gender, Activity, diabtype, 20);
            }

            // calculate calories for each type
            int        kcalPerMeal = userEnergyNeeded / combination.BrojObroka;
            List <int> kcalProtein = new List <int>();
            List <int> kcalFat     = new List <int>();
            List <int> kcalCarbs   = new List <int>();
            List <int> kcalAll     = new List <int>();

            foreach (KombinacijaDetalji combo in combinationDetailsList)
            {
                kcalAll.Add((int)(userEnergyNeeded * (combo.PostotakUkupno / 100.0)));
                kcalProtein.Add((int)(kcalAll[kcalAll.Count - 1] * (combo.PostotakProteina / 100.0)));
                kcalFat.Add((int)(kcalAll[kcalAll.Count - 1] * (combo.PostotakMasti / 100.0)));
                kcalCarbs.Add((int)(kcalAll[kcalAll.Count - 1] * (combo.PostotakUgljikohidrata / 100.0)));
            }

            // fill goods array to work with
            using (SqlConnection con = new SqlConnection(Helper.CONNECTION_STRING))
            {
                con.Open();
                using (var cmd = new SqlCommand("select * from Namirnica", con))
                {
                    using (var rd = cmd.ExecuteReader())
                    {
                        while (rd.Read())
                        {
                            goodsList.Add(
                                new Namirnica
                            {
                                Naziv          = rd.GetString(rd.GetOrdinal("Naziv")),
                                TipNamirniceID = rd.GetInt32(rd.GetOrdinal("TipNamirniceID")),
                                JedinicaID     = rd.GetInt32(rd.GetOrdinal("JedinicaID")),
                                Energija_kcal  = rd.GetString(rd.GetOrdinal("Energija_kcal")),
                                IDNamirnica    = rd.GetInt32(rd.GetOrdinal("IDNamirnica"))
                            });
                        }
                    }
                }
                con.Close();
            }

            // get goods to show it to user
            Random           r            = new Random();
            List <Namirnica> proteinGoods = new List <Namirnica>();
            List <Namirnica> carbsGoods   = new List <Namirnica>();
            List <Namirnica> fatGoods     = new List <Namirnica>();

            for (int i = 0; i < combination.BrojObroka; ++i)
            {
                List <Namirnica> goodProteinGoods = goodsList.Where(x => Convert.ToInt32(x.Energija_kcal) < kcalProtein[i] && x.TipNamirniceID == 2).ToList();
                List <Namirnica> goodCarbsGoods   = goodsList.Where(x => Convert.ToInt32(x.Energija_kcal) < kcalCarbs[i] && x.TipNamirniceID == 1).ToList();
                List <Namirnica> goodFatGoods     = goodsList.Where(x => Convert.ToInt32(x.Energija_kcal) < kcalFat[i] && x.TipNamirniceID == 3).ToList();
                // if i cant find any good to add, add good with least kcal
                if (goodProteinGoods.Count == 0)
                {
                    goodProteinGoods.Add(goodsList.Where(x => x.TipNamirniceID == 2).ToList().OrderBy(x => Convert.ToInt32(x.Energija_kcal)).First());
                }
                if (goodCarbsGoods.Count == 0)
                {
                    goodCarbsGoods.Add(goodsList.Where(x => x.TipNamirniceID == 1).ToList().OrderBy(x => Convert.ToInt32(x.Energija_kcal)).First());
                }
                if (goodFatGoods.Count == 0)
                {
                    goodFatGoods.Add(goodsList.Where(x => x.TipNamirniceID == 3).ToList().OrderBy(x => Convert.ToInt32(x.Energija_kcal)).First());
                }
                proteinGoods.Add(goodProteinGoods[r.Next(0, goodProteinGoods.Count)]);
                carbsGoods.Add(goodCarbsGoods[r.Next(0, goodCarbsGoods.Count)]);
                fatGoods.Add(goodFatGoods[r.Next(0, goodFatGoods.Count)]);
            }

            // fill measuring units
            using (SqlConnection con = new SqlConnection(Helper.CONNECTION_STRING))
            {
                con.Open();

                string query = "select j.* from Jedinica as j " +
                               "inner join Namirnica as n on n.JedinicaID = j.IDJedinica " +
                               "inner join Obrok as o on o.NamirnicaID = n.IDNamirnica " +
                               "inner join NazivObroka as [no] on[no].IDNazivObroka = o.NazivObrokaID " +
                               "inner join KombinacijaDetalji as kd on kd.NazivObrokaID = [no].IDNazivObroka " +
                               "inner join Kombinacija as k on k.IDKombinacija = kd.KombinacijaID " +
                               "where k.IDKombinacija = " + combination.IDKombinacija;
                using (var cmd = new SqlCommand(query, con))
                {
                    using (var rd = cmd.ExecuteReader())
                    {
                        while (rd.Read())
                        {
                            MeasuringUnitsList.Add(new Jedinica {
                                Jedinica1 = rd.GetString(rd.GetOrdinal("Jedinica"))
                            });
                        }
                    }
                }
                con.Close();
            }
            MeasuringUnitsList.Add(new Jedinica {
                Jedinica1 = "g"
            });
            // fill meal names
            using (SqlConnection con = new SqlConnection(Helper.CONNECTION_STRING))
            {
                con.Open();
                string q = "select [no].* from NazivObroka as [no] " +
                           "inner join KombinacijaDetalji as kd on kd.NazivObrokaID = [no].IDNazivObroka " +
                           "inner join Kombinacija as k on k.IDKombinacija = kd.KombinacijaID " +
                           "where k.IDKombinacija = " + combination.IDKombinacija;
                using (var cmd = new SqlCommand(q, con))
                {
                    using (var rd = cmd.ExecuteReader())
                    {
                        while (rd.Read())
                        {
                            MealNamesList.Add(new NazivObroka {
                                Ime = rd.GetString(rd.GetOrdinal("Ime"))
                            });
                        }
                    }
                }
                con.Close();
            }

            // fill foodtypes
            using (SqlConnection con = new SqlConnection(Helper.CONNECTION_STRING))
            {
                con.Open();
                string q = "select t.* from TipNamirnice as t " +
                           "inner join Namirnica as n on n.TipNamirniceID = t.IDTipNamirnice " +
                           "inner join Obrok as o on o.NamirnicaID = n.IDNamirnica " +
                           "inner join NazivObroka as [no] on[no].IDNazivObroka = o.NazivObrokaID " +
                           "inner join KombinacijaDetalji as kd on kd.NazivObrokaID = [no].IDNazivObroka " +
                           "inner join Kombinacija as k on k.IDKombinacija = kd.KombinacijaID " +
                           "where k.IDKombinacija = " + combination.IDKombinacija;
                using (var cmd = new SqlCommand(q, con))
                {
                    using (var rd = cmd.ExecuteReader())
                    {
                        while (rd.Read())
                        {
                            FoodTypeList.Add(new TipNamirnice {
                                Tip = rd.GetString(rd.GetOrdinal("Tip"))
                            });
                        }
                    }
                }
                con.Close();
            }

            System.Diagnostics.Debug.WriteLine("PROTEINS");
            proteinGoods.ForEach(x => System.Diagnostics.Debug.WriteLine(x.Naziv));
            System.Diagnostics.Debug.WriteLine("CARBS");
            carbsGoods.ForEach(x => System.Diagnostics.Debug.WriteLine(x.Naziv));
            System.Diagnostics.Debug.WriteLine("FATS");
            fatGoods.ForEach(x => System.Diagnostics.Debug.WriteLine(x.Naziv));

            var viewmodel = new ViewModels
            {
                Fats           = fatGoods,
                Carbs          = carbsGoods,
                Proteins       = proteinGoods,
                MealNames      = MealNamesList,
                MeasuringUnits = MeasuringUnitsList,
                FoodTypes      = FoodTypeList,
                ErrorMessage   = null,
                NumberOfMeals  = NumberOfMeals
            };

            return(View(viewmodel));
        }