Exemplo n.º 1
0
        public void GetVerticesZona(string idZona)
        {
            int _idZona;

            int.TryParse(idZona, out _idZona);

            Methods_Zonas _obj = new Methods_Zonas();

            Track_Zonas _zona = _obj.GetZonaById(_idZona);

            string _response = string.Empty;

            if (_zona != null)
            {
                var json = new
                {
                    IdZona     = _zona.IdZona,
                    NombreZona = _zona.NombreZona,
                    Latitud    = _zona.Latitud,
                    Longitud   = _zona.Longitud,
                    idTipoZona = _zona.IdTipoZona,
                    Vertices   = _obj.GetVerticesZona(_idZona)
                };
                _response = JsonConvert.SerializeObject(json);
            }


            Response.Write(_response);
        }
Exemplo n.º 2
0
        public Track_Zonas GetZonaById(int idZona)
        {
            try
            {
                Track_Zonas _zona = _context.Track_Zonas.Where(Z => Z.IdZona == idZona).FirstOrDefault();

                return(_zona);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Exemplo n.º 3
0
        public bool ValidarIdZona(int IdZona)
        {
            try
            {
                Track_Zonas _existe = _context.Track_Zonas.Where(C => C.IdZona == IdZona).FirstOrDefault();

                if (_existe != null)
                {
                    return(false);
                }

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Exemplo n.º 4
0
        public string EditarZona(int idZona, string nombreZona, int idTipoZona, string clientesAsociados, List <Tuple <decimal, decimal> > vertices, int radio, int idUsuario)
        {
            try
            {
                decimal promLat = 0;
                decimal promLon = 0;

                Track_Zonas _zona = _context.Track_Zonas.Where(C => C.IdZona == idZona).FirstOrDefault();

                if (_zona == null)
                {
                    return("El Id de Zona no existe.");
                }

                _zona.NombreZona = nombreZona;
                _zona.IdTipoZona = idTipoZona;
                _zona.Radio      = radio;

                List <Track_Vertices> _vertices = _context.Track_Vertices.Where(C => C.IdZona == idZona).ToList();

                for (int i = 0; i < _vertices.Count; i++)
                {
                    _context.Track_Vertices.Remove(_vertices[i]);
                }

                for (int i = 0; i < vertices.Count; i++)
                {
                    promLat += vertices[i].Item1;
                    promLon += vertices[i].Item2;

                    Track_Vertices _vertice = new Track_Vertices();
                    _vertice.IdZona   = _zona.IdZona;
                    _vertice.IdPunto  = (i + 1);
                    _vertice.Latitud  = vertices[i].Item1;
                    _vertice.Longitud = vertices[i].Item2;

                    _context.Track_Vertices.Add(_vertice);
                }

                Track_Vertices _ultVertice = new Track_Vertices();
                _ultVertice.IdZona   = _zona.IdZona;
                _ultVertice.IdPunto  = vertices.Count + 1;
                _ultVertice.Latitud  = vertices[0].Item1;
                _ultVertice.Longitud = vertices[0].Item2;

                _context.Track_Vertices.Add(_ultVertice);

                promLat = promLat / vertices.Count;
                promLon = promLon / vertices.Count;

                _zona.Latitud  = promLat;
                _zona.Longitud = promLon;

                _context.SaveChanges();

                string response = _context.Track_UpdateCodZonaIdZona(clientesAsociados, idZona).FirstOrDefault().Respuesta;

                Methods_User _user = new Methods_User();
                //////_user.guardarlog(idUsuario, "Edición de zona: " + idZona.ToString());

                return(response);
            }
            catch (Exception e)
            {
                return("Se ha producido un error. Methods_Zonas.EditarZona. " + e.InnerException);
            }
        }
Exemplo n.º 5
0
        public string NuevaZona(string nombreZona, int idTipoZona, string clientesAsociados, List <Tuple <decimal, decimal> > vertices, int radio, int idUsuario)
        {
            try
            {
                decimal promLat    = 0;
                decimal promLon    = 0;
                bool    existeZona = false;

                //Track_Zonas _zona = _context.Track_Zonas.Where(C => C.IdZona == idZona).FirstOrDefault().IdZona;
                int newIdZona = (from c in _context.Track_Zonas orderby c.IdZona descending select c.IdZona).FirstOrDefault() + 1;
                if (newIdZona <= 100000000)
                {
                    newIdZona = 100000001;
                }

                Track_Zonas _zona = new Track_Zonas();

                _zona.IdZona     = newIdZona;
                _zona.NombreZona = nombreZona;
                _zona.IdTipoZona = idTipoZona;
                _zona.Radio      = radio;

                for (int i = 0; i < vertices.Count; i++)
                {
                    promLat += vertices[i].Item1;
                    promLon += vertices[i].Item2;

                    Track_Vertices _vertice = new Track_Vertices();
                    _vertice.IdZona   = _zona.IdZona;
                    _vertice.IdPunto  = (i + 1);
                    _vertice.Latitud  = vertices[i].Item1;
                    _vertice.Longitud = vertices[i].Item2;

                    _context.Track_Vertices.Add(_vertice);

                    if (_context.Track_ExisteZonaEnPunto(vertices[i].Item1.ToString().Replace(",", "."), vertices[i].Item2.ToString().Replace(",", "."), idTipoZona).First().Value > 0)
                    {
                        existeZona = true;
                    }
                }

                Track_Vertices _ultVertice = new Track_Vertices();
                _ultVertice.IdZona   = _zona.IdZona;
                _ultVertice.IdPunto  = vertices.Count + 1;
                _ultVertice.Latitud  = vertices[0].Item1;
                _ultVertice.Longitud = vertices[0].Item2;

                _context.Track_Vertices.Add(_ultVertice);

                promLat = promLat / vertices.Count;
                promLon = promLon / vertices.Count;

                _zona.Latitud  = promLat;
                _zona.Longitud = promLon;

                int existeName = 0;
                try { existeName = (from c in _context.Track_Zonas where c.NombreZona.ToLower() == nombreZona.ToLower() select c).Count(); } catch { existeName = 0; }

                if (_context.Track_ExisteZonaEnPunto(promLat.ToString().Replace(",", "."), promLon.ToString().Replace(",", "."), idTipoZona).First().Value > 0)
                {
                    existeZona = true;
                }

                _context.Track_Zonas.Add(_zona);

                if (existeName > 0)
                {
                    return("Ya existe una zona con ese Nombre, favor utilice otro");
                }
                else
                {
                    _context.SaveChanges();

                    string response = _context.Track_UpdateCodZonaIdZona(clientesAsociados, newIdZona).FirstOrDefault().Respuesta;

                    if (existeZona)
                    {
                        return("Ya existe una zona en los puntos seleccionados, de todas formas la zona fue agregada satisfactoriamente. IdZona generado: " + newIdZona.ToString());
                    }
                    else
                    {
                        Methods_User _user = new Methods_User();
                        /////_user.guardarlog(idUsuario, "Creación de zona: " + newIdZona.ToString());

                        return("Zona agregada satisfactoriamente. IdZona generado: " + newIdZona.ToString());
                    }
                }
            }
            catch (Exception e)
            {
                return("Se ha producido un error. Methods_Zonas.NuevaZona. " + e.InnerException);
            }
        }