public HttpResponseMessage getAtencionPorRut(string rut)
        {
            List <Numero> consultaNumeros = new List <Numero>();

            using (BDAtencionEntities bd = new BDAtencionEntities())
            {
                consultaNumeros = (from x in bd.atencion
                                   where x.rut == rut
                                   join y in bd.servicio on x.id_servicio equals y.id_servicio
                                   select new Numero {
                    Rut = x.rut,
                    NumAtencion = x.nro_atencion,
                    Servicio = y.descripcion
                }).ToList();
            }
            return(Request.CreateResponse(HttpStatusCode.OK, consultaNumeros));
        }
Пример #2
0
 public HttpResponseMessage getObtenerServicios()
 {
     using (BDAtencionEntities bd = new BDAtencionEntities())
     {
         var listaServicio = bd.servicio.Select(x => new ServicioDTO
         {
             descripcion          = x.descripcion,
             id_servicio          = x.id_servicio,
             solicitar_comentario = x.solicitar_comentario
         }).ToList();
         if (listaServicio != null)
         {
             return(Request.CreateResponse(HttpStatusCode.OK, listaServicio));
         }
         else
         {
             return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Lista de servicios no encontradas"));
         }
     }
 }
 public HttpResponseMessage deleteNumeroAtencion(int nroAtencion)
 {
     try
     {
         using (BDAtencionEntities bd = new BDAtencionEntities())
         {
             var atencion = bd.atencion.Where(x => x.nro_atencion == nroAtencion).FirstOrDefault();
             bd.atencion.Remove(atencion);
             bd.SaveChanges();
             return(Request.CreateResponse(HttpStatusCode.OK));
         }
     }
     catch (ArgumentNullException ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "El numero solicitado no se encuentra en la BD", ex));
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
     }
 }
Пример #4
0
        /// <summary>
        /// Recuperara un cliente o creara uno nuevo si no existe
        /// </summary>
        /// <param name="atencion"></param>
        /// <param name="existe"></param>
        /// <returns></returns>
        private cliente obtenerCliente(Atencion atencion, out bool existe)
        {
            cliente clAux;
            bool    aux = false;

            using (BDAtencionEntities bd = new BDAtencionEntities())
            {
                var cliente = bd.cliente.Where(x => x.rut == atencion.Rut).FirstOrDefault();
                if (cliente != null)
                {
                    clAux = cliente;
                    aux   = true;
                }
                else
                {
                    clAux        = new cliente();
                    clAux.nombre = atencion.Nombre;
                    clAux.rut    = atencion.Rut;
                }
            }
            existe = aux;
            return(clAux);
        }
Пример #5
0
        public HttpResponseMessage postAgregarAtencion([FromBody] Atencion atencion)
        {
            bool existe;
            var  clEntidad = obtenerCliente(atencion, out existe);
            HttpResponseMessage respuesta;

            try
            {
                using (BDAtencionEntities bd = new BDAtencionEntities())
                {
                    if (existe)//Si el cliente existe en la bd, no se creara nuevamente, solo se asociara a la tabla atencion.
                    {
                        bd.Entry <cliente>(clEntidad).State = System.Data.Entity.EntityState.Unchanged;
                    }
                    var atEntidad = new atencion {
                        cliente = clEntidad
                    };
                    atEntidad.fecha_creacion = DateTime.Today;
                    atEntidad.es_cliente     = (short)atencion.EsCliente;
                    atEntidad.id_servicio    = atencion.TipoServicio;
                    atEntidad.comentario     = atencion.Comentario;
                    var modulo = new Modulo();
                    try
                    {
                        if (atEntidad.es_cliente > 0)//Si es cliente (> 0), se asociara a los modulos 2 al 10, Sino, al 1.
                        {
                            modulo = (from x in bd.modulo
                                      let cargaActual = (from y in bd.modulo select y.carga_actual)
                                                        where x.carga_actual == cargaActual.Min() &&
                                                        x.nro_modulo != 1
                                                        select new Modulo
                            {
                                nro_modulo = x.nro_modulo,
                                carga_actual = x.carga_actual
                            }).First();
                        }
                        else
                        {
                            modulo = (from x in bd.modulo
                                      where x.nro_modulo == 1
                                      select new Modulo
                            {
                                nro_modulo = x.nro_modulo,
                                carga_actual = x.carga_actual
                            }).First();
                        }
                    }
                    catch (InvalidOperationException ex)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No existen modulos en la BD", ex));
                    }
                    atEntidad.nro_modulo    = modulo.nro_modulo;
                    atEntidad.tiempo_espera = modulo.carga_actual * 5;
                    bd.atencion.Add(atEntidad);
                    bd.SaveChanges();
                    respuesta = Request.CreateResponse(HttpStatusCode.Created, atEntidad);
                }
                return(respuesta);
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }