Exemple #1
0
        public JObject Post(string guid, [FromBody] JObject value)
        {
            JObject ret = new JObject();

            try
            {
                __Prekrsaj    p       = value.ToObject <__Prekrsaj>();
                List <string> slike64 = p.Slike; // value["Slike"].ToObject<List<string>>();
                List <byte[]> slike   = new List <byte[]>();
                if (slike64 != null)
                {
                    foreach (var s in slike64)
                    {
                        try { slike.Add(Convert.FromBase64String(s)); } catch { }
                    }
                }

                var ispis = MethodsPrometno.SpremiPrekrsaj(guid, p, slike, out int idLokacije);
                ret.Add("Ispis", ispis);
                ret.Add("IDLokacije", idLokacije);
            }
            catch (Exception ex)
            {
                MethodsPrometno.SpremiGresku(guid, ex, "SPREMI PREKRSAJ CONTROLLER");
            }
            return(ret);
        }
Exemple #2
0
        static _NoviPrekrsaj KreirajNoviPrekrsaj(__Prekrsaj p)
        {
            _NoviPrekrsaj ret = null;

            try
            {
                int statusOcitanja = 0;
                switch (p.StatusOcitanja)
                {
                case "I":
                    statusOcitanja = 3;
                    break;

                case "O":
                    statusOcitanja = 1;
                    break;

                case "R":
                    statusOcitanja = 2;
                    break;
                }
                ret = new _NoviPrekrsaj(0, p.IDLokacije, (int)p.IDOpisaPrekrsaja, p.IDOpisaZakona == null ? 0 : (int)p.IDOpisaZakona, p.Lokacija != null? p.Lokacija.IDPozicioniranja:0, 0,
                                        p.IDDjelatnika, p.DatumVrijeme, p.Registracija, "", p.Latitude, p.Longitude, p.Adresa, 0, p.BrojDokumenta, p.Nalog != null, p.Nalog != null ? (int)p.Nalog.IDNaloga : 0,
                                        p.Drzava, statusOcitanja, "", p.Trajanje != null ? (int)p.Trajanje : 0);
                ret.ZakonskaSankcija = p.ZakonskaSankcija;
            } catch (Exception ex)
            {
                SpremiGresku("", ex, "KREIRAJ NOVI PREKRSAJ");
            }
            return(ret);
        }
Exemple #3
0
 public static string SpremiPrekrsaj(string grad, __Prekrsaj prekrsaj, List <byte[]> slike, out int idLokacije)
 {
     idLokacije = -1;
     try
     {
         if (prekrsaj.Lokacija != null)
         {
             idLokacije = prekrsaj.IDLokacije = SpremiLokaciju(grad, prekrsaj.Lokacija);
         }
         int           idp = -1;
         _NoviPrekrsaj np  = KreirajNoviPrekrsaj(prekrsaj);
         if (prekrsaj.IDLokacije > 0 && np != null)
         {
             idp = Mobile.NoviPrekrsaj(grad, np, idRedarstva, idAplikacije);
         }
         if (idp > 0)
         {
             Prekrsaj.DodajSliku(grad, np.IDLokacije, slike, idRedarstva, idAplikacije);
             return(Ispis.Predlozak(grad, np.IDLokacije, 1, 0, idAplikacije));
         }
     }catch (Exception ex)
     {
         SpremiGresku(grad, ex, "SPREMI PREKRSAJ");
     }
     return("");
 }
