public ActionResult Crear()
        {
            var maxikiosco = new Entidades.MaxiKiosco() { EstaOnLine = true };

            CargarTurnos(maxikiosco);

            return PartialView(maxikiosco);
        }
        private bool SincronizarPrincipal(string nombreArchivo, out string error)
        {
            error = null;
            //Obtengo y descomprimo el zip en la carpeta temporal
            var xml  = new XmlDocument();
            var path = Path.Combine(AppSettings.UploadTempPath, nombreArchivo);

            DirectoryHelper.LimpiarDirectorio(AppSettings.UploadTempPath, ".xml");

            var rarFile = new ZipFile(path);

            rarFile.ExtractAll(AppSettings.UploadTempPath);

            //Leo los archivos xml y los corro si todavia no se corrieron
            var nombresArchivos = DirectoryHelper.ObtenerArchivos(AppSettings.UploadTempPath, "xml");

            nombresArchivos = nombresArchivos.Select(x => x.Split('\\').Last()).ToList();
            var xmls   = nombresArchivos.Select(x => new ArchivoKioscoDTO(x)).OrderBy(f => f.Secuencia).ToList();
            var result = true;

            Entidades.MaxiKiosco kiosco = null;

            //Verifico que no se haya salteado ningun archivo
            int ultimaSecuenciaAcusada;

            if (xmls.Any())
            {
                var identifier = xmls.First().MaxiKioscoIdentifier;
                kiosco = Uow.MaxiKioscos.Obtener(m => m.Identifier == identifier);
                ultimaSecuenciaAcusada = kiosco.UltimaSecuenciaAcusada ?? 0;
                if (xmls.First().Secuencia > ultimaSecuenciaAcusada + 1)
                {
                    error = string.Format(
                        "Error: hay archivos faltantes. Se espera un archivo de secuencia: {0}, y se pasó uno con la secuencia: {1}",
                        ultimaSecuenciaAcusada + 1, xmls.First().Secuencia);
                    return(false);
                }
            }

            foreach (var xmlFile in xmls)
            {
                kiosco = kiosco ?? Uow.MaxiKioscos.Obtener(m => m.Identifier == xmlFile.MaxiKioscoIdentifier);
                if (kiosco.UltimaSecuenciaAcusada == null || kiosco.UltimaSecuenciaAcusada < xmlFile.Secuencia)
                {
                    xml.Load(Path.Combine(AppSettings.UploadTempPath, xmlFile.NombreCompleto));
                    result = Uow.Exportaciones.ActualizarPrincipal(xml.InnerXml, xmlFile.MaxiKioscoIdentifier, xmlFile.Secuencia, xmlFile.NombreCompleto);
                    if (!result)
                    {
                        error = "Ha ocurrido un error durante intentando sincronizar el archivo: " + xmlFile.NombreCompleto;
                        break;
                    }
                }
            }

            return(result);
        }
Ejemplo n.º 3
0
        public ActionResult Crear()
        {
            var maxikiosco = new Entidades.MaxiKiosco()
            {
                EstaOnLine = true
            };

            CargarTurnos(maxikiosco);

            return(PartialView(maxikiosco));
        }
Ejemplo n.º 4
0
        public ActionResult Detalle(int id)
        {
            Entidades.MaxiKiosco maxikiosco = Uow.MaxiKioscos.Obtener(m => m.MaxiKioscoId == id,
                                                                      m => m.MaxiKioscoTurnos.Select(mt => mt.Turno));

            if (maxikiosco == null)
            {
                return(HttpNotFound());
            }

            return(PartialView(maxikiosco));
        }
Ejemplo n.º 5
0
        public ActionResult Editar(Entidades.MaxiKiosco maxikiosco)
        {
            if (!ModelState.IsValid)
            {
                return(PartialView(maxikiosco));
            }

            ActualizarTurnos(maxikiosco);

            maxikiosco.Desincronizado = true;
            Uow.MaxiKioscos.Modificar(maxikiosco);
            Uow.Commit();

            return(Json(new { exito = true }));
        }
Ejemplo n.º 6
0
        public ActionResult Eliminar(int id, FormCollection collection)
        {
            Entidades.MaxiKiosco maxikiosco = Uow.MaxiKioscos
                                              .Obtener(m => m.MaxiKioscoId == id);

            if (maxikiosco == null)
            {
                return(HttpNotFound());
            }

            Uow.MaxiKioscos.Eliminar(maxikiosco);
            Uow.Commit();

            return(Json(new { exito = true }));
        }
Ejemplo n.º 7
0
        private void ActualizarTurnos(Entidades.MaxiKiosco maxiKiosco)
        {
            foreach (var maxikisocoTurno in maxiKiosco.MaxiKioscoTurnos)
            {
                if (maxikisocoTurno.MaxiKioscoTurnoId == 0)
                {
                    Uow.MaxiKioscoTurnos.Agregar(maxikisocoTurno);
                }
                else
                {
                    Uow.MaxiKioscoTurnos.Modificar(maxikisocoTurno);
                }
            }

            maxiKiosco.MaxiKioscoTurnos.Clear();
        }
