Exemple #1
0
        AddVinoReturnCorrectVino()
        {
            //Arrange
            Vino vino = new Vino()
            {
                Nombre       = "Producto 4",
                Variedad     = It.IsAny <string>(),
                Crianza      = It.IsAny <string>(),
                Denominacion = It.IsAny <string>(),
                Color        = It.IsAny <string>(),
                Baja         = false,
                Capacidad    = 0.15m
            };

            VinoDto vinodto = new VinoDto()
            {
                Nombre       = "Producto 4",
                Variedad     = It.IsAny <string>(),
                Crianza      = It.IsAny <string>(),
                Denominacion = It.IsAny <string>(),
                Color        = It.IsAny <string>(),
                Baja         = false,
                Capacidad    = 0.15m
            };

            _bodegaRepository.Setup(x => x.Create(It.IsAny <Vino>())).Returns(vino);

            //Act
            var result = _service.AddVino(vinodto);

            //Assert
            Assert.AreEqual(result.Nombre, "Producto 4");
        }
        public VinoDto AddVino(VinoDto vino)
        {
            Vino v = _bodega.Create <Vino>(DtoAVino(vino));

            vino.Id = v.Id;
            return(vino);
        }
        public ActionResult Agregar(VinoDto vino)
        {
            if (ModelState.IsValid)
            {
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri(urlApi);
                    var responseTask = client.GetAsync(String.Format("Vino/{0}", vino.Nombre));
                    responseTask.Wait();
                    var result = responseTask.Result;
                    if (result.IsSuccessStatusCode)
                    {
                        var readTask = result.Content.ReadAsStringAsync();
                        readTask.Wait();

                        VinoDto vin = JsonConvert.DeserializeObject <VinoDto>(readTask.Result);
                        if (vin != null)
                        {
                            ModelState.AddModelError(string.Empty, String.Format(StringEnum.GetStringValue(MensajeError.ExisteVino), vino.Nombre));
                            ViewBag.ModalAgregar = true;
                            return(View("Index"));
                        }
                    }
                    var myContent   = JsonConvert.SerializeObject(vino);
                    var buffer      = System.Text.Encoding.UTF8.GetBytes(myContent);
                    var byteContent = new ByteArrayContent(buffer);
                    byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                    responseTask = client.PostAsync("Vino", byteContent);
                    responseTask.Wait();

                    result = responseTask.Result;
                    if (result.IsSuccessStatusCode)
                    {
                        var readTask = result.Content.ReadAsStringAsync();
                        readTask.Wait();

                        vino = JsonConvert.DeserializeObject <VinoDto>(readTask.Result);
                    }
                }

                return(RedirectToAction("Index"));
            }
            else
            {
                ViewBag.ModalAgregar = true;
                return(View("Index"));
            }
        }
 public IHttpActionResult Add(VinoDto vino)
 {
     try
     {
         return(Ok(_service.AddVino(vino)));;
     }
     catch (DbEntityValidationException efEx)
     {
         _logs.LogDbEntityValidationException(efEx);
     }
     catch (Exception ex)
     {
         _logs.LogException(ex);
     }
     return(Content(HttpStatusCode.NotFound, StringEnum.GetStringValue(MensajeError.NoRecuperado)));
 }
        private Vino DtoAVino(VinoDto v)
        {
            if (v == null)
            {
                return(null);
            }
            Vino vino = new Vino()
            {
                Id           = v.Id,
                Nombre       = v.Nombre,
                Denominacion = v.Denominacion,
                Capacidad    = v.Capacidad,
                Color        = v.Color,
                Crianza      = v.Crianza,
                Variedad     = v.Variedad,
                Baja         = v.Baja
            };

            return(vino);
        }