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); } }
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() })); }
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); }
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; }
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)); }
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()); }