Exemplo n.º 1
0
        /// <summary>
        /// Método que registra el ingreso del usuario a la universidad
        /// </summary>
        /// <returns></returns>
        ///
        public List <RespuestaIngresoLavadoDto> registrarIngresoLavado(IngresoLavadoManosDto IngresoDto)
        {
            List <RespuestaIngresoLavadoDto> respuesta = new List <RespuestaIngresoLavadoDto>();
            int error       = 0;
            int codRegistro = 0;

            if (string.IsNullOrEmpty(IngresoDto.codUsuario) || string.IsNullOrEmpty(IngresoDto.codLavamanos))
            {
                respuesta.Add(new RespuestaIngresoLavadoDto()
                {
                    codUsuario   = Mensajes.codErrorUsuarioVacio,
                    codLavamanos = "-1"
                });
                error = 1;
            }

            if (error == 0)
            {
                NegocioUsuario   usuario   = new NegocioUsuario();
                NegocioLavamanos lavamanos = new NegocioLavamanos();

                Usuario   usuarioEncontrado   = usuario.ConsultarPorId(Convert.ToInt32(IngresoDto.codUsuario));
                Lavamanos lavamanosEncontrado = lavamanos.ConsultarPorId(Convert.ToInt32(IngresoDto.codLavamanos), IngresoDto.codInstitucion);

                // pasa todas las validaciones realizo la activacion del usuario
                if (error == 0)
                {
                    using (UnitOfWork unitOfWork = new UnitOfWork())
                    {
                        if (IngresoDto.codRegistro == "-1")
                        {
                            codRegistro = 0;
                        }
                        else
                        {
                            codRegistro = Convert.ToInt32(IngresoDto.codRegistro);
                        }
                        var            registroLavado     = unitOfWork.RegistroLavadoRepositorio.ObtenerPorCodRegistro(codRegistro);
                        RegistroLavado nuevoIngresoLavado = null;

                        usuarioEncontrado.codUsuario     = usuarioEncontrado.codUsuario;
                        lavamanosEncontrado.codLavamanos = lavamanosEncontrado.codLavamanos;

                        string fecha = DateTime.Now.ToString("yyyy-MM-dd");
                        string hora  = DateTime.Now.ToString("HH:mm:ss");

                        int[]    partes = hora.Split(new char[] { ':' }).Select(x => Convert.ToInt32(x)).ToArray();
                        TimeSpan tiempo = new TimeSpan(partes[0], partes[1], partes[2]);

                        //No se envia el codigo del lavamanos
                        if (registroLavado == null)
                        {
                            nuevoIngresoLavado = new RegistroLavado()
                            {
                                codUsuario    = usuarioEncontrado.codUsuario,
                                codLavamanos  = lavamanosEncontrado.codLavamanos,
                                fecha         = Convert.ToDateTime(fecha),
                                hora_registro = tiempo,
                                fechaCierre   = Convert.ToDateTime(fecha),
                                hora_cierre   = tiempo
                            };
                            //inserto el registro del lavado de manos
                            unitOfWork.RegistroLavadoRepositorio.Adicionar(nuevoIngresoLavado);
                            unitOfWork.Save();
                        }
                        else
                        {
                            nuevoIngresoLavado = new RegistroLavado()
                            {
                                codUsuario    = usuarioEncontrado.codUsuario,
                                codLavamanos  = lavamanosEncontrado.codLavamanos,
                                fecha         = Convert.ToDateTime(fecha),
                                hora_registro = tiempo,
                                fechaCierre   = Convert.ToDateTime(fecha),
                                hora_cierre   = tiempo
                            };

                            //cargo el objeto para registrar el lavado de manos
                            registroLavado.fechaCierre = nuevoIngresoLavado.fechaCierre;
                            registroLavado.hora_cierre = nuevoIngresoLavado.hora_cierre;

                            unitOfWork.RegistroLavadoRepositorio.Actualizar(registroLavado);
                            unitOfWork.Save();
                        }

                        //respuesta del proceso de lavado
                        respuesta.Add(new RespuestaIngresoLavadoDto()
                        {
                            codUsuario   = Convert.ToString(usuarioEncontrado.codUsuario),
                            codLavamanos = Convert.ToString(lavamanosEncontrado.codLavamanos),
                            fecha        = Convert.ToDateTime(fecha),
                            hora         = tiempo,
                            institucion  = IngresoDto.codInstitucion
                        });
                    }
                }
            }

            return(respuesta);
        }