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; }