public async Task <IActionResult> PutPowiadomienie([FromRoute] int id, [FromBody] Powiadomienie powiadomienie) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != powiadomienie.IdPowiadomienie) { return(BadRequest()); } _context.Entry(powiadomienie).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PowiadomienieExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public ActionResult DeleteConfirmed(int id) { Powiadomienie powiadomienie = db.Powiadomienie.Find(id); db.Powiadomienie.Remove(powiadomienie); db.SaveChanges(); return(RedirectToAction("Index")); }
public void Egzecue() { Status = Models.SendingStatus.Sending; OnPropertyChanged("Status"); var openDialog = new Powiadomienie(); openDialog.ShowPowiadomienie(Status.ToString(), "Powiadomienie"); }
public async Task <IActionResult> PostPowiadomienie([FromBody] Powiadomienie powiadomienie) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.Powiadomienie.Add(powiadomienie); await _context.SaveChangesAsync(); return(CreatedAtAction("GetPowiadomienie", new { id = powiadomienie.IdPowiadomienie }, powiadomienie)); }
/*! * \brief Usuwa powiadomienie * \param[id] id powiadomienia * \return zwraca widok danego powiadomienia lub kod bledu */ // GET: Message/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Powiadomienie powiadomienie = db.Powiadomienie.Find(id); if (powiadomienie == null) { return(HttpNotFound()); } return(View(powiadomienie)); }
public ActionResult Index() { Random r = new Random(); List <Monitoring> monity = new List <Monitoring> { new Monitoring { Paliwo = "Pb 95", Cisnienie = r.Next(100, 200) + r.NextDouble(), PoziomPaliwa = r.Next(0, 100) + r.NextDouble(), Data = DateTime.Now, Temperatura = r.Next(-10, 50) + r.NextDouble() }, new Monitoring { Paliwo = "Pb 98", Cisnienie = r.Next(100, 200) + r.NextDouble(), PoziomPaliwa = r.Next(0, 100) + r.NextDouble(), Data = DateTime.Now, Temperatura = r.Next(-10, 50) + r.NextDouble() }, new Monitoring { Paliwo = "ON", Cisnienie = r.Next(100, 200) + r.NextDouble(), PoziomPaliwa = r.Next(0, 100) + r.NextDouble(), Data = DateTime.Now, Temperatura = r.Next(-10, 50) + r.NextDouble() }, new Monitoring { Paliwo = "LPG", Cisnienie = r.Next(100, 200) + r.NextDouble(), PoziomPaliwa = r.Next(0, 100) + r.NextDouble(), Data = DateTime.Now, Temperatura = r.Next(-10, 50) + r.NextDouble() } }; foreach (var item in monity) { _context.Monitorings.Add(item); _context.SaveChanges(); } List <Powiadomienie> powiadomienia = new List <Powiadomienie>(); foreach (var item in monity) { if (item.Cisnienie > 190) { Powiadomienie p = new Powiadomienie { monitoring = item, Nazwa = "za wysokie ciśnienie w zbiorniku " + item.Paliwo }; powiadomienia.Add(p); } else if (item.Cisnienie < 10) { Powiadomienie p = new Powiadomienie { monitoring = item, Nazwa = "za niskie ciśnienie w zbiorniku " + item.Paliwo }; powiadomienia.Add(p); } if (item.PoziomPaliwa > 90) { Powiadomienie p = new Powiadomienie { monitoring = item, Nazwa = "za wysoki poziom paliwa w zbiorniku " + item.Paliwo }; powiadomienia.Add(p); } else if (item.PoziomPaliwa < 10) { Powiadomienie p = new Powiadomienie { monitoring = item, Nazwa = "za niski poziom paliwa w zbiorniku " + item.Paliwo }; powiadomienia.Add(p); } if (item.Temperatura > 40) { Powiadomienie p = new Powiadomienie { monitoring = item, Nazwa = "za wysoka temperatura " + item.Paliwo }; powiadomienia.Add(p); } else if (item.Temperatura < -5) { Powiadomienie p = new Powiadomienie { monitoring = item, Nazwa = "za niska temperatura" + item.Paliwo }; powiadomienia.Add(p); } } ViewBag.powiadomienia = powiadomienia.Select(x => x.Nazwa); return(View(monity)); }
//metoda i algorytm wysylania wiadomosci public async void WysylanieWiadomosci() { Adres adresy = new Adres(); Konta konta = new Konta(); Limity limity = new Limity(); var openDialog = new Powiadomienie(); int taskDelayValue = Convert.ToInt32(decimal.Parse(Limity.limity.HowOften) / Konta.ListaKont.Count * 1000); if (Adres.ListaAdresow.Count > 0 && Konta.ListaKont.Count > 0 && !string.IsNullOrWhiteSpace(TematWiadomosc) && !string.IsNullOrWhiteSpace(TrescWiadomosc)) { int kontaLicznik = 0; int adresyLicznik = 0; do { GodzinowoModel = Limity.limity.PerHour; DobowoModel = Limity.limity.PerDay; GodzinowoWidok = Limity.limity.IloscGodzinowa.ToString(); DobowoWidok = Limity.limity.IloscDobowa.ToString(); if ((DateTime.Now - Limity.limity.RozpoczecieGodzinowe) > TimeSpan.FromHours(1)) //reset rozpoczęcia godzinowego { Limity.limity.RozpoczecieGodzinowe = DateTime.Now; Limity.limity.IloscGodzinowa = 0; limity.Zapisz(); } if ((DateTime.Now - Limity.limity.RozpoczecieDobowe) > TimeSpan.FromHours(24)) //rezet rozpoczęcia dobowego { Limity.limity.RozpoczecieDobowe = DateTime.Now; Limity.limity.IloscDobowa = 0; limity.Zapisz(); } if (Limity.limity.IloscGodzinowa > int.Parse(Limity.limity.PerHour) || Limity.limity.IloscDobowa > int.Parse(Limity.limity.PerDay)) //jeśli mamy limit godzinowy lub dniowy { Status = Models.StatusWysylania.Oczekiwanie; OnPropertyChanged("Status"); //openDialog.ShowPowiadomienie("Limit godzinowy/dobowy", "Powiadomienie"); await Task.Delay(1000); if (Status == Models.StatusWysylania.Wstrzymanie) { break; } continue; } if (adresyLicznik < Adres.ListaAdresow.Count) //wysyłka { Status = Models.StatusWysylania.Wysylanie; OnPropertyChanged("Status"); System.Windows.Application.Current.Dispatcher.Invoke(delegate { }); if (Adres.ListaAdresow[adresyLicznik].AktywnyEmail == true) { TerazWysylanyAdres = Adres.ListaAdresow[adresyLicznik].AdresMailowy; OnPropertyChanged("TerazWysylanyAdres"); TerazWysylaneKonto = Konta.ListaKont[kontaLicznik].AdresEmail; //email konta string TerazWysylaneHaslo = Konta.ListaKont[kontaLicznik].Haslo; //haslo konta string TerazWysylanySerwer = Konta.ListaKont[kontaLicznik].AdresSerwera; //smtp adres string TerazWysylaneNazwisko = Konta.ListaKont[kontaLicznik].ImieNazwisko; //nazwisko konta int TerazWysylanyPort = int.Parse(Konta.ListaKont[kontaLicznik].Port); OnPropertyChanged("TerazWysylaneKonto"); //tutaj metoda wysyłania wiadomości WyslijWiadomosc(TerazWysylanyAdres, TerazWysylaneKonto, TerazWysylaneNazwisko, wiadomoscModel.TematWiadomosc, wiadomoscModel.TrescWiadomosci, TerazWysylaneHaslo, TerazWysylanySerwer, TerazWysylanyPort); Adres.ListaAdresow[adresyLicznik].AktywnyEmail = false; kontaLicznik++; adresy.ZapiszAdresy(); await Task.Delay(taskDelayValue); //wpisana ilość przez ilość kont } adresyLicznik++; } if (kontaLicznik >= Konta.ListaKont.Count) //jeśli dojdziemy do końca listy kont { kontaLicznik = 0; Limity.limity.IloscGodzinowa++; Limity.limity.IloscDobowa++; limity.Zapisz(); } if (adresyLicznik == Adres.ListaAdresow.Count) //jeśli dojdziemy do końca listy adresów { Status = Models.StatusWysylania.Wstrzymanie; OnPropertyChanged("Status"); openDialog.ShowPowiadomienie("Wysłano wszystkie wiadomości", "Powiadomienie"); break; } if (Status == Models.StatusWysylania.Wstrzymanie) { break; } } while (kontaLicznik < Konta.ListaKont.Count); } else { //info w razie nie spełnienia warunków if (Adres.ListaAdresow.Count < 1) { openDialog.ShowPowiadomienie("Nie można rozpocząć wysyłania, adresy nie zostały wczytane", "Powiadomienie"); } if (Konta.ListaKont.Count < 1) { openDialog.ShowPowiadomienie("Nie można rozpocząć wysyłania, konta nie zostały zapisane", "Powiadomienie"); } if (string.IsNullOrWhiteSpace(TematWiadomosc) || string.IsNullOrWhiteSpace(TrescWiadomosc)) { openDialog.ShowPowiadomienie("Nie można rozpocząć wysyłania, brak tematu lub treści wiadomości", "Powiadomienie"); } } void WyslijWiadomosc(string to, string from, string name, string subject, string body, string pass, string smtp, int port) //wysyla wiadomosc { //dane wiadomosci MailMessage msg = new MailMessage(); msg.To.Add(to); //Mail recipient account msg.From = new MailAddress(from, name, System.Text.Encoding.UTF8); //Mail account and displays the name and the character encoding msg.Subject = subject; //Message header msg.SubjectEncoding = System.Text.Encoding.UTF8; //Mail title code msg.Body = body; //The message content msg.BodyEncoding = System.Text.Encoding.UTF8; //Message encoding msg.IsBodyHtml = false; //Whether the HTML mail msg.Priority = MailPriority.Normal; //Priority mail if (ListaZalacznikow.Count > 0) { foreach (var item in ListaZalacznikow) { msg.Attachments.Add(new Attachment(item.AdresPliku)); } } //dane konta SmtpClient client = new SmtpClient(); client.Credentials = new System.Net.NetworkCredential(from, pass); //The registered email address and password, the QQ mailbox, if you set a password to use independent, independent password instead of the password client.Host = smtp; //QQ mailbox corresponding to the SMTP server client.Port = port; object userState = msg; try { client.SendAsync(msg, userState); } catch (Exception ex) { } } }