예제 #1
0
        private static void AgregarActualizarPersonaSola()
        {
            CRUDPersonaFacade fachada = new CRUDPersonaFacade();

            Persona mPersona = new Persona
            {
                Nombre = DateTime.Now.ToString(),
                Apellido = "Sánchez",
                Telefonos = new List<Telefono>()
            };

            fachada.Create(mPersona);
            Console.WriteLine("Creada ({0})",mPersona.PersonaId);
            Console.ReadKey();

            int id = mPersona.PersonaId;
            mPersona = null;

            mPersona = fachada.GetById(id);

            mPersona.Nombre = "Ramiro"; mPersona.Apellido = "Estuvo aqui";

            Console.WriteLine("Modificada");
            Console.ReadKey();

            fachada.Update(mPersona);

            Console.WriteLine("Actualizada");
            Console.ReadKey();
        }
예제 #2
0
        public virtual void Update(Persona pPersona)
        {
            Persona lPersonaOriginal = this.iUnitOfWork.PersonaRepository.GetByID(pPersona.PersonaId);

                if (lPersonaOriginal != null)
                {
                // Entry<TEntity>(original).CurrentValues.SetValues(current)
                //this.iUnitOfWork.PersonaRepository.context.Entry<Persona>(lPersonaOriginal).CurrentValues.SetValues(pPersona);

                    foreach (var telefono in pPersona.Telefonos)                    // Recorro los telefonos de pPersona para Actualizar / Agregar
                   {
                    /*if (lPersonaOriginal.Telefonos.Contains(telefono))
                    {
                        this.iUnitOfWork.TelefonoRepository.Delete(telefono);
                    }*/
                    // if (lTemp.Telefonos.FirstOrDefault(t => t.TelefonoId == telefono.TelefonoId) == null)
                    if (telefono.TelefonoId == 0)
                        {
                            // Agregar
                            this.iUnitOfWork.TelefonoRepository.Insert(telefono);
                        }
                        else
                        {
                            // Actualizar
                            this.iUnitOfWork.TelefonoRepository.Update(telefono);
                        }
                    }

                //IList<Telefono> listaAux = lPersonaOriginal.Telefonos;

                /*lPersonaOriginal.Telefonos.RemoveAll(
                    t => pPersona.Telefonos.SingleOrDefault<Telefono>(t2 => t2.TelefonoId == t.TelefonoId) == null);*/
              /*  var eliminar = lPersonaOriginal.Telefonos.Except<Telefono>(
                    pPersona.Telefonos,
                    new IEqualityComparers.TelefonoIdComparer());

                foreach (Telefono tel in eliminar)
                {
                    this.iUnitOfWork.TelefonoRepository.Delete(tel);
                }*/

                    foreach (var telefono in lPersonaOriginal.Telefonos.ToArray<Telefono>())                       // Recorro los telefonos de lTemp par eliminar los que no esten en pPersona
                    {
                        if (!pPersona.Telefonos.Contains(telefono, new IEqualityComparers.TelefonoIdComparer()))	{
                            this.iUnitOfWork.TelefonoRepository.Delete(telefono);
                        }
                    }

                   /* this.iUnitOfWork.PersonaRepository.context.Entry<Persona>(lPersonaOriginal).CurrentValues.SetValues(pPersona);
                    this.iUnitOfWork.PersonaRepository.Update(lPersonaOriginal);
                    */
                   this.iUnitOfWork.PersonaRepository.Update(lPersonaOriginal);
                    this.iUnitOfWork.Save();
                }
                else
                {
                    // Si lTemp es nulo singifica  que la persona no esta cargada y por lo tanto hubo un error
                }
        }
예제 #3
0
 public void ModificarPersona(Persona pPersona)
 {
     this.txtId.Text = pPersona.PersonaId.ToString();
     this.txtNombre.Text = pPersona.Nombre;
     this.txtApellido.Text = pPersona.Apellido;
     this.Text = "Modificar Persona";
     this.iPersonaOriginal = pPersona;
 }
예제 #4
0
 public void AgregarPersona(Persona pPersonaNueva)
 {
     this.txtId.Text = "--- Sin ID ---";
     this.txtNombre.Text = String.Empty;
     this.txtApellido.Text = String.Empty;
     this.Text = "Agregar nueva Persona";
     this.iPersonaOriginal = pPersonaNueva;
 }
예제 #5
0
 public virtual void Create(Persona pPersona)
 {
     this.iUnitOfWork.PersonaRepository.Insert(pPersona);
         /*foreach (var item in pPersona.Telefonos)
         {
             this.iUnitOfWork.TelefonoRepository.Insert(item);
         }*/
         this.iUnitOfWork.Save();
 }
