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));
     }
 }
Пример #2
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));
            }
        }