Example #1
0
 private void Time_Tick(object sender, EventArgs e)
 {
     if (this.State == eState.PLAYING)
     {
         TimeY++;
         this.LblTime.Text = String.Format("{0}:{1}", TimeX >= 10 ? TimeX.ToString(): "0" + TimeX,
                                           TimeY >= 10 ? TimeY.ToString(): "0" + TimeY);
     }
 }
Example #2
0
        public async Task <IActionResult> SimulateDrawing(string authKey, int days)
        {
            if (!IsClientRegistered(authKey) || days == 0)
            {
                return(Content("false"));
            }

            if (days > 0)
            {
                days *= -1;
            }

            //Obliczanie daty początkowej //jeżeli days = 1, chodzi o wczoraj
            var startDt = DateTime.Now.AddDays(days);
            var today   = TimeX.DateToInt(DateTime.Now);
            var start   = TimeX.DateToInt(startDt);

            //Najpierw usuwamy z bazy danych wszystkie rekordy mieszczące się w przedziale symulacji
            var toRemove = (from a in db.Draws where a.date >= start && a.date < today select a).ToList();

            foreach (var r in toRemove)
            {
                db.Draws.Remove(r);
            }

            //Teraz losujemy po kolei... :)
            var users = (from u in db.Users where u.enabled select u).ToList();
            var draws = new List <Draw>();

            while (start < today)
            {
                draws.Add(new Draw(start, new List <User>(users)));
                startDt = startDt.AddDays(1);
                start   = TimeX.DateToInt(startDt);
            }

            //Dodajemy nowe rekordy do bazy danych
            foreach (var e in draws)
            {
                db.Draws.Add(e);
            }

            //Zapisujemy zmiany
            await db.SaveChangesAsync();

            return(Content("true"));
        }
        public async Task <IActionResult> Index()
        {
            var today     = TimeX.DateToInt(DateTime.Now);
            var todayDraw = (from a in db.Draws where a.date == today select a).FirstOrDefault();

            if (todayDraw == null)
            {
                todayDraw = new Data.Tables.Draw((from all in db.Users where all.enabled == true select all).ToList());
                db.Draws.Add(todayDraw);
                await db.SaveChangesAsync();
            }

            return(View(new IndexViewModel()
            {
                Draws = db.Draws.ToList(), Users = db.Users.ToList()
            }));
        }
Example #4
0
        public Draw(List <User> allUsers)
        {
            //Najpierw losujemy kolejność
            userIdsOrder = new List <string>();
            var random = new Random();

            while (allUsers.Count > 0)
            {
                var index = random.Next(0, allUsers.Count);
                if (index == allUsers.Count)
                {
                    index--;
                }

                userIdsOrder.Add(allUsers[index].userId.ToString());
                allUsers.RemoveAt(index);
            }

            date = TimeX.DateToInt(DateTime.Now);
        }
Example #5
0
        private void InitializeDayOfWeekStats()
        {
            //Musimy zrobić listę z listą wylosowanych dla każdego dnia tygodnia
            //0 - niedziela, 6 - sobota
            var arr = new CounterDictionary <string> [7]; // <- user id

            //Teraz musimy utworzyć instancję dla każdej pozycji w tablicy
            for (var i = 0; i < arr.Length; i++)
            {
                arr[i] = new CounterDictionary <string>();
            }

            //Następnie przechodzimy do analizy danych
            foreach (var d in Draws)
            {
                arr[(int)TimeX.IntToDate(d.date).DayOfWeek].Add(d.userIdsOrder.ElementAt(0));
            }

            dayOfWeekWinnerStats = arr;
        }
