public static List <Container> ComFiltro(Container filtro)
        {
            List <Container> containers = new List <Container>();

            using (ContainerRepositorio repo = new ContainerRepositorio())
            {
                if (filtro == null)
                {
                    containers = repo.Listar().ToList();
                }
                else
                {
                    containers = repo.Listar()
                                 .Where(c => string.IsNullOrEmpty(filtro.NroContainer?.Replace(" ", string.Empty) ?? string.Empty) || c.NroContainer.Contains(filtro.NroContainer))
                                 .Where(c => filtro.CodigoIsoId == Guid.Empty || c.CodigoIsoId == filtro.CodigoIsoId)
                                 .Where(
                        c => filtro.Fabricacao.Equals(default(DateTime)) || c.Fabricacao.Equals(filtro.Fabricacao))
                                 .Where(c => ToInt32(filtro.CM) == 0 || Abs(c.CM - filtro.CM) < 1)
                                 .Where(c => ToInt32(filtro.Tara) == 0 || Abs(c.Tara - filtro.Tara) < 1)
                                 .Where(c => ToInt32(filtro.Peso) == 0 || Abs(c.Peso - filtro.Peso) < 1)
                                 .ToList();
                }
            }

            return(containers);
        }
        public void Update()
        {
            double    cm     = GetRandom(99999);
            double    peso   = GetRandom((int)cm);
            double    tara   = GetRandom(1000);
            Container ctnr   = null;
            string    ctnrNr = string.Empty;

            using (ContainerRepositorio repo = new ContainerRepositorio())
            {
                ctnr = repo.Listar().FirstOrDefault();

                if (ctnr != null)
                {
                    ctnrNr = ctnr.NroContainer;

                    ctnr.CM   = cm;
                    ctnr.Peso = peso;
                    ctnr.Tara = tara;

                    ctnr = repo.InserirOuAtualizar(ctnr);
                }
            }

            Assert.IsNotNull(ctnr);
            Assert.AreNotEqual(ctnr.Id, Guid.Empty);

            Assert.AreEqual(ctnr.NroContainer, ctnrNr);
            Assert.AreEqual(ctnr.CM, cm);
            Assert.AreEqual(ctnr.Peso, peso);
            Assert.AreEqual(ctnr.Tara, tara);
        }
        public static List<Container> ComFiltro(Container filtro)
        {
            List<Container> containers = new List<Container>();
            using (ContainerRepositorio repo = new ContainerRepositorio())
            {
                if (filtro == null)
                    containers = repo.Listar().ToList();
                else
                    containers = repo.Listar()
                        .Where(c => string.IsNullOrEmpty(filtro.NroContainer?.Replace(" ",string.Empty) ?? string.Empty) || c.NroContainer.Contains(filtro.NroContainer)) 
                        .Where(c => filtro.CodigoIsoId == Guid.Empty || c.CodigoIsoId == filtro.CodigoIsoId)
                        .Where(
                            c => filtro.Fabricacao.Equals(default(DateTime)) || c.Fabricacao.Equals(filtro.Fabricacao))
                        .Where(c => ToInt32(filtro.CM) == 0 || Abs(c.CM - filtro.CM) < 1)
                        .Where(c => ToInt32(filtro.Tara) == 0 || Abs(c.Tara - filtro.Tara) < 1)
                        .Where(c => ToInt32(filtro.Peso) == 0 || Abs(c.Peso - filtro.Peso) < 1)
                        .ToList();
            }

            return containers;
        }
        public void DeleteById()
        {
            int       countOld  = 0;
            int       countNew  = 0;
            Container Container = null;
            int       index     = GetRandomIndex(Inserted);
            var       item      = Inserted[index];

            using (ContainerRepositorio repo = new ContainerRepositorio())
            {
                countOld  = repo.Listar().Count();
                Container = repo.Excluir(item.Id);
                countNew  = repo.Listar().Count();

                Container = repo.CapturarPorId(item.Id);
            }

            Assert.IsNull(Container);
            Assert.AreNotSame(countOld, countNew);
            Assert.IsTrue(Math.Abs(countOld - countNew) == 1);
        }
        public void Query()
        {
            List <Container> lista = null;

            using (ContainerRepositorio repo = new ContainerRepositorio())
            {
                lista = repo.Listar().ToList();
            }

            Assert.IsNotNull(lista);
            Assert.AreNotEqual(lista.Count, 0);
        }
        //[TestCleanup]
        public void ClearDb()
        {
            using (ContainerRepositorio repo = new ContainerRepositorio())
            {
                foreach (Container ctnr in repo.Listar())
                {
                    repo.Excluir(ctnr);
                }
            }

            ClearCodigosIso();

            Inserted.Clear();
        }
        public ActionResult ManutenirContainer()
        {
            using (CodigoIsoRepositorio codIsoRepo = new CodigoIsoRepositorio())
            {
                ViewBag.CodigosIso = ServicoConverteCodigosIso.ParaSelectListItens(codIsoRepo.Listar().ToList());
            }
            List <Container> containers = new List <Container>();

            using (ContainerRepositorio contrRepo = new ContainerRepositorio())
            {
                containers = contrRepo.Listar().ToList();
            }
            return(View(containers));
        }
        public ActionResult ManutenirContainer()
        {
            using (CodigoIsoRepositorio codIsoRepo = new CodigoIsoRepositorio())
            {
                ViewBag.CodigosIso = ServicoConverteCodigosIso.ParaSelectListItens(codIsoRepo.Listar().ToList());
            }
            List<Container> containers = new List<Container>();

            using (ContainerRepositorio contrRepo = new ContainerRepositorio())
            {
                containers = contrRepo.Listar().ToList();
            }
            return View(containers);
        }
        public void Delete()
        {
            int countOld = 0;
            int countNew = 0;
            Container Container = null;

            int index = GetRandomIndex(Inserted);
            var item = Inserted[index];

            using (ContainerRepositorio repo = new ContainerRepositorio())
            {
                countOld = repo.Listar().Count();
                Container = repo.Excluir(item);
                countNew = repo.Listar().Count();

                Container = repo.CapturarPorId(item.Id);
            }

            Assert.IsNull(Container);
            Assert.AreNotSame(countOld, countNew);
            Assert.IsTrue(Math.Abs(countOld - countNew) == 1);
        }
        public void Update()
        {
            double cm = GetRandom(99999);
            double peso = GetRandom((int)cm);
            double tara = GetRandom(1000);
            Container ctnr = null;
            string ctnrNr = string.Empty;

            using (ContainerRepositorio repo = new ContainerRepositorio())
            {
                ctnr = repo.Listar().FirstOrDefault();

                if (ctnr != null)
                {
                    ctnrNr = ctnr.NroContainer;

                    ctnr.CM = cm;
                    ctnr.Peso = peso;
                    ctnr.Tara = tara;

                    ctnr = repo.InserirOuAtualizar(ctnr);
                }
            }

            Assert.IsNotNull(ctnr);
            Assert.AreNotEqual(ctnr.Id, Guid.Empty);
            
            Assert.AreEqual(ctnr.NroContainer, ctnrNr);
            Assert.AreEqual(ctnr.CM, cm);
            Assert.AreEqual(ctnr.Peso, peso);
            Assert.AreEqual(ctnr.Tara, tara);
        }
        public void Query()
        {
            List<Container> lista = null;
            using (ContainerRepositorio repo = new ContainerRepositorio())
            {
                lista = repo.Listar().ToList();
            }

            Assert.IsNotNull(lista);
            Assert.AreNotEqual(lista.Count, 0);
        }
        //[TestCleanup]
        public void ClearDb()
        {
            using (ContainerRepositorio repo = new ContainerRepositorio())
            {
                foreach (Container ctnr in repo.Listar())
                {
                    repo.Excluir(ctnr);
                }
            }

            ClearCodigosIso();

            Inserted.Clear();
        }