示例#1
0
 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);
     }
 }
示例#2
0
        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));
        }
示例#3
0
        /// <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]);
            }
        }