コード例 #1
0
        public GenerarReporteSalida GenerarReporte(GenerarReporteEntrada entrada)
        {
            var salida = new GenerarReporteSalida();

            var fabrica = new FabricaReportes(_gestorPersistencia);
            var reporte = fabrica.TraerReporte(entrada.Tipo);

            if (reporte == null)
            {
                return(SalidaBase.Fallo(salida, string.Format(Cadenas.reporte_tipo_no_encontrado, entrada.Tipo)));
            }

            var resultValidar = reporte.Validar(entrada.Parametros);

            if (!string.IsNullOrEmpty(resultValidar))
            {
                return(SalidaBase.Fallo(salida,
                                        string.Format("{0}\n{1}", Cadenas.reporte_error_parametros, resultValidar)));
            }

            var consulta = reporte.Consultar();

            salida.Consulta = consulta;

            return(SalidaBase.Exito(salida));
        }
コード例 #2
0
        public RegistrarUsuarioSalida RegistrarUsuario(RegistrarUsuarioEntrada entrada)
        {
            var salida = new RegistrarUsuarioSalida();

            if (entrada.Clave != entrada.ClaveRepetida)
            {
                return(SalidaBase.Fallo(salida, "La clave no coincide, por favor verifique"));
            }

            var usuario = _gestorPersistencia.TraerUsuario(entrada.Correo);

            if (usuario != null)
            {
                return(SalidaBase.Fallo(salida, "Usuario con correo " + entrada.Correo + " ya está registrado"));
            }

            var claveHash = TraerHash(entrada.Clave);

            usuario = new Usuario {
                Nombre = entrada.Nombre, Correo = entrada.Correo, Clave = claveHash
            };
            _gestorPersistencia.Guardar(usuario);

            return(SalidaBase.Exito(salida));
        }
コード例 #3
0
        public RegistrarVotoCancionesSalida RegistrarVotoCanciones(RegistrarVotoCancionesEntrada entrada)
        {
            var salida = new RegistrarVotoCancionesSalida();

            int cancionError = int.MinValue;
            var canciones    = TraerCanciones(entrada.Canciones, (noEncontrado => cancionError = noEncontrado));

            if (cancionError != int.MinValue)
            {
                return(SalidaBase.Fallo(salida, string.Format(Cadenas.cancion_id_no_encontrado, cancionError)));
            }

            var usuario = _gestorPersistencia.TraerCancion(entrada.UsuarioId);

            if (usuario == null)
            {
                return(SalidaBase.Fallo(salida, string.Format(Cadenas.usuario_id_no_encontrado, entrada.UsuarioId)));
            }

            foreach (var cancion in canciones)
            {
                RegistrarVoto(cancion.VotableId, entrada.UsuarioId,
                              entrada.Accion == RegistrarVotoCancionesEntrada.Acciones.Asociar);
            }

            return(SalidaBase.Exito(salida));
        }
コード例 #4
0
        public RegistrarVotoAlbumesSalida RegistrarVotoAlbumes(RegistrarVotoAlbumesEntrada entrada)
        {
            var salida = new RegistrarVotoAlbumesSalida();

            int albumError = int.MinValue;
            var albumes    = TraerAlbumes(entrada.Albumes, (noEncontrado => albumError = noEncontrado));

            if (albumError != int.MinValue)
            {
                return(SalidaBase.Fallo(salida, string.Format(Cadenas.album_id_no_encontrado, albumError)));
            }

            var usuario = _gestorPersistencia.TraerUsuario(entrada.UsuarioId);

            if (usuario == null)
            {
                return(SalidaBase.Fallo(salida, string.Format(Cadenas.usuario_id_no_encontrado, entrada.UsuarioId)));
            }

            foreach (var album in albumes)
            {
                RegistrarVoto(album.VotableId, entrada.UsuarioId,
                              entrada.Accion == RegistrarVotoAlbumesEntrada.Acciones.Asociar);
            }

            return(SalidaBase.Exito(salida));
        }
