public IHttpActionResult Post_CrearTienda(TiendaViewModel tiendaViewModel)
        {
            if (ModelState.IsValid)
            {
                RelojServidor relojServidor = new RelojServidor();
                relojServidor.ColocarMismaFechaHoraEnCamposFechaAltaYFechaModificacion(tiendaViewModel);
                TiendaLN tiendaLN = new TiendaLN();

                string respuesta = tiendaLN.PostCrearTienda(tiendaViewModel);
                if (respuesta.Contains("ok"))
                {
                    return(Ok(respuesta));
                }

                else
                {
                    return(BadRequest(respuesta));
                }
            }

            else
            {
                return(BadRequest("Fallo el model binder en TiendaAPIController.Put_CrearTienda"));
            }
        }
        public IHttpActionResult Post_InsertarNuevaCaducidad(List <TiendaJoinCaducidadesViewModel> coleccionViewModel)
        {
            string respuesta = "";

            if (ModelState.IsValid)
            {
                TiendaLN tiendaLN = new TiendaLN();
                respuesta = tiendaLN.Post_AgregarNuevaCaducidad(coleccionViewModel);

                if (respuesta.Contains("ok"))
                {
                    return(Ok());
                }

                else
                {
                    return(BadRequest(respuesta));
                }
            }

            else
            {
                return(BadRequest("Fallo en el model binder CaducidadAPIController.Post_InsertarNuevaCaducidad"));
            }
        }
        public IHttpActionResult Get_BuscarTiendaDeUsuarioXNombre(string nombreTienda, int idUsuarioOperador)
        {
            if (ModelState.IsValid)
            {
                TiendaViewModel tiendaViewModel = new TiendaViewModel();
                tiendaViewModel.Nombre        = nombreTienda;
                tiendaViewModel.IdUsuarioAlta = idUsuarioOperador;
                TiendaLN        tiendaLN = new TiendaLN();
                TiendaViewModel tiendaBuscadaViewModel = tiendaLN.Get_BuscarTiendaDeUsuarioXNombre(tiendaViewModel);
                if (tiendaBuscadaViewModel != null)
                {
                    return(Ok(tiendaBuscadaViewModel));
                }

                else
                {
                    return(BadRequest("No se encontro la tienda buscada"));
                }
            }

            else
            {
                return(BadRequest("Fallo en el model binder TiendaAPIController.Get_BuscarTiendaDeUsuarioXNombre"));
            }
        }
        public IHttpActionResult Get_RecuperarProductosNoPertenecenATienda(int idTienda, string usuario, int dummy)
        { //El parametro dummy solo es para que la firma de este metodo sea diferente a cualquier otro metodo de este mismo
            //controlador, ya que si 2 metodos de este controlador tiene la misma firma y son del mismo tipo de solocitud (get,put,delete, etc)
            //falla el controlador
            if (ModelState.IsValid)
            {
                List <ProductoJoinProductoConDetallesJoinDetalleProductoViewModel> resViewModel = null;
                TiendaLN tiendaLN = new TiendaLN();

                resViewModel = tiendaLN.Get_RecuperarProductosNoPertenecenATienda(idTienda, usuario);
                if (resViewModel != null)
                {
                    return(Ok(resViewModel));
                }

                else
                {
                    return(BadRequest("No fue posible obtener la lista de productos buscada"));
                }
            }

            else
            {
                return(BadRequest("Fallo en model binder en TiendaAPIController.Get_RecuperarProductosNoPertenecenATienda"));
            }
        }
        public IHttpActionResult Get_MostrarTiendasYProductos(int idUsuarioOperador)
        {
            if (ModelState.IsValid)
            {  /*Main succes Scenario*/
                UsuarioViewModel usuarioViewModel;
                UsuarioLN        usuarioLN = new UsuarioLN();
                usuarioViewModel = usuarioLN.Get_DetallesDeUsuarioXId(idUsuarioOperador);

                List <ProductoJoinProductoConDetallesJoinDetalleProductoViewModel> productosYDetallesVM = new List <ProductoJoinProductoConDetallesJoinDetalleProductoViewModel>();
                ProductoLN productoLN = new ProductoLN();
                productosYDetallesVM = productoLN.MostrarTodosRegistradosDeOperador(usuarioViewModel.Id);

                List <TiendaViewModel> tiendasVM = new List <TiendaViewModel>();
                TiendaLN tiendaLN = new TiendaLN();
                tiendasVM = tiendaLN.MostrarTodasTiendasDeUsuario(usuarioViewModel.Usuario);

                TiendasYProductosViewModel tiendasYProductosViewModel = new TiendasYProductosViewModel(tiendasVM, productosYDetallesVM);
                return(Ok(tiendasYProductosViewModel));
            }

            else
            {
                return(BadRequest("Fallo el model binder en TiendaYProductoAPI.Get_MostrarTiendasYProductos"));
            }
        }
        public IHttpActionResult Get_MostrarTodasTiendasDeUsuario(string usuario)
        {
            TiendaLN tiendaLN = new TiendaLN();

            IList <TiendaViewModel> res = tiendaLN.MostrarTodasTiendasDeUsuario(usuario);

            return(Ok(res));
        }
        public IHttpActionResult Get_RecuperarProductosDeTiendaXId(int idTienda, string usuario)
        {
            TiendaLN tiendaLN = new TiendaLN();
            IList <AlmacenaJoinProductoJoinProductoConDetallesJoinDetalleProductoVM> res;

            res = tiendaLN.Get_RecuperarProductosDeTienda(idTienda, usuario);

            return(Ok(res));
        }
        public IHttpActionResult Post_BuscarCaducidad(ParametroBuscarCaducidadViewModel parametroBuscarCaducidadViewModel)
        {
            IList <CaducaJoinProductoJoin__JoinPeriodoJoinPeriodoConUnidadJoinUnidadMedidaViewModel> respuestaColeccion;

            if (ModelState.IsValid)
            {
                TiendaLN tiendaLN = new TiendaLN();
                respuestaColeccion = tiendaLN.Get_BuscarCaducidadEnTiendaFrom(parametroBuscarCaducidadViewModel);


                return(Ok(respuestaColeccion));
            }

            else
            {
                return(BadRequest("Fallo en el model binder CaducidadAPIController.Post_BuscarCaducidad"));
            }
        }
        public IHttpActionResult Put_ActualizarTiendaDeUsuario(TiendaViewModel tiendaViewModel)
        {
            if (ModelState.IsValid)
            {
                TiendaLN tiendaLN = new TiendaLN();
                string   res      = tiendaLN.Put_ActualizarTiendaDeUsuario(tiendaViewModel);

                if (res.Contains("ok"))
                {
                    return(Ok());
                }

                else
                {
                    return(BadRequest(res));
                }
            }

            else
            {
                return(BadRequest("Fallo el model binder en TiendaAPIController.Put_ActualizarTiendaDeUsuario"));
            }
        }
        public IHttpActionResult Post_AgregarProductosATienda(List <AlmacenaJoinProductoJoinProductoConDetallesJoinDetalleProductoVM> coleccion)
        {
            if (ModelState.IsValid)
            {
                TiendaLN tiendaLN  = new TiendaLN();
                string   respuesta = tiendaLN.Post_AgregarProductosATienda(coleccion);

                if (respuesta.Contains("ok"))
                {
                    return(Ok(respuesta));
                }

                else
                {
                    return(BadRequest(respuesta));
                }
            }

            else
            {
                return(BadRequest("Fallo en el model binder TiendaAPIController.Post_AgregarProductosATienda"));
            }
        }