public ObtenerDatosSecuencialResponse ObtenerDatosSecuencial(ObtenerDatosRequest request)
        {
            var maxiKioscoIdentifier = request.MaxiKioscoIdentifier;
            var usuario = Uow.Usuarios.Obtener(u => u.Identifier == request.UsuarioIdentifier);

            if (usuario == null)
                throw new ApplicationException("No se encontro el usuario");

            var response = new ObtenerDatosSecuencialResponse();

            //Actualizo el estado de kiosco
            var kiosco = Uow.MaxiKioscos.Obtener(m => m.Identifier == maxiKioscoIdentifier);
            kiosco.UltimaSecuenciaExportacion = request.UltimaSecuenciaExportacion;
            Uow.Commit();

            //Controlo si es la última
            var cantidadPorExportar = Uow.Exportaciones.Listado()
                .Count(e => e.CuentaId == usuario.CuentaId
                            && (!request.UltimaSecuenciaExportacion.HasValue)
                            || e.Secuencia > request.UltimaSecuenciaExportacion);

            if (cantidadPorExportar > 0)
            {
                var exportacion = Uow.Exportaciones.Listado(e => e.ExportacionArchivo)
                    .FirstOrDefault(e => e.CuentaId == usuario.CuentaId
                                && (!request.UltimaSecuenciaExportacion.HasValue)
                                || e.Secuencia > request.UltimaSecuenciaExportacion);

                var data = new ExportacionData()
                                {
                                    Secuencia = exportacion.Secuencia,
                                    Archivo = exportacion.ExportacionArchivo.Archivo
                                };

                //Creamos la respuesta
                response.Exportacion = data;
                response.ArchivosRestantes = cantidadPorExportar - 1;
                return response;
            }
            return response;
        }
        /// <summary>
        /// Obtiene todos los datos de desincronizados desde la base de datos principal
        /// </summary>
        /// <param name="request">Request parametros</param>
        /// <returns>Datos a sincronizar en el maxikiosco</returns>
        public ObtenerDatosResponse ObtenerDatos(ObtenerDatosRequest request)
        {
            var maxiKioscoIdentifier = request.MaxiKioscoIdentifier;
            var usuario = Uow.Usuarios.Obtener(u => u.Identifier == request.UsuarioIdentifier);

            if (usuario == null)
                throw new ApplicationException("No se encontro el usuario");

            var response = new ObtenerDatosResponse();
            var puedeExportar = Uow.Exportaciones.PuedeExportarPrincipal();
            if (puedeExportar)
            {
                Uow.Exportaciones.ExportarPrincipal(usuario.UsuarioId);
            }

            //Actualizo el estado de kiosco
            var kiosco = Uow.MaxiKioscos.Obtener(m => m.Identifier == maxiKioscoIdentifier);
            kiosco.UltimaSecuenciaExportacion = request.UltimaSecuenciaExportacion;
            Uow.Commit();

            //Obtenemos las exportacion generadas
            var exportaciones = Uow.Exportaciones.Listado(e => e.ExportacionArchivo)
                .Where(e => e.CuentaId == usuario.CuentaId
                            && (!request.UltimaSecuenciaExportacion.HasValue)
                            || e.Secuencia > request.UltimaSecuenciaExportacion)
                .Select(e =>
                        new ExportacionData()
                            {
                                Secuencia = e.Secuencia,
                                Archivo = e.ExportacionArchivo.Archivo
                            })
                .ToArray();

            //Creamos la respuesta
            response.Exportaciones = exportaciones;
            return response;
        }