public ActionResult AddPhone(int id, TelefoneViewModel viewModel)
        {
            if (!ModelState.IsValid) return RedirectToAction("Edit",new {id});

            var contato = DocumentSession.Load<Contato>(id);
            var telefone = Mapper.Map<Telefone>(viewModel);

            contato.IncluiTelefone(telefone);

            TempData["success"] = string.Format("Telefone {0} adicionado.", telefone);

            return View("Edit", Mapper.Map<Contato, ContatoViewModel>(contato));
        }
        public void Posso_incluir_telefones_em_um_contato()
        {
            var controller = new ContatosController(Session);

            Mapper.AddProfile<ContatoProfile>();
            Mapper.AddProfile<TelefoneProfile>();

            var contato = new Contato
            {
                Apelido = "Apelido",
                Nome = "Nome"
            };

            Session.Store(contato);
            Session.SaveChanges();

            var viewModel = new TelefoneViewModel
                                {
                                    Numero = "011981234567",
                                    Operadora = Operadora.Tim
                                };

            controller.AddPhone(contato.Id, viewModel);

            Session.SaveChanges();

            Assert.That(Session.Load<Contato>(contato.Id).Telefones.Count(),
                Is.EqualTo(1));
        }
        public ActionResult DeletePhone(int id, TelefoneViewModel telefoneViewModel)
        {
            var telefone = Mapper.Map<TelefoneViewModel, Telefone>(telefoneViewModel);

            var contato = DocumentSession.Load<Contato>(id);

            contato.RemoveTelefone(telefone);

            TempData["success"] = string.Format("Telefone {0} removido.", telefone);

            return null;
        }