コード例 #5
0
        public CrearCancionesEnAlbumSalida CrearCancionesEnAlbum(CrearCancionesEnAlbumEntrada entrada)
        {
            var salida = new CrearCancionesEnAlbumSalida();

            if (entrada.Canciones.Any(string.IsNullOrEmpty))
            {
                return(SalidaBase.Fallo(salida, Cadenas.album_cancion_sin_nombre));
            }

            var album = _gestorPersistencia.TraerAlbum(entrada.AlbumId);

            if (album == null)
            {
                return(SalidaBase.Fallo(salida, string.Format(Cadenas.album_id_no_encontrado, entrada.AlbumId)));
            }

            var cancionesGuardar = from c in entrada.Canciones
                                   select new Cancion {
                Nombre = c, AlbumId = album.Id, FchCreacion = DateTime.Now
            };

            foreach (var cancion in cancionesGuardar)
            {
                CrearVotable(cancion);
                _gestorPersistencia.Guardar(cancion);
            }

            return(SalidaBase.Exito(salida));
        }
コード例 #6
0
        public EditarInterpreteSalida EditarInterprete(EditarInterpreteEntrada entrada)
        {
            var salida = new EditarInterpreteSalida();

            if (string.IsNullOrEmpty(entrada.Nombre))
            {
                return(SalidaBase.Fallo(salida, Cadenas.interprete_falta_nombre));
            }

            Interprete interprete;

            if (entrada.InterpreteId > 0)
            {
                interprete = _gestorPersistencia.TraerInterprete(entrada.InterpreteId);
                if (interprete == null)
                {
                    return(SalidaBase.Fallo(salida,
                                            string.Format(Cadenas.interprete_id_no_encontrado, entrada.InterpreteId)));
                }

                interprete.Nombre = entrada.Nombre;
            }
            else
            {
                interprete = new Interprete
                {
                    Nombre      = entrada.Nombre,
                    FchCreacion = DateTime.Now,
                };
            }
            _gestorPersistencia.Guardar(interprete);
            salida.Interprete = interprete;

            return(SalidaBase.Exito(salida));
        }
コード例 #7
0
        public RelacionarInterpretesACancionSalida RelacionarInterpretesACancion(
            RelacionarInterpretesACancionEntrada entrada)
        {
            var salida = new RelacionarInterpretesACancionSalida();

            var cancion = _gestorPersistencia.TraerCancion(entrada.CancionId);

            if (cancion == null)
            {
                return(SalidaBase.Fallo(salida, string.Format(Cadenas.cancion_id_no_encontrado, entrada.CancionId)));
            }

            if (cancion.AlbumId != null)
            {
                return(SalidaBase.Fallo(salida, string.Format(Cadenas.cancion_asociada_a_album, cancion.AlbumId)));
            }

            if (entrada.Interpretes == null || entrada.Interpretes.Count == 0)
            {
                return(SalidaBase.Fallo(salida, Cadenas.album_falta_interprete));
            }

            int interpreteError = int.MinValue;
            var interpretes     = TraerInterpretes(entrada.Interpretes, (noEncontrado => interpreteError = noEncontrado));

            if (interpreteError != int.MinValue)
            {
                return(SalidaBase.Fallo(salida, string.Format(Cadenas.interprete_id_no_encontrado, interpreteError)));
            }

            if (entrada.Accion == RelacionarInterpretesACancionEntrada.Acciones.Agregar)
            {
                var relaciones = interpretes.Select(i => _gestorPersistencia.TraerCancionInterprete(cancion.Id, i.Id));
                foreach (var relacion in relaciones)
                {
                    _gestorPersistencia.Guardar(relacion);
                }
            }
            else if (entrada.Accion == RelacionarInterpretesACancionEntrada.Acciones.Eliminar)
            {
                var relaciones = interpretes.Select(i => _gestorPersistencia.TraerCancionInterprete(cancion.Id, i.Id));
                foreach (var relacion in relaciones)
                {
                    _gestorPersistencia.EliminarCancionInterprete(relacion.InterpreteId, relacion.CancionId);
                }
            }

            return(SalidaBase.Exito(salida));
        }
コード例 #8
0
        public IdentificarUsuarioSalida IdentificarUsuario(IdentificarUsuarioEntrada entrada)
        {
            var salida = new IdentificarUsuarioSalida();

            var claveHash = TraerHash(entrada.Clave);
            var usuario   = _gestorPersistencia.TraerUsuario(entrada.Correo, claveHash);

            if (usuario == null)
            {
                return(SalidaBase.Fallo(salida, "Autenticación fallida"));
            }
            salida.Usuario = usuario;

            return(SalidaBase.Exito(salida));
        }
