public int Post(string guid, [FromBody] JObject value) { try { __Opazanje o = value.ToObject <__Opazanje>(); List <string> slike64 = value["Slike"].ToObject <List <string> >(); List <byte[]> slike = new List <byte[]>(); foreach (var s in slike64) { try { slike.Add(Convert.FromBase64String(s)); } catch { } } return(Methods.Prijava(guid, o, slike)); } catch (Exception ex) { Methods.SpremiGresku(guid, ex, "PRIJAVE CONTROLLER (vanjsko postupanje)"); return(-1); } }
public static int Prijava(string grad, __Opazanje op, List <byte[]> slike) { _Prijava prijava = new _Prijava(0, 0, "", 2, 0, null, null, "", (decimal)op.Latitude, (decimal)op.Longitude, op.Adresa, "", op.Registracija + " (" + op.Drzava + ")", (DateTime)op.Vrijeme, false, null, "PARKING TEREN"); return(VanjskaPrijava.NovaPrijava(grad, prijava, slike, idAplikacije)); }
/// <summary> /// /// </summary> /// <param name="grad"></param> /// <param name="registracija"></param> /// <param name="filter"> /// bit 0 -> opažanja kojima NIJE prošao "grace period" /// bit 1 -> opažanja kojima JE prošao "grace period" /// bit 2 -> izdane parkirne karte /// </param> /// <param name="idDjelatnika"></param> /// <param name="idSektora"></param> /// <param name="index"></param> /// <param name="count"></param> /// <param name="idAplikacije"></param> /// <returns></returns> public static __Opazanje[] TraziOpazanje(string grad, string registracija, int filter, int?idDjelatnika, int?idSektora, int index, int count, double latitude, double longitude, int zastara, int idAplikacije) { int zastaraOpazanja = zastara > 0? zastara:4; // broj sati nakon kojih ne prikazuje opažanje bool op1, op2, kaznjeni; op1 = (filter & 0x01) != 0; op2 = (filter & 0x02) != 0; kaznjeni = (filter & 0x04) != 0; if (count <= 0) { count = int.MaxValue; } try { List <_2DLista> statusi = Parking.Statusi(false, idAplikacije); 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"); } using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { var op = from o in db.PARKING_OPAZANJAs join d in db.Djelatniks on o.IDDjelatnika equals d.IDDjelatnika into djelatnik from dd in djelatnik.DefaultIfEmpty() join s in db.PARKING_SEKTORIs on o.IDSektora equals s.IDSektora into sektori from ss in sektori.DefaultIfEmpty() join z in db.PARKING_ZONEs on ss.IDZone equals z.IDZone into zone from zz in zone.DefaultIfEmpty() where (!string.IsNullOrEmpty(registracija) ? ((!contains) ? o.Registracija.Replace("-", "").Replace(" ", "").ToUpper().Replace("Č", "C").Replace("Ć", "C").Replace("Ž", "Z").Replace("Š", "S").Replace("Đ", "D") == registracija : o.Registracija.Replace("-", "").Replace(" ", "").ToUpper().Replace("Č", "C").Replace("Ć", "C").Replace("Ž", "Z").Replace("Š", "S").Replace("Đ", "D").Contains(registracija)) : registracija == "") && ((DateTime.Now - o.Vrijeme.Value).TotalHours <= zastaraOpazanja || (o.PlacenoDo != null && o.PlacenoDo.Value > DateTime.Now)) && (o.Otisao == null || o.Otisao.Value != true) && //(o.PlacenoDo == null || DateTime.Now < o.PlacenoDo) && ( (kaznjeni && o.Kaznjen == true) || (op1 && o.Kaznjen != true && (DateTime.Now - o.Vrijeme.Value).TotalMinutes < zz.GracePeriod) || (op2 && o.Kaznjen != true && (DateTime.Now - o.Vrijeme.Value).TotalMinutes >= zz.GracePeriod) ) && (idDjelatnika != null && idDjelatnika > 0 ? o.IDDjelatnika == idDjelatnika : true) && (idSektora == null || idSektora <= 0 ? true : o.IDSektora == idSektora) select new __Opazanje(o.IDOpazanja, o.IDLokacije, o.IDSektora, ss.IDZone, o.IDDjelatnika, 0, o.IDStatusa, o.IDRacuna, ss.NazivSektora, dd.ImePrezime, zz.NazivZone, Parking.Status(o.IDStatusa, statusi), o.Registracija, o.Drzava, (DateTime)o.Vrijeme, o.PlacenoDo, o.Latitude, o.Longitude, o.Iznos, o.Kaznjen.Value, (o.Otisao == null) ? false : o.Otisao.Value, "", ""); __Opazanje[] opazanja; __Opazanje[] ops = op.ToArray(); Array.Sort(ops, delegate(__Opazanje o1, __Opazanje o2) { double d1 = Udaljenost(latitude, longitude, (double)o1.Latitude, (double)o1.Longitude); double d2 = Udaljenost(latitude, longitude, (double)o2.Latitude, (double)o2.Longitude); return(d1.CompareTo(d2)); }); int len = (count > 0) ? Math.Min(count, ops.Length - index) : Math.Max(0, ops.Length - index); opazanja = new __Opazanje[len]; Array.Copy(ops, index, opazanja, 0, len); for (int i = 0; i < opazanja.Length; i++) { __Opazanje o = opazanja[i]; o.Index = i + index; o.Total = ops.Length; } foreach (var opazanje in opazanja) { List <string> slike64 = new List <string>(); var slika = (from s in db.SlikaPrekrsajas where s.IDLokacije == opazanje.IDLokacije select s.Slika).FirstOrDefault(); 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..."); } } opazanje.Slike = slike64; } return(opazanja); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "PRETRAGA OPAZANJA"); return(new __Opazanje[0]); } }