示例#1
0
        public void deberia_poder_obtener_las_observaciones_a_actualizar_y_guardar_las_nuevas()
        {
            string source = @"    |id    |FechaCarga                  |Relacion          |PersonaCarga    |Pertenece      |Asunto     |ReferenteMDS   |Seguimiento    |Resultado          |FechaDelResultado          |ReferenteRtaMDS    |idBaja  
                                    |01    |2012-10-13 00:00:00.077     |Fines CENS        |Mariano         |MDS            |Cursada    |Mariano        |Lala           |Sasa               |2012-10-13 00:00:00.077    |Elena              |1    
                                    |02    |2012-10-13 00:00:00.077     |Fines Puro        |Leonardo        |MDS            |Cursada    |Mariano        |Lala           |Sasa               |2012-10-13 00:00:00.077    |Elena              |2    
                                    |03    |2012-10-13 00:00:00.077     |Fines CENS        |Cholo           |MDS            |Libre      |Mariano        |Lala           |Sasa               |2012-10-13 00:00:00.077    |Elena              |1";

            IConexionBD             conexion   = TestObjects.ConexionMockeada();
            ComparadorDeDiferencias comparador = new ComparadorDeDiferencias();

            var resultado_sp = TablaDeDatos.From(source);
            List <Observacion> observaciones = new List <Observacion>();
            var repo = new RepositorioDeCursos(conexion);

            Expect.AtLeastOnce.On(conexion).Method("Ejecutar").WithAnyArguments().Will(Return.Value(resultado_sp));

            List <Observacion> observaciones_antiguas = repo.GetObservaciones();

            //Hice una nueva lista de Evaluaciones xq si cambiaba de la lista original tb cambiaba a la lista nueva
            List <Observacion> observaciones_nuevas = TestObjects.Observaciones();

            observaciones_nuevas.First().Asunto = "cambio el asunto";

            var obser_cambiadas = comparador.ObservacionesParaActualizar(observaciones_antiguas, observaciones_nuevas);
            var obser_a_agregar = comparador.ObservacionesParaGuardar(observaciones_antiguas, observaciones_nuevas);

            Assert.AreEqual(1, obser_cambiadas.Count);
            Assert.AreEqual(1, obser_a_agregar.Count);

            observaciones_nuevas.Find(o => o.Id.Equals(2)).FechaCarga = new DateTime(2013, 08, 01);
            obser_cambiadas = comparador.ObservacionesParaActualizar(observaciones_antiguas, observaciones_nuevas);

            Assert.AreEqual(2, obser_cambiadas.Count);


            //PRUEBO BORRAR OBSERVACIONES
            observaciones_nuevas.RemoveAt(0);

            var obser_a_borrar = comparador.ObservacionesParaDarDeBajaSinInsertarOtra(observaciones_antiguas, observaciones_nuevas);

            Assert.AreEqual(1, obser_a_borrar.Count);
        }
示例#2
0
        public List <Observacion> GuardarObservaciones(List <Observacion> observaciones_antiguas, List <Observacion> observaciones_nuevas, Usuario usuario)
        {
            var registros_no_procesados = new List <Observacion>();
            //FC: tengo que incluir para update a las que borre y ya estaban
            var observaciones_a_updatear = comparador.ObservacionesParaActualizar(observaciones_antiguas, observaciones_nuevas);
            //FC: estas no tengo que insertarlas mas en el historico
            var observaciones_para_dar_de_baja = comparador.ObservacionesParaDarDeBaja(observaciones_antiguas, observaciones_nuevas);
            var observaciones_a_insertar       = comparador.ObservacionesParaGuardar(observaciones_antiguas, observaciones_nuevas);
            //FC:estas no tengo que borrarlas mas
            var observaciones_a_borrar = comparador.ObservacionesParaDarDeBajaSinInsertarOtra(observaciones_antiguas, observaciones_nuevas);

            foreach (var e in observaciones_a_insertar)
            {
                if (GuardarObservacion(e, usuario).Equals(0))
                {
                    registros_no_procesados.Add(e);
                }
            }
            foreach (var e in observaciones_a_updatear)
            {
                if (GuardarObservacion(e, usuario).Equals(0))
                {
                    registros_no_procesados.Add(e);
                }
            }
            foreach (var e in observaciones_para_dar_de_baja)
            {
                var idBaja = CrearBaja(usuario);
                ActualizarObservacion(e, usuario, idBaja);
            }
            foreach (var e in observaciones_a_borrar)
            {
                var idBaja = CrearBaja(usuario);
                if (ActualizarObservacion(e, usuario, idBaja).Equals(0))
                {
                    registros_no_procesados.Add(e);
                }
            }
            return(registros_no_procesados);
        }