コード例 #9
0
        public EditarCancionSalida EditarCancion(EditarCancionEntrada entrada)
        {
            var salida = new EditarCancionSalida();

            if (string.IsNullOrEmpty(entrada.Nombre))
            {
                return(SalidaBase.Fallo(salida, Cadenas.cancion_falta_nombre));
            }
            if (entrada.AlbumId != null)
            {
                Album album = _gestorPersistencia.TraerAlbum(entrada.AlbumId.Value);
                if (album == null)
                {
                    return(SalidaBase.Fallo(salida, string.Format(Cadenas.album_id_no_encontrado, entrada.AlbumId)));
                }
            }

            Cancion cancion;

            if (entrada.CancionId > 0)
            {
                cancion = _gestorPersistencia.TraerCancion(entrada.CancionId);
                if (cancion == null)
                {
                    return(SalidaBase.Fallo(salida, string.Format(Cadenas.cancion_id_no_encontrado, entrada.CancionId)));
                }
                cancion.AlbumId = entrada.AlbumId;
                cancion.Nombre  = entrada.Nombre;
            }
            else
            {
                cancion = new Cancion
                {
                    Id          = entrada.CancionId,
                    FchCreacion = DateTime.Now,
                    Nombre      = entrada.Nombre,
                    AlbumId     = entrada.AlbumId
                };
            }
            CrearVotable(cancion);
            _gestorPersistencia.Guardar(cancion);

            return(SalidaBase.Exito(salida));
        }
コード例 #10
0
        public EditarAlbumSalida EditarAlbum(EditarAlbumEntrada entrada)
        {
            var salida = new EditarAlbumSalida();

            if (string.IsNullOrEmpty(entrada.Nombre))
            {
                return(SalidaBase.Fallo(salida, Cadenas.album_falta_nombre));
            }

            Album album;

            if (entrada.AlbumId > 0)
            {
                album = _gestorPersistencia.TraerAlbum(entrada.AlbumId);
                if (album == null)
                {
                    return(SalidaBase.Fallo(salida, string.Format(Cadenas.album_id_no_encontrado, entrada.AlbumId)));
                }

                album.Nombre         = entrada.Nombre;
                album.AñoLanzamiento = entrada.AñoLanzamiento;
            }
            else
            {
                album = new Album
                {
                    Nombre         = entrada.Nombre,
                    FchCreacion    = DateTime.Now,
                    AñoLanzamiento = entrada.AñoLanzamiento,
                };
            }
            salida.Album = album;
            CrearVotable(album);
            _gestorPersistencia.Guardar(album);

            return(SalidaBase.Exito(salida));
        }
コード例 #11
0
        public AsociarCancionYAlbumSalida AsociarCancionYAlbum(AsociarCancionYAlbumEntrada entrada)
        {
            var salida = new AsociarCancionYAlbumSalida();

            int cancionError = int.MinValue;
            var canciones    = TraerCanciones(entrada.Canciones, (noEncontrado => cancionError = noEncontrado));

            if (cancionError != int.MinValue)
            {
                return(SalidaBase.Fallo(salida, string.Format(Cadenas.cancion_id_no_encontrado, cancionError)));
            }

            if (entrada.Accion == AsociarCancionYAlbumEntrada.Acciones.Asociar)
            {
                var album = _gestorPersistencia.TraerAlbum(entrada.AlbumId);
                if (album == null)
                {
                    return(SalidaBase.Fallo(salida, string.Format(Cadenas.album_id_no_encontrado, entrada.AlbumId)));
                }

                foreach (var cancion in canciones)
                {
                    cancion.AlbumId = album.Id;
                    _gestorPersistencia.Guardar(cancion);
                }
            }
            else if (entrada.Accion == AsociarCancionYAlbumEntrada.Acciones.Desasociar)
            {
                foreach (var cancion in canciones)
                {
                    cancion.AlbumId = null;
                    _gestorPersistencia.Guardar(cancion);
                }
            }

            return(SalidaBase.Exito(salida));
        }
コード例 #12
0
        public ModificarUsuarioSalida ModificarUsuario(ModificarUsuarioEntrada entrada)
        {
            var salida = new ModificarUsuarioSalida();

            return(SalidaBase.Fallo(salida, "No implementado"));
        }
コード例 #13
0
 protected bool Equals(SalidaBase other)
 {
     return(Resultado == other.Resultado && string.Equals(Mensaje, other.Mensaje));
 }