//Modificar usuario public Respuesta modificarUsuario(string tipoUsuario, dynamic pDatosUsuario, JArray pListaGenerosFavoritos) { Respuesta respuesta = null; usuarios usuario = null; //Elige el tipo de usuario switch (tipoUsuario) { case "fanatico": //Si el usuario es fanatico Fanatico fanaticoModificacion = new Fanatico(); fanaticoModificacion.deserialize(pDatosUsuario); fanaticoModificacion.Estado = _manejador.obtenerEstado(1).estado; fanaticoModificacion.TipoUsuario = _manejador.obtenerTipoUsuario(2).tipo; //Verificar que el usuario exista if (comprobarUsuarioUnico(fanaticoModificacion)) { return(_fabricaRespuestas.crearRespuesta(false, "Ya se encuentra en uso el nombre de usuario. Intente con otro por favor.")); } //Comprobar generos musicales favoritos seleccionados int[] arregloGenerosFavoritos = _serial.getArrayInt(pListaGenerosFavoritos); if (arregloGenerosFavoritos.Length > 10) { return(_fabricaRespuestas.crearRespuesta(false, "Se seleccionaron más del máximo de 10 géneros musicales favoritos. Por favor intente con 10.")); } List <generos> listaGenerosFavoritos = new List <generos>(); try { for (int i = 0; i < arregloGenerosFavoritos.Length; i++) { listaGenerosFavoritos.Add(_manejador.obtenerGenero(arregloGenerosFavoritos[i])); } } catch (Exception) { //Retorna respuesta de fallo return(_fabricaRespuestas.crearRespuesta(false, "Fallo al seleccionar los generos favoritos.")); } //Almacena modificacion de usuario respuesta = _fabricaRespuestas.crearRespuesta(true, fanaticoModificacion.serialize()); break; case "colaborador": //Si el usuario es colaborador Colaborador colaboradorModificacion = new Colaborador(); colaboradorModificacion.deserialize(pDatosUsuario); //Parse JSON colaboradorModificacion.Estado = _manejador.obtenerEstado(1).estado; //Rol colaborador colaboradorModificacion.TipoUsuario = _manejador.obtenerTipoUsuario(1).tipo; //Establece como activo if (comprobarUsuarioUnico(colaboradorModificacion)) { return(_fabricaRespuestas.crearRespuesta(false, "Ya se encuentra en uso el nombre de usuario. Intente con otro por favor.")); } //Almacena modificacion de colaborador //usuario = _manejador.añadirUsuario(_convertidor.updateusuarios(nuevoColaborador)); //Se almacena el nuevo usuario //nuevoColaborador = (Colaborador)_convertidor.createUsuario(usuarioCreado); //Almacena nuevo colaborador //Retorna respuesta exitosa respuesta = _fabricaRespuestas.crearRespuesta(true, colaboradorModificacion.serialize()); break; default: //Si el tipo de usuario no existe. Retorna mensaje error respuesta = _fabricaRespuestas.crearRespuesta(false, "Tipo de usuario no existente. Intente de nuevo por favor."); break; } return(respuesta); }
//Registrar nuevo usuario en el sistema public Respuesta registrarUsuario(string pRol, JObject pDatosUsuario, JArray pListaGeneroFavoritos) { Respuesta respuesta = null; usuarios usuarioCreado = null; try { if (pRol == "fanatico") //Si es fanatico { Fanatico nuevoFanatico = new Fanatico(); nuevoFanatico.deserialize(pDatosUsuario); //Parse JSON nuevoFanatico.Estado = _manejador.obtenerEstado(1).estado; //Establece estado activo nuevoFanatico.TipoUsuario = _manejador.obtenerTipoUsuario(2).tipo; //Rol fanatico if (comprobarUsuarioUnico(nuevoFanatico)) { return(_fabricaRespuestas.crearRespuesta(false, "Ya se encuentra en uso el nombre de usuario. Intente con otro por favor.")); } //Comprobar generos musicales favoritos seleccionados int[] arregloGenerosFavoritos = _serial.getArrayInt(pListaGeneroFavoritos); if (arregloGenerosFavoritos.Length > 10) { return(_fabricaRespuestas.crearRespuesta(false, "Se seleccionaron más del máximo de 10 géneros musicales favoritos. Por favor intente con 10.")); } List <generos> listaGenerosFavoritos = new List <generos>(); try { for (int i = 0; i < arregloGenerosFavoritos.Length; i++) { listaGenerosFavoritos.Add(_manejador.obtenerGenero(arregloGenerosFavoritos[i])); } } catch (Exception) { //Retorna respuesta de fallo return(_fabricaRespuestas.crearRespuesta(false, "Fallo al seleccionar los generos favoritos.")); } usuarioCreado = _manejador.añadirUsuario(_convertidor.updateusuarios(nuevoFanatico), listaGenerosFavoritos); //Se almacena el nuevo usuario nuevoFanatico = (Fanatico)_convertidor.createUsuario(usuarioCreado); //Retorna respuesta exitosa respuesta = _fabricaRespuestas.crearRespuesta(true, nuevoFanatico.serialize()); } if (pRol == "colaborador") //Si es colaborador { Colaborador nuevoColaborador = new Colaborador(); nuevoColaborador.deserialize(pDatosUsuario); //Parse JSON nuevoColaborador.Estado = _manejador.obtenerEstado(1).estado; //Rol colaborador nuevoColaborador.TipoUsuario = _manejador.obtenerTipoUsuario(1).tipo; //Establece como activo if (comprobarUsuarioUnico(nuevoColaborador)) { return(_fabricaRespuestas.crearRespuesta(false, "Ya se encuentra en uso el nombre de usuario. Intente con otro por favor.")); } usuarioCreado = _manejador.añadirUsuario(_convertidor.updateusuarios(nuevoColaborador)); //Se almacena el nuevo usuario nuevoColaborador = (Colaborador)_convertidor.createUsuario(usuarioCreado); //Almacena nuevo colaborador //Retorna respuesta exitosa respuesta = _fabricaRespuestas.crearRespuesta(true, nuevoColaborador.serialize()); } } catch (Exception) { //Respuesta de error respuesta = _fabricaRespuestas.crearRespuesta(false, "Error al ingresar usuario nuevo."); //respuesta = _fabricaRespuestas.crearRespuesta(false, "Error al ingresar usuario nuevo.", e.ToString()); } return(respuesta); }