Ejemplo n.º 8
0
        public ActionResult Crear(Entidades.MaxiKiosco maxikiosco)
        {
            if (!ModelState.IsValid)
            {
                return(PartialView());
            }

            ActualizarTurnos(maxikiosco);

            maxikiosco.Identifier     = Guid.NewGuid();
            maxikiosco.CuentaId       = UsuarioActual.CuentaId;
            maxikiosco.Desincronizado = true;
            Uow.MaxiKioscos.Agregar(maxikiosco);
            Uow.Commit();

            return(Json(new { exito = true }));
        }
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            if (dgvListado.SelectedRows.Count > 0)
            {
                DataGridViewRow row      = dgvListado.SelectedRows[0];
                var             asignado = row.Cells[2].Value.ToString().Equals("SI");
                if (asignado)
                {
                    MessageBox.Show("El maxikiosco seleccionado ya ha sido seleccionado en otro kiosco");
                    DialogResult = DialogResult.None;
                }
                else
                {
                    //Asigno mi appsetting
                    var identifier = Guid.Parse(row.Cells[0].Value.ToString());
                    AppSettings.MaxiKioscoIdentifier = identifier;

                    //Si tengo internet lo notifico la asignación al servidor
                    try
                    {
                        var response = _sincronizacionService.MarcarKioscoComoAsignado(identifier.ToString());
                        var maxi     = new Entidades.MaxiKiosco()
                        {
                            Abreviacion = response.Abreviacion,
                            Asignado    = true,
                            CuentaId    = 1,
                            Direccion   = response.Direccion,
                            EstaOnLine  = true,
                            Nombre      = response.Nombre,
                            Telefono    = response.Telefono,
                            Identifier  = response.Identifier
                        };
                        _uow.MaxiKioscos.Agregar(maxi);
                        _uow.Commit();
                    }
                    catch (Exception)
                    {
                    }
                }
            }
            else
            {
                MessageBox.Show("Debe seleccionar un maxikiosco");
                DialogResult = DialogResult.None;
            }
        }
Ejemplo n.º 10
0
        private void CargarTurnos(Entidades.MaxiKiosco maxiKiosco)
        {
            //Obtener los turnos y crear maxikiscos turnos cuando el kiosco no los tenga.
            var turnos = Uow.Turnos.Listado().ToList();

            foreach (var turno in turnos)
            {
                var maxkioscoTurno = maxiKiosco.MaxiKioscoTurnos
                                     .FirstOrDefault(mt => mt.TurnoId == turno.TurnoId);

                if (maxkioscoTurno == null)
                {
                    maxkioscoTurno = new MaxiKioscoTurno();
                    maxkioscoTurno.MaxiKioscoId = maxiKiosco.MaxiKioscoId;
                    maxkioscoTurno.MaxiKiosco   = maxiKiosco;
                    maxkioscoTurno.TurnoId      = turno.TurnoId;
                    maxkioscoTurno.Turno        = turno;
                    //maxkioscoTurno.MontoMaximoVentaConTickets = null;
                    maxiKiosco.MaxiKioscoTurnos.Add(maxkioscoTurno);
                }
            }
        }
Ejemplo n.º 11
0
 public static void RefreshSettings()
 {
     _maxikiosco = null;
 }
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            if (dgvListado.SelectedRows.Count > 0)
            {
                DataGridViewRow row = dgvListado.SelectedRows[0];
                var asignado = row.Cells[2].Value.ToString().Equals("SI");
                if (asignado)
                {
                    MessageBox.Show("El maxikiosco seleccionado ya ha sido seleccionado en otro kiosco");
                    DialogResult = DialogResult.None;
                }
                else
                {
                    //Asigno mi appsetting
                    var identifier = Guid.Parse(row.Cells[0].Value.ToString());
                    AppSettings.MaxiKioscoIdentifier = identifier;

                    //Si tengo internet lo notifico la asignación al servidor
                    try
                    {
                        var response = _sincronizacionService.MarcarKioscoComoAsignado(identifier.ToString());
                        var maxi = new Entidades.MaxiKiosco()
                                   {
                                       Abreviacion = response.Abreviacion,
                                       Asignado = true,
                                       CuentaId = 1,
                                       Direccion = response.Direccion,
                                       EstaOnLine = true,
                                       Nombre = response.Nombre,
                                       Telefono = response.Telefono,
                                       Identifier = response.Identifier
                                   };
                        _uow.MaxiKioscos.Agregar(maxi);
                        _uow.Commit();
                    }
                    catch (Exception)
                    {

                    }
                }
            }
            else
            {
                MessageBox.Show("Debe seleccionar un maxikiosco");
                DialogResult = DialogResult.None;
            }
        }
Ejemplo n.º 13
0
 public static void RefreshSettings()
 {
     _maxikiosco = null;
 }