Advertisement
Fhernd

ArticulosController.cs

Oct 20th, 2017
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.39 KB | None | 0 0
  1. using RiveraHuila.App.Persistencia.Modelo;
  2. using RiveraHuila.App.Servicio.Models;
  3. using System;
  4. using System.Data;
  5. using System.Data.Entity;
  6. using System.Data.Entity.Infrastructure;
  7. using System.Linq;
  8. using System.Net;
  9. using System.Threading.Tasks;
  10. using System.Web.Http;
  11. using System.Web.Http.Description;
  12.  
  13. namespace RiveraHuila.App.Servicio.Controllers
  14. {
  15.     public class ArticulosController : ApiController
  16.     {
  17.         private ProyectoRiveraHuilaEntities db = new ProyectoRiveraHuilaEntities();
  18.  
  19.         // GET: api/Articulos
  20.         public IQueryable<Articulo> GetArticulo()
  21.         {
  22.             return db.Articulo;
  23.         }
  24.  
  25.         // GET: api/Articulos/5
  26.         [ResponseType(typeof(Articulo))]
  27.         public async Task<IHttpActionResult> GetArticulo(int id)
  28.         {
  29.             Articulo articulo = await db.Articulo.FindAsync(id);
  30.             if (articulo == null)
  31.             {
  32.                 return NotFound();
  33.             }
  34.  
  35.             return Ok(articulo);
  36.         }
  37.  
  38.         public ArticuloBodega GetLibro(string libro)
  39.         {
  40.             IQueryable<Articulo> articulo = db.Articulo.Where(lib => (lib.IdTipoArticulo == 1 || lib.IdTipoArticulo == 2) && lib.Descripcion.Contains(libro));
  41.  
  42.             ArticuloBodega articuloBodega = new ArticuloBodega();
  43.  
  44.  
  45.             try
  46.             {
  47.                 articuloBodega.Articulo = articulo.FirstOrDefault();
  48.  
  49.                 IQueryable<Bodega> bodega =
  50.                     db.Bodega.Where(bod => bod.IdBodega == articuloBodega.Articulo.IdTipoArticulo);
  51.  
  52.                 articuloBodega.Bodega = bodega.FirstOrDefault();
  53.  
  54.                 IQueryable<Catalogo> catalogo =
  55.                     db.Catalogo.Where(cat => cat.IdArticulo == articuloBodega.Articulo.IdArticulo);
  56.  
  57.                 Catalogo c = catalogo.FirstOrDefault();
  58.  
  59.                 articuloBodega.CantidadDisponible = c.CantidadTotal - c.CantidadTotalActual;
  60.  
  61.  
  62.                 return articuloBodega;
  63.             }
  64.             catch (Exception e)
  65.             {
  66.                 articuloBodega.Articulo = new Articulo();
  67.                 articuloBodega.Bodega = new Bodega();
  68.                 articuloBodega.CantidadDisponible = 0;
  69.                 return articuloBodega;
  70.             }
  71.         }
  72.  
  73.         // PUT: api/Articulos/5
  74.         [ResponseType(typeof(void))]
  75.         public async Task<IHttpActionResult> PutArticulo(int id, Articulo articulo)
  76.         {
  77.             if (!ModelState.IsValid)
  78.             {
  79.                 return BadRequest(ModelState);
  80.             }
  81.  
  82.             if (id != articulo.IdArticulo)
  83.             {
  84.                 return BadRequest();
  85.             }
  86.  
  87.             db.Entry(articulo).State = EntityState.Modified;
  88.  
  89.             try
  90.             {
  91.                 await db.SaveChangesAsync();
  92.             }
  93.             catch (DbUpdateConcurrencyException)
  94.             {
  95.                 if (!ArticuloExists(id))
  96.                 {
  97.                     return NotFound();
  98.                 }
  99.                 else
  100.                 {
  101.                     throw;
  102.                 }
  103.             }
  104.  
  105.             return StatusCode(HttpStatusCode.NoContent);
  106.         }
  107.  
  108.         // POST: api/Articulos
  109.         [ResponseType(typeof(Articulo))]
  110.         public async Task<IHttpActionResult> PostArticulo(Articulo articulo)
  111.         {
  112.             if (!ModelState.IsValid)
  113.             {
  114.                 return BadRequest(ModelState);
  115.             }
  116.  
  117.             db.Articulo.Add(articulo);
  118.             await db.SaveChangesAsync();
  119.  
  120.             return CreatedAtRoute("DefaultApi", new { id = articulo.IdArticulo }, articulo);
  121.         }
  122.  
  123.         // DELETE: api/Articulos/5
  124.         [ResponseType(typeof(Articulo))]
  125.         public async Task<IHttpActionResult> DeleteArticulo(int id)
  126.         {
  127.             Articulo articulo = await db.Articulo.FindAsync(id);
  128.             if (articulo == null)
  129.             {
  130.                 return NotFound();
  131.             }
  132.  
  133.             db.Articulo.Remove(articulo);
  134.             await db.SaveChangesAsync();
  135.  
  136.             return Ok(articulo);
  137.         }
  138.  
  139.         protected override void Dispose(bool disposing)
  140.         {
  141.             if (disposing)
  142.             {
  143.                 db.Dispose();
  144.             }
  145.             base.Dispose(disposing);
  146.         }
  147.  
  148.         private bool ArticuloExists(int id)
  149.         {
  150.             return db.Articulo.Count(e => e.IdArticulo == id) > 0;
  151.         }
  152.     }
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement