Beispiel #1
0
        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"));
        }
Beispiel #3
0
        public void Egzecue()
        {
            Status = Models.SendingStatus.Sending;
            OnPropertyChanged("Status");
            var openDialog = new Powiadomienie();

            openDialog.ShowPowiadomienie(Status.ToString(), "Powiadomienie");
        }
Beispiel #4
0
        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));
        }
Beispiel #7
0
        //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)
                {
                }
            }
        }