public bool ConfirmarCierre()
        {
            notificacionBindingSource.EndEdit();

            DisconnectedChangeSet changeSet = _disconnectedDataContext.GetChangeSet();

            if (changeSet.HayCambios)
            {
                DialogResult dlgResult;
                dlgResult = MessageBox.Show("Ha realizado modificaciones en la lista de notificaciones. ¿Desea guardarlas?",
                                            "MSDN Video",
                                            MessageBoxButtons.YesNoCancel,
                                            MessageBoxIcon.Question,
                                            MessageBoxDefaultButton.Button1);

                if (dlgResult == DialogResult.Yes)
                {
                    Guardar();
                    return(true);
                }
                else if (dlgResult == DialogResult.No)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            return(true);
        }
        public void Guardar()
        {
            socioBindingSource.EndEdit();
            ValidarClaveRepetida();

            DisconnectedChangeSet changeSet = _disconnectedDataContext.GetChangeSet();

            if (changeSet.Validate() && ValidarClaves())
            {
                if (changeSet.HayCambios || _nuevasClaves.Count > 0)
                {
                    // Guardo el changeset
                    ConnectionHelper.ServiceClient.ChangeSet_ActualizarChangeSet(changeSet);

                    // Almacenamos las clave
                    foreach (KeyValuePair <Socio, string> entry in _nuevasClaves)
                    {
                        ConnectionHelper.ServiceClient.Usuarios_EstablecerClave(entry.Key.NIF, entry.Value);
                    }

                    // Refrescamos
                    Refrescar();
                }
            }
            else
            {
                MessageBox.Show("Corrija la información no válida antes de guardar", "MSDN Video", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
示例#3
0
        public void Guardar()
        {
            peliculasBindingSource.EndEdit();

            DisconnectedChangeSet changeSet = _disconnectedDataContext.GetChangeSet();

            if (changeSet.Validate())
            {
                if (changeSet.HayCambios || _nuevasCaratulas.Count > 0)
                {
                    // Guardo el changeset
                    ConnectionHelper.ServiceClient.ChangeSet_ActualizarChangeSet(changeSet);

                    // Almacenamos carátulas
                    foreach (KeyValuePair <Pelicula, Bitmap> entry in _nuevasCaratulas)
                    {
                        MemoryStream stream = new MemoryStream();
                        entry.Value.Save(stream, ImageFormat.Jpeg);
                        ConnectionHelper.ServiceClient.Peliculas_ModificarCaratula(stream.ToArray(), entry.Key.CodBarras);
                    }

                    // Refrescamos
                    Refrescar();
                }
            }
            else
            {
                MessageBox.Show("Corrija la información no válida antes de guardar", "MSDN Video", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
示例#4
0
        public void ModificarPeliculaYEliminarActorTest()
        {
            PeliculasAD peliculasAD = new PeliculasAD();
            ChangeSetAD changesetAD = new ChangeSetAD();
            string      codBarras   = "0045907014545";
            Pelicula    pelicula;
            int         actoresCount;

            pelicula = peliculasAD.ObtenerPeliculaPorCodBarras(codBarras, true, false);

            DisconnectedDataContext <EntidadesDataContext> dataContext = new DisconnectedDataContext <EntidadesDataContext>();

            dataContext.Attach(pelicula);

            pelicula.Duracion = 100;

            actoresCount = pelicula.ActoresPeliculas.Count;
            pelicula.ActoresPeliculas.RemoveAt(0);

            using (TransactionScope tx = new TransactionScope())
            {
                DisconnectedChangeSet changeSet = dataContext.GetChangeSet();
                changesetAD.ActualizarChangeSet(changeSet);

                pelicula = peliculasAD.ObtenerPeliculaPorCodBarras(codBarras, true, false);

                Assert.AreEqual(100, pelicula.Duracion);
                Assert.AreEqual(actoresCount - 1, pelicula.ActoresPeliculas.Count);
            }
        }
        public void ChangeSetModificacionBorradoTest()
        {
            IMSDNVideoServices client = ConnectionHelper.ServiceClient;
            int actoresCount;

            Pelicula        pelicula = client.Peliculas_ObtenerPeliculaPorCodBarras("0045907014545", true, false);
            ActoresPelicula actorPeliculaBorrado;

            DisconnectedDataContext <EntidadesDataContext> dataContext = new DisconnectedDataContext <EntidadesDataContext>();

            dataContext.Attach(pelicula);

            pelicula.Duracion = 119;
            actoresCount      = pelicula.ActoresPeliculas.Count;

            actorPeliculaBorrado = (ActoresPelicula)OperacionesEntidad.CreateDataCopy(pelicula.ActoresPeliculas[0], false);
            pelicula.ActoresPeliculas.RemoveAt(0);

            DisconnectedChangeSet changeSet = dataContext.GetChangeSet();

            client.ChangeSet_ActualizarChangeSet(changeSet);
            pelicula = client.Peliculas_ObtenerPeliculaPorCodBarras("0045907014545", true, false);
            Assert.AreEqual(119, pelicula.Duracion);
            Assert.AreEqual(actoresCount - 1, pelicula.ActoresPeliculas.Count);

            // Compensación
            dataContext.AcceptChanges();
            dataContext.Attach(pelicula);
            pelicula.Duracion = 118;
            pelicula.ActoresPeliculas.Add(actorPeliculaBorrado);
            changeSet = dataContext.GetChangeSet();
            client.ChangeSet_ActualizarChangeSet(changeSet);
        }
        public void ChangeSetModificacionTest()
        {
            IMSDNVideoServices client = ConnectionHelper.ServiceClient;
            int duracionOriginal;

            Pelicula pelicula = client.Peliculas_ObtenerPeliculaPorCodBarras("0045907014545", false, false);

            DisconnectedDataContext <EntidadesDataContext> dataContext = new DisconnectedDataContext <EntidadesDataContext>();

            dataContext.Attach(pelicula);

            duracionOriginal  = pelicula.Duracion;
            pelicula.Duracion = 100;

            DisconnectedChangeSet changeSet = dataContext.GetChangeSet();

            client.ChangeSet_ActualizarChangeSet(changeSet);
            pelicula = client.Peliculas_ObtenerPeliculaPorCodBarras("0045907014545", false, false);
            Assert.AreEqual(100, pelicula.Duracion);

            // Compensación
            dataContext.AcceptChanges();
            dataContext.Attach(pelicula);
            pelicula.Duracion = duracionOriginal;
            changeSet         = dataContext.GetChangeSet();
            client.ChangeSet_ActualizarChangeSet(changeSet);
        }
示例#7
0
        public void ModificarPeliculaYEliminarModificarAgregarActorTest()
        {
            PeliculasAD peliculasAD = new PeliculasAD();
            ChangeSetAD changesetAD = new ChangeSetAD();
            string      codBarras   = "0045907014545";
            Pelicula    pelicula;
            int         actoresCount;

            pelicula = peliculasAD.ObtenerPeliculaPorCodBarras(codBarras, true, false);

            DisconnectedDataContext <EntidadesDataContext> dataContext = new DisconnectedDataContext <EntidadesDataContext>();

            dataContext.Attach(pelicula);

            pelicula.Duracion = 100;

            actoresCount = pelicula.ActoresPeliculas.Count;
            pelicula.ActoresPeliculas[0].Papel = "Nuevo papel";
            pelicula.ActoresPeliculas.RemoveAt(0);

            ActoresPelicula nuevoActorPelicula = new ActoresPelicula();

            nuevoActorPelicula.ActorID = 100;
            nuevoActorPelicula.Papel   = "Nuevo actor";
            pelicula.ActoresPeliculas.Add(nuevoActorPelicula);

            using (TransactionScope tx = new TransactionScope())
            {
                DisconnectedChangeSet changeSet = dataContext.GetChangeSet();
                changesetAD.ActualizarChangeSet(changeSet);

                pelicula = peliculasAD.ObtenerPeliculaPorCodBarras(codBarras, true, false);

                Assert.AreEqual(100, pelicula.Duracion);
                Assert.AreEqual(actoresCount, pelicula.ActoresPeliculas.Count);

                bool foundNuevo   = false;
                bool foundAntiguo = false;
                foreach (ActoresPelicula actor in pelicula.ActoresPeliculas)
                {
                    if (actor.Papel == "Nuevo actor")
                    {
                        foundNuevo = true;
                    }
                    if (actor.Papel == "Nuevo papel")
                    {
                        foundAntiguo = true;
                    }
                }

                Assert.IsTrue(foundNuevo);
                Assert.IsFalse(foundAntiguo);
            }
        }
示例#8
0
        /// <summary>
        /// Actualiza la base de datos con todos los cambios incluidos en un Changeset
        /// </summary>
        /// <param name="changeSet">Changeset con cambios</param>
        public void ActualizarChangeSet(DisconnectedChangeSet changeSet)
        {
            EntidadesDataContext dc = GetDC();
            int    i;
            object entidad;
            ITable tabla;

            if (changeSet.Agregados != null)
            {
                for (i = 0; i < changeSet.Agregados.Count; i++)
                {
                    entidad = changeSet.Agregados[i];
                    tabla   = OperacionesEntidad.GetTablaFromEntidad(dc, entidad);
                    tabla.InsertOnSubmit(entidad);
                }
            }

            if (changeSet.Modificados != null)
            {
                for (i = 0; i < changeSet.Modificados.Count; i++)
                {
                    entidad = changeSet.Modificados[i];
                    tabla   = OperacionesEntidad.GetTablaFromEntidad(dc, entidad);
                    tabla.Attach(entidad, changeSet.ModificadosOriginal[i]);
                }
            }

            if (changeSet.Eliminados != null)
            {
                for (i = 0; i < changeSet.Eliminados.Count; i++)
                {
                    entidad = changeSet.Eliminados[i];
                    tabla   = OperacionesEntidad.GetTablaFromEntidad(dc, entidad);
                    tabla.Attach(entidad);
                    tabla.DeleteOnSubmit(entidad);
                }
            }

            dc.SubmitChanges();
        }
        public void Guardar()
        {
            notificacionBindingSource.EndEdit();

            DisconnectedChangeSet changeSet = _disconnectedDataContext.GetChangeSet();

            if (changeSet.Validate() && ValidarNIFSocio() && ValidarCodBarrasPelicula())
            {
                if (changeSet.HayCambios)
                {
                    // Guardo el changeset
                    ConnectionHelper.ServiceClient.ChangeSet_ActualizarChangeSet(changeSet);

                    // Refrescamos
                    Refrescar();
                }
            }
            else
            {
                MessageBox.Show("Corrija la información no válida antes de guardar", "MSDN Video", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
示例#10
0
    public void ChangeSet_ActualizarChangeSet(DisconnectedChangeSet changeSet)
    {
        ChangeSetCN changeSetCN = new ChangeSetCN();

        changeSetCN.ActualizarChangeSet(changeSet);
    }
示例#11
0
        public void ActualizarChangeSet(DisconnectedChangeSet changeSet)
        {
            ChangeSetAD changeSetAD = new ChangeSetAD();

            changeSetAD.ActualizarChangeSet(changeSet);
        }