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); }
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); }
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(""); }
/* * 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]); } }