/// <summary>
 /// Função para remover um objeto Armazenamento do banco de dados.
 /// </summary>
 /// <param name="deletar">É o objeto a ser deletado</param>
 public void RemoverBanco(Armazenamento deletar)
 {
     using(var db = new Contexto())
     {
         db.Armazenamentos.Remove(deletar);
         db.SaveChanges();
     }
 }
 /// <summary>
 /// Sobreescreve o metodo para recebero o argumento enviado pela ListPage.
 /// </summary>
 /// <param name="e"></param>
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     ArmazenamentoApresentar.DataContext = e.Parameter;
     ArmazenamentoTodo = e.Parameter as Armazenamento;
     using (var db = new Contexto())
     {
         this.materialList.ItemsSource = db.Materiais.Where(x => x.ArmazenamentoId == ArmazenamentoTodo.Id);
         this.removeList.ItemsSource = db.Materiais.Where(x => x.ArmazenamentoId == ArmazenamentoTodo.Id);
     }
 }
 /// <summary>
 /// Recebe os valores e cria um novo objeto no banco de dados do tipo Armazenamento.
 /// </summary>
 /// <param name="armazenamento">É o objeto ao qual o objeto Material pertence na relação de 1 para n</param>
 /// <param name="nome">É o nome do do Material.</param>
 /// <param name="quantidade">É quantos Materiais existe no deposito.</param>
 /// <param name="comentario">É um simples comentário.</param>
 /// <param name="validade">O  prazo mais proximo até a validade do material.</param>
 public void AdicionarBanco(Armazenamento armazenamento ,
                            string nome, 
                            int quantidade, 
                            string comentario, 
                            DateTime validade)
 {
     using(var db = new Contexto())
     {
         db.Materiais.Add(new Material {Nome = nome,
                                        Quantidade = quantidade,
                                        Comentario = comentario,
                                        Validade = validade,
                                        Armazenamentos = armazenamento,
                                        ArmazenamentoId = armazenamento.Id});
         db.SaveChanges();
     }
 }
        /// <summary>
        /// Faz a validação de todos campos inseridos.
        /// </summary>
        /// <param name="armazenamento">É o objeto ao qual o objeto Material pertence na relação de 1 para n</param>
        /// <param name="nome">É o nome do do Material.</param>
        /// <param name="quantidade">É quantos Materiais existe no deposito.</param>
        /// <param name="comentario">É um simples comentário.</param>
        /// <param name="validade">O  prazo mais proximo até a validade do material.</param>
        public void ValidarCampos(Armazenamento armazenamento, 
                                  string nome, 
                                  int quantidade, 
                                  string comentario, 
                                  DateTime validade)
        {
            if (string.IsNullOrEmpty(nome))
            {
                nome = "Sem Nome";
            }

            if (quantidade < 0)
            {
                quantidade = 0;
            }
            else if (quantidade > 10000)
            {
                quantidade = 10000;
            }
            AdicionarBanco(armazenamento, nome, quantidade, comentario, validade);
        }
 /// <summary>
 /// Metodo para levar um objeto Armazenamento correspondente.
 /// a qual classe o Material vai pertencer na relação 1 para n.
 /// </summary>
 /// <param name="Armazenamento">O objeto a ser passado no argumento</param>
 public void GoToMaterialList(Armazenamento Armazenamento)
 {
     NavigationService.Navigate(typeof(Views.MaterialPage), Armazenamento);
 }