Exemple #4
0
        /*
         * public static JArray PretraziPrekrsaje(string grad, string registracija, int filter, int idDjelatnika, DateTime datum, int idRedarstva, int index, int count)
         * {
         *  bool nalogpauku, obavijesti, upozorenja;
         *  obavijesti = (filter & 0x01) != 0;
         *  upozorenja = (filter & 0x02) != 0;
         *  nalogpauku = (filter & 0x04) != 0;
         *
         *  if (count <= 0) count = int.MaxValue;
         *  bool contains = false;
         *  if (registracija != null && registracija.StartsWith("~"))
         *  {
         *      contains = true;
         *      registracija = registracija.Replace("~", "");
         *  }
         *  if (registracija == null)
         *  {
         *      registracija = "";
         *  }
         *  else registracija = registracija.Replace("-", "").Replace(" ", "").ToUpper().Replace("Č", "C").Replace("Ć", "C").Replace("Ž", "Z").Replace("Š", "S").Replace("Đ", "D");
         *
         *  try
         *  {
         *      JArray prekrsaji = new JArray();
         *      using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije)))
         *      {
         *          var prek = from p in db.Prekrsajis
         *                     join l in db.Lokacijes on p.IDLokacije equals l.IDLokacije
         *                     join d in db.Djelatniks on p.IDDjelatnika equals d.IDDjelatnika
         *                     join t in db.Terminalis on l.IDTerminala equals t.IDTerminala into term
         *                     from tt in term.DefaultIfEmpty()
         *                     join i in db.PredlosciIspisas on p.IDPredloskaIspisa equals i.IDPRedloska into predlozak
         *                     from ii in predlozak.DefaultIfEmpty()
         *                     join o in db.OpisiPrekrsajas on p.IDSkracenogOpisa equals o.IDOpisa into opis
         *                     from oo in opis.DefaultIfEmpty()
         *                     join r in db.PopisPrekrsajas on p.IDPrekrsaja equals r.IDPrekrsaja into popis
         *                     from rr in popis.DefaultIfEmpty()
         *                     join n in db.NaloziPaukus on p.IDNaloga equals n.IDNaloga into nalozi
         *                     from nn in nalozi.DefaultIfEmpty()
         *                     join s in db.StatusPaukas on nn.IDStatusa equals s.IDStatusa into statusi
         *                     from ss in statusi.DefaultIfEmpty()
         *                     join v in db.RazloziNepodizanjaVozilas on nn.IDRazloga equals v.IDRazloga into raz
         *                     from vv in raz.DefaultIfEmpty()
         *                     join z in db.Pauks on p.IDNaloga equals z.IDNaloga into pau
         *                     from zz in pau.DefaultIfEmpty()
         *                     join x in db.VozilaPaukas on nn.IDVozila equals x.IDVozila into voz
         *                     from xx in voz.DefaultIfEmpty()
         *                     join b in db.RACUNIs on nn.IDRacuna equals b.IDRacuna into rac
         *                     from bb in rac.DefaultIfEmpty()
         *                     join q in db.RACUNIs on p.IDRacuna equals q.IDRacuna into racP
         *                     from qq in racP.DefaultIfEmpty()
         *                     where (!string.IsNullOrEmpty(registracija) ? ((!contains) ? p.RegistracijskaPlocica.Replace("-", "").Replace(" ", "").ToUpper().Replace("Č", "C").Replace("Ć", "C").Replace("Ž", "Z").Replace("Š", "S").Replace("Đ", "D") == registracija
         *                           : p.RegistracijskaPlocica.Replace("-", "").Replace(" ", "").ToUpper().Replace("Č", "C").Replace("Ć", "C").Replace("Ž", "Z").Replace("Š", "S").Replace("Đ", "D").Contains(registracija)) : registracija == "") &&
         *                           (idDjelatnika > 0 ? p.IDDjelatnika == idDjelatnika : true) &&
         *                           //(!obavijesti ? p.IDPredloskaIspisa != 2 : obavijesti) &&
         *                           //(!upozorenja ? p.IDPredloskaIspisa != 1 : upozorenja) &&
         *                           (
         *                           (nalogpauku && p.NalogPauka.Value) ||
         *                           (obavijesti && (ii.IDPRedloska == 15 || ii.IDPRedloska == 2)) ||
         *                           (upozorenja && (ii.IDPRedloska == 14 || ii.IDPRedloska == 1))
         *                           ) &&
         *                           p.Vrijeme.Value.Date == datum.Date &&
         *                           p.IDRedarstva == idRedarstva &&
         *                           p.Status == false && p.Test == false
         *                     orderby p.Vrijeme.Value ascending
         *                     select new _Prekrsaj
         *                     (p.IDPrekrsaja,
         *                         p.IDRedarstva,
         *                         tt.IDTerminala,
         *                         oo.IDOpisa,
         *                         p.IDOpisaZakona,
         *                         p.IDLokacije,
         *                         (int)p.IDDjelatnika,
         *                         p.IDPredloskaIspisa ?? -1,
         *                         p.Lat,
         *                         p.Long,
         *                         p.Vrijeme.Value,
         *                         Priprema.Registracija(p.RegistracijskaPlocica, p.KraticaDrzave),
         *                         d.ImePrezime,
         *                         d.BrojSI,
         *                         string.IsNullOrEmpty(d.ImeNaRacunu) ? d.UID : d.ImeNaRacunu,
         *                         p.Adresa,
         *                         p.BrojUpozorenja,
         *                         tt.IDTerminala == 0 ? "RUČNI UNOS" : tt.NazivTerminala,
         *                         ii.NazivPredloska,
         *                         oo.OpisPrekrsaja,
         *                         oo.KratkiOpis,
         *                         "",
         *                         rr.MaterijalnaKaznjivaNorma,
         *                         "",
         *                         oo.ClanakPauka,
         *                         p.Kazna.ToString(),
         *                         p.NalogPauka,
         *                         p.Zahtjev,
         *                         p.Status,
         *                         p.Test,
         *                         p.TrajanjePostupka,
         *                         Priprema.Ocitanje(p.StatusOcitanja),
         *                         EncryptDecrypt.Decrypt(p.Tekst),
         *                         EncryptDecrypt.Decrypt(p.Napomena),
         *                         null,
         *                         "", //ImaKazni(grad, p.RegistracijskaPlocica, idAplikacije).ToString(),
         *                         p.StatusVPP ?? "",
         *                         p.KraticaDrzave,
         *                         p.IDRacuna,
         *                         qq.BrojRacuna,
         *                         Priprema.Nalog(p.IDNaloga, xx, ss, vv, nn, zz, bb.BrojRacuna, Naplata.VrstaPlacanja(grad, bb.IDVrstePlacanja, idAplikacije))
         *                     );
         *
         *          //return Priprema.PripremiPodatke(grad, prek, idAplikacije); => NE KUŽIM ČEMU - VIDJETI S PAJOM...
         *
         *          _Prekrsaj[] pks = prek.ToArray();
         *
         *
         *
         *          for (int i = 0; i < prek.Count(); i++)
         *          {
         *              if (count > 0 && i >= index + count) break;
         *              if (i >= index)
         *              {
         *                  var p = JObject.FromObject(pks[i], new JsonSerializer
         *                  {
         *                      DateParseHandling = DateParseHandling.DateTime
         *                  });
         *                  p.Add("Index", i);
         *                  p.Add("Total", pks.Length);
         *
         *                  prekrsaji.Add(p);
         *              }
         *
         *          }
         *
         *          foreach (JObject p in prekrsaji)
         *          {
         *             JArray slike64 = new JArray();
         *              var slike = from s in db.SlikaPrekrsajas
         *                          where s.IDLokacije == (int) p.GetValue("IDLokacije")
         *                          select s.Slika;
         *              foreach (var slika in slike)
         *              {
         *                  if (slika.Length > 0)
         *                  {
         *                      try
         *                      {
         *                          //Bitmap b = new Bitmap(new MemoryStream(slika.ToArray()));
         *                          //Image.GetThumbnailImageAbort myCallback = new Image.GetThumbnailImageAbort(ThumbnailCallback);
         *                          //Image myThumbnail = b.GetThumbnailImage(64, 64, myCallback, IntPtr.Zero);
         *                          //var bytes = new MemoryStream();
         *                          //myThumbnail.Save(bytes, ImageFormat.Jpeg);
         *                          //slike64.Add(Convert.ToBase64String(bytes.ToArray()));
         *                          //break;
         *                          Bitmap b = new Bitmap(new MemoryStream(slika.ToArray()));
         *                          int maxPixelDimension = 240;
         *                          int w = b.Width, h = b.Height;
         *
         *                          if (w > h)
         *                          {
         *                              h = h * maxPixelDimension / w;
         *                              w = maxPixelDimension;
         *                          }
         *                          else
         *                          {
         *                              w = w * maxPixelDimension / h;
         *                              h = maxPixelDimension;
         *                          }
         *                          Image.GetThumbnailImageAbort myCallback = ThumbnailCallback;
         *                          Image myThumbnail = b.GetThumbnailImage(w, h, myCallback, IntPtr.Zero);
         *                          var bytes = new MemoryStream();
         *                          myThumbnail.Save(bytes, ImageFormat.Jpeg);
         *                          slike64.Add(Convert.ToBase64String(bytes.ToArray()));
         *                          break;
         *                      }
         *                      catch (Exception ex)
         *                      {
         *                          Sustav.SpremiGresku(grad, ex, idAplikacije, "Thumbnail slikice...");
         *                      }
         *                  }
         *              }
         *              p.Add("Slike", slike64);
         *          }
         *      }
         *      return prekrsaji;
         *  }
         *  catch (Exception ex)
         *  {
         *      Sustav.SpremiGresku(grad, ex, idAplikacije, "Pretrazi Prekrsaje (MethodsPrometno)");
         *      return new JArray();
         *  }
         * }
         */


        public static __Prekrsaj[] PretraziPrekrsaje(string grad, string registracija, int filter, int idDjelatnika, DateTime datum, int idRedarstva, int index, int count)
        {
            bool nalogpauku, obavijesti, upozorenja;

            obavijesti = (filter & 0x01) != 0;
            upozorenja = (filter & 0x02) != 0;
            nalogpauku = (filter & 0x04) != 0;

            __Prekrsaj[] prekrsaji = new __Prekrsaj[0];
            System.Diagnostics.Debug.Print(DateTime.Now.ToString());
            if (count <= 0)
            {
                count = int.MaxValue;
            }
            bool contains = false;

            if (registracija != null && registracija.StartsWith("~"))
            {
                contains     = true;
                registracija = registracija.Replace("~", "");
            }
            if (registracija == null)
            {
                registracija = "";
            }
            else
            {
                registracija = registracija.Replace("-", "").Replace(" ", "").ToUpper().Replace("Č", "C").Replace("Ć", "C").Replace("Ž", "Z").Replace("Š", "S").Replace("Đ", "D");
            }

            try
            {
                using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije)))
                {
                    var prek = from p in db.Prekrsajis
                               join l in db.Lokacijes on p.IDLokacije equals l.IDLokacije
                               join d in db.Djelatniks on p.IDDjelatnika equals d.IDDjelatnika
                               join t in db.Terminalis on l.IDTerminala equals t.IDTerminala into term
                               from tt in term.DefaultIfEmpty()
                               join i in db.PredlosciIspisas on p.IDPredloskaIspisa equals i.IDPRedloska into predlozak
                               from ii in predlozak.DefaultIfEmpty()
                               join o in db.OpisiPrekrsajas on p.IDSkracenogOpisa equals o.IDOpisa into opis
                               from oo in opis.DefaultIfEmpty()
                               join r in db.PopisPrekrsajas on p.IDPrekrsaja equals r.IDPrekrsaja into popis
                               from rr in popis.DefaultIfEmpty()
                               join n in db.NaloziPaukus on p.IDNaloga equals n.IDNaloga into nalozi
                               from nn in nalozi.DefaultIfEmpty()
                               join s in db.StatusPaukas on nn.IDStatusa equals s.IDStatusa into statusi
                               from ss in statusi.DefaultIfEmpty()
                               join v in db.RazloziNepodizanjaVozilas on nn.IDRazloga equals v.IDRazloga into raz
                               from vv in raz.DefaultIfEmpty()
                               join z in db.Pauks on p.IDNaloga equals z.IDNaloga into pau
                               from zz in pau.DefaultIfEmpty()
                               join x in db.VozilaPaukas on nn.IDVozila equals x.IDVozila into voz
                               from xx in voz.DefaultIfEmpty()
                               join b in db.RACUNIs on nn.IDRacuna equals b.IDRacuna into rac
                               from bb in rac.DefaultIfEmpty()
                               join q in db.RACUNIs on p.IDRacuna equals q.IDRacuna into racP
                               from qq in racP.DefaultIfEmpty()
                               //join slike in db.SlikaPrekrsajas on p.IDLokacije equals slike.IDLokacije into slikeP
                               //from slikes in slikeP.Take(1).DefaultIfEmpty()
                               where (!string.IsNullOrEmpty(registracija) ? ((!contains) ? p.RegistracijskaPlocica.Replace("-", "").Replace(" ", "").ToUpper().Replace("Č", "C").Replace("Ć", "C").Replace("Ž", "Z").Replace("Š", "S").Replace("Đ", "D") == registracija
                                     : p.RegistracijskaPlocica.Replace("-", "").Replace(" ", "").ToUpper().Replace("Č", "C").Replace("Ć", "C").Replace("Ž", "Z").Replace("Š", "S").Replace("Đ", "D").Contains(registracija)) : registracija == "") &&
                               (idDjelatnika > 0 ? p.IDDjelatnika == idDjelatnika : true) &&
                               //(!obavijesti ? p.IDPredloskaIspisa != 2 : obavijesti) &&
                               //(!upozorenja ? p.IDPredloskaIspisa != 1 : upozorenja) &&
                               (
                        (nalogpauku && p.NalogPauka.Value) ||
                        (obavijesti && ii.Kaznjava) ||
                        (upozorenja && !ii.Kaznjava)
                               ) &&
                               p.Vrijeme.Value.Date == datum.Date &&
                               p.IDRedarstva == idRedarstva &&
                               p.Status == false && p.Test == false
                               orderby p.Vrijeme.Value descending
                               select new __Prekrsaj
                                   (p.IDPrekrsaja,
                                   p.IDRedarstva,
                                   tt.IDTerminala,
                                   oo.IDOpisa,
                                   p.IDOpisaZakona,
                                   p.IDLokacije,
                                   (int)p.IDDjelatnika,
                                   p.IDPredloskaIspisa ?? -1,
                                   p.Lat,
                                   p.Long,
                                   p.Vrijeme.Value,
                                   Priprema.Registracija(p.RegistracijskaPlocica, p.KraticaDrzave),
                                   d.ImePrezime,
                                   d.BrojSI,
                                   string.IsNullOrEmpty(d.ImeNaRacunu) ? d.UID : d.ImeNaRacunu,
                                   p.Adresa,
                                   p.BrojUpozorenja,
                                   tt.IDTerminala == 0 ? "RUČNI UNOS" : tt.NazivTerminala,
                                   ii.NazivPredloska,
                                   oo.OpisPrekrsaja,
                                   oo.KratkiOpis,
                                   "",
                                   rr.MaterijalnaKaznjivaNorma,
                                   "",
                                   oo.ClanakPauka,
                                   p.Kazna.ToString(),
                                   p.NalogPauka,
                                   p.Zahtjev,
                                   p.Status,
                                   p.Test,
                                   p.TrajanjePostupka,
                                   Priprema.Ocitanje(p.StatusOcitanja),
                                   EncryptDecrypt.Decrypt(p.Tekst),
                                   EncryptDecrypt.Decrypt(p.Napomena),
                                   null,
                                   "", //ImaKazni(grad, p.RegistracijskaPlocica, idAplikacije).ToString(),
                                   p.StatusVPP ?? "",
                                   p.KraticaDrzave,
                                   p.IDRacuna,
                                   qq.BrojRacuna,
                                   Priprema.Nalog(p.IDNaloga, xx, ss, vv, nn, zz, bb.BrojRacuna, Naplata.VrstaPlacanja(grad, bb.IDVrstePlacanja, idAplikacije)),
                                   null, //(slikes.Slika != null)? slikes.Slika.ToArray():null
                                   ii.Kaznjava
                                   );

                    //return Priprema.PripremiPodatke(grad, prek, idAplikacije); => NE KUŽIM ČEMU - VIDJETI S PAJOM...

                    __Prekrsaj[] pks = prek.ToArray();
                    System.Diagnostics.Debug.Print(DateTime.Now.ToString());
                    int len = (count > 0) ? Math.Min(count, pks.Length - index) : Math.Max(0, pks.Length - index);
                    prekrsaji = new __Prekrsaj[len];
                    Array.Copy(pks, index, prekrsaji, 0, len);

                    for (int i = 0; i < prekrsaji.Length; i++)
                    {
                        __Prekrsaj p = prekrsaji[i];
                        p.Index = i + index;
                        p.Total = pks.Length;
                    }
                    System.Diagnostics.Debug.Print(DateTime.Now.ToString());

                    foreach (__Prekrsaj p in prekrsaji)
                    {
                        List <string> slike64 = new List <string>();
                        var           slika   = (from s in db.SlikaPrekrsajas
                                                 where s.IDLokacije == p.IDLokacije
                                                 select s.Slika).FirstOrDefault();
                        //foreach (var slika in slike)
                        //{
                        if (slika != null && slika.Length > 0)
                        {
                            try
                            {
                                //Bitmap b = new Bitmap(new MemoryStream(slika.ToArray()));
                                //Image.GetThumbnailImageAbort myCallback = new Image.GetThumbnailImageAbort(ThumbnailCallback);
                                //Image myThumbnail = b.GetThumbnailImage(64, 64, myCallback, IntPtr.Zero);
                                //var bytes = new MemoryStream();
                                //myThumbnail.Save(bytes, ImageFormat.Jpeg);
                                //slike64.Add(Convert.ToBase64String(bytes.ToArray()));
                                //break;
                                Bitmap b = new Bitmap(new MemoryStream(slika.ToArray()));
                                int    maxPixelDimension = 240;
                                int    w = b.Width, h = b.Height;

                                if (w > h)
                                {
                                    h = h * maxPixelDimension / w;
                                    w = maxPixelDimension;
                                }
                                else
                                {
                                    w = w * maxPixelDimension / h;
                                    h = maxPixelDimension;
                                }
                                Image.GetThumbnailImageAbort myCallback = ThumbnailCallback;
                                Image myThumbnail = b.GetThumbnailImage(w, h, myCallback, IntPtr.Zero);
                                var   bytes = new MemoryStream();
                                myThumbnail.Save(bytes, ImageFormat.Jpeg);
                                slike64.Add(Convert.ToBase64String(bytes.ToArray()));
                                //break;
                            }
                            catch (Exception ex)
                            {
                                Sustav.SpremiGresku(grad, ex, idAplikacije, "Thumbnail slikice...");
                            }
                        }
                        //}
                        p.Slike = slike64;
                    }
                }
                System.Diagnostics.Debug.Print(DateTime.Now.ToString());
                return(prekrsaji);
            }
            catch (Exception ex)
            {
                Sustav.SpremiGresku(grad, ex, idAplikacije, "Pretrazi Prekrsaje (MethodsPrometno)");
                return(new __Prekrsaj[0]);
            }
        }