예제 #6
0
 private void button1_Click(object sender, EventArgs e)
 {
     persona = new Persona();
     VentanaPersonas ventana = new VentanaPersonas();
     ventana.AgregarPersona(persona);
     DialogResult resultado = ventana.ShowDialog();
     if (resultado == DialogResult.OK)
     {
         iFachada.Create(persona);
     }
 }
예제 #7
0
        private void btnTelefonos_Click(object sender, EventArgs e)
        {
            DataGridViewRow row = dgvPersonas.CurrentRow;
            this.persona = this.iBinding.Single<Persona>(p => p.PersonaId == (int)row.Tag);
            VentanaListaTelefonos ventana = new VentanaListaTelefonos(persona);
            ventana.ShowDialog();

            if (ventana.DialogResult == DialogResult.OK)
            {
                iFachada.Update(persona);
            }
        }
예제 #8
0
        public void TestMethod1()
        {
            var mockSetPersonas = new Mock<DbSet<Persona>>();
            var mockSetTelefonos = new Mock<DbSet<Persona>>();
            var mockContext = new Mock<AgendaContext>();
            var mockEntry = new Mock<DbEntityEntry<Persona>>();
            var mockRepository = new Mock<GenericRepository<Persona>>(mockContext.Object);
            var repositorio = mockRepository.Object;

            Persona lPersona = new Persona()
            {
                Nombre = "Ramiro",
                Apellido = "Rivera",
                Telefonos = new List<Telefono>()
                    {
                        new Telefono() { Tipo = "Celular", Numero="03447-15409832" }
                    }
            };
        }
예제 #9
0
 private void dataGridView1_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
 {
     DataGridViewRow row = dgvPersonas.CurrentRow;
     this.persona = this.iBinding.Single<Persona>(p => p.PersonaId == (int)row.Tag);
     VentanaPersonas ventana = new VentanaPersonas();
     ventana.ModificarPersona(persona);
     ventana.ShowDialog();
     if (ventana.DialogResult == DialogResult.OK)
     {
         iFachada.Update(persona);
     }
 }
예제 #10
0
        static void AgregarTest()
        {
            CRUDPersonaFacade fachada = new CRUDPersonaFacade();

            Persona mPersona = new Persona
            {
                Nombre = DateTime.Now.ToString(),
                Apellido = "Sánchez",
                Telefonos = new List<Telefono>()
            };

            Telefono mTelefono1 = new Telefono { Numero = DateTime.Now.Ticks.ToString(), Tipo = "Celular" };
            Telefono mTelefono2 = new Telefono { Numero = DateTime.Now.Second.ToString(), Tipo = "Celular" };

            mPersona.Telefonos.Add(mTelefono1);
            mPersona.Telefonos.Add(mTelefono2);

            fachada.Create(mPersona);

            Console.WriteLine("Agregada");
            Console.ReadKey();
            /*
                        Persona pers = fachada.GetById(1);
                        try
                        {
                            Console.WriteLine("Get by id Nombre: {0}, Cantidad de Telefonos: {1}", pers.Nombre, pers.Telefonos == null ? "null" : pers.Telefonos.Count.ToString());
                        }
                        catch (System.ObjectDisposedException)
                        {
                            Console.WriteLine("Get by id Nombre: {0}, Cantidad de Telefonos: {1}", pers.Nombre, "Context Disposed");
                        }

                        Console.ReadKey();

                       MostrarTodosTest(fachada);*/
        }
예제 #11
0
 static void MostrarPersona(Persona pPersona)
 {
     Console.WriteLine("\tPersona encontrada Nombre:{0}, Apellido: {1}, IdPersona:{2}",
                    pPersona.Nombre,
                    pPersona.Apellido,
                    pPersona.PersonaId.ToString());
     try
     {
         if (pPersona.Telefonos != null)
         {
             foreach (var tel in pPersona.Telefonos)
             {
                 Console.WriteLine("\t\tNumero: {0},Tipo{1}", tel.Numero, tel.Tipo);
             }
         }
         else
         {
             Console.WriteLine("\tSin Telefonos");
         }
     }
     catch (System.ObjectDisposedException)
     {
         Console.WriteLine("\tContext Disposed");
     }
 }
예제 #12
0
 public virtual void Delete(Persona pPersona)
 {
     this.iUnitOfWork.PersonaRepository.Delete(pPersona.PersonaId);
         this.iUnitOfWork.Save();
 }