Example #6
0
        public async Task <IActionResult> DrawToday(string authKey)
        {
            if (!IsClientRegistered(authKey))
            {
                return(Content("false"));
            }

            var today        = TimeX.DateToInt(DateTime.Now);
            var todayDrawCnt = (from d in db.Draws where d.date == today select d).Count();

            if (todayDrawCnt > 0)
            {
                return(Content("false"));
            }

            var draw = new Draw((from u in db.Users where u.enabled select u).ToList());

            db.Draws.Add(draw);
            await db.SaveChangesAsync();

            //Teraz zapisujemy naszą bazę danych do pliku JSON

            return(Content("true"));
        }
        //AKCJE

        public IActionResult Index()
        {
            char q = '"';

            //Model do zwrócenia
            var AdminView = new AdminViewModel();

            //Oczekujący klienci
            var ListaOczekujacych = new List <KlienciModel>(from a in db.Klienci where a.Zrealizowano == false select a);

            if (ListaOczekujacych.Count() == 0)
            {
                AdminView.OczekujacyKlienci = "</table><h3 class='alert'>Brak oczekujących klientów!</h3>";
            }
            else
            {
                foreach (var element in ListaOczekujacych)
                {
                    AdminView.OczekujacyKlienci += "<tr><td>" + element.Nazwa + "</td>";
                    AdminView.OczekujacyKlienci += "<td class='TabelkaOpisInside'>" + element.Tytul + "</td>";
                    AdminView.OczekujacyKlienci += "<td>" + TimeX.DateIntToReadableString(element.Data) + "</td>";
                    AdminView.OczekujacyKlienci += "<td>" + element.Telefon + "</td></tr><tr><td colspan='4' class='borderRow1'><form id='FormularzRealizacjiKlienta" + element.KlienciModelId + "' method='POST' class='NonBorderForm' data-ajax='true' data-ajax-method='POST' data-ajax-loading='#LoadingDIV' data-ajax-update='#LinkReply' name='CompleteClientForm' action='/Admin/CompleteClient'><input type='number' name='idKlienta' style='display: none;' value='";
                    AdminView.OczekujacyKlienci += element.KlienciModelId + "' /><input type='text' name='urlAdres' placeholder='Adres bezprośredni do zdjęć'/><input type='submit' value='Zatwierdź' /></form></td></tr>";
                }

                AdminView.OczekujacyKlienci += "</table>";
            }

            //Zrealizowani klienci
            var ListaZrealizowanych = new List <KlienciModel>(from a in db.Klienci where a.Zrealizowano == true orderby a.KlienciModelId descending select a);

            if (ListaZrealizowanych.Count() == 0)
            {
                AdminView.ZrealizowaniKlienci = "</table><h3 class='alert'>Brak zrealizowanych klientów!</h3>";
            }
            else
            {
                int Courtois = 0;

                foreach (var element in ListaZrealizowanych)
                {
                    AdminView.ZrealizowaniKlienci += "<tr><td>" + element.Nazwa + "</td>";
                    AdminView.ZrealizowaniKlienci += "<td>" + element.Tytul + "</td>";
                    AdminView.ZrealizowaniKlienci += "<td>" + TimeX.IntDateToSmartString(element.Data) + "</td>";
                    AdminView.ZrealizowaniKlienci += "<td>" + element.Telefon + "</td>";
                    AdminView.ZrealizowaniKlienci += "<td>" + element.KodKlienta + "</td>";
                    AdminView.ZrealizowaniKlienci += "<td>" + element.KlienciModelId + "</td></tr>";

                    Courtois++;

                    if (Courtois == 5)
                    {
                        break;
                    }
                }

                AdminView.ZrealizowaniKlienci += "</table>";
            }

            //Generowanie sekcji usuwania zdjęć
            var AllPhotos = (from b in db.Zdjecia select b).ToList <ZdjeciaModel>();

            AdminView.MainGalleryDeleteArray          = GeneratorUsuwaczaZdjec(AllPhotos, 1);
            AdminView.PrzygotowaniaGalleryDeleteArray = GeneratorUsuwaczaZdjec(AllPhotos, 2);
            AdminView.CeremoniaGalleryDeleteArray     = GeneratorUsuwaczaZdjec(AllPhotos, 3);
            AdminView.WeseleGalleryDeleteArray        = GeneratorUsuwaczaZdjec(AllPhotos, 4);
            AdminView.PlenerGalleryDeleteArray        = GeneratorUsuwaczaZdjec(AllPhotos, 5);
            AdminView.BanerGalleryDeleteArray         = GeneratorUsuwaczaZdjec(AllPhotos, 6);

            //Generowanie sekcji zdjęć pojedynczych
            AdminView.PolyGaleria         = GeneratorUsuwaczaZdjec(AllPhotos, 7);
            AdminView.PolySlubna          = GeneratorUsuwaczaZdjec(AllPhotos, 8);
            AdminView.PolyOferta          = GeneratorUsuwaczaZdjec(AllPhotos, 9);
            AdminView.PolyPakiety         = GeneratorUsuwaczaZdjec(AllPhotos, 10);
            AdminView.PolyOkolicznosciowe = GeneratorUsuwaczaZdjec(AllPhotos, 11);
            AdminView.PolyOsiemnastki     = GeneratorUsuwaczaZdjec(AllPhotos, 12);
            AdminView.PolyRocznice        = GeneratorUsuwaczaZdjec(AllPhotos, 13);
            AdminView.PolyChrzciny        = GeneratorUsuwaczaZdjec(AllPhotos, 14);
            AdminView.PolyInne            = GeneratorUsuwaczaZdjec(AllPhotos, 15);
            AdminView.PolySklep           = GeneratorUsuwaczaZdjec(AllPhotos, 16);
            AdminView.PolyKontakt         = GeneratorUsuwaczaZdjec(AllPhotos, 17);
            //I trzeba tutaj dopisać całą resztę z AdminViewModelu

            return(View(AdminView));
        }
Example #8
0
        public List <DoubleGenericObject <User, double> > PredictNextWinner()
        {
            var allChances   = 0.00;
            var tomorow      = DateTime.Now.AddDays(1);
            var usersChances = new Dictionary <User, double>();

            var winnersOfPairityTomorrow = WinnersOfPairDays(TimeX.DateToInt(tomorow) % 2 == 0);
            var winnersOfDayOfWeek       = WinnersOfDayOfWeek(tomorow.DayOfWeek);
            var casualWinners            = CasualWinners;

            foreach (var w in winnersOfPairityTomorrow)
            {
                if (w.Key.enabled)
                {
                    usersChances.Add(w.Key, w.Value);
                    allChances += w.Value;
                }
            }

            foreach (var w in winnersOfDayOfWeek)
            {
                if (w.Key.enabled)
                {
                    if (usersChances.ContainsKey(w.Key))
                    {
                        usersChances[w.Key] += w.Value;
                    }
                    else
                    {
                        usersChances.Add(w.Key, w.Value);
                    }

                    allChances += w.Value;
                }
            }

            foreach (var w in casualWinners)
            {
                if (w.Key.enabled)
                {
                    if (usersChances.ContainsKey(w.Key))
                    {
                        usersChances[w.Key] += w.Value;
                    }
                    else
                    {
                        usersChances.Add(w.Key, w.Value);
                    }

                    allChances += w.Value;
                }
            }



            var list = new List <DoubleGenericObject <User, double> >();

            foreach (var w in usersChances)
            {
                list.Add(new DoubleGenericObject <User, double>()
                {
                    Key = w.Key, Value = Math.Round((w.Value / allChances) * 100, 1)
                });
            }

            return(list.OrderByDescending(d => d.Value).ToList());
        }