Пример #1
0
        public bool EnviarArchivosFlash(ENKiosco kiosco, string Directorio, string DirectorioPrincipal, string usuario, string password, string dominio, ref string textoLog, List <string> listaArchivos, string identificador)
        {
            string slog  = "";
            bool   error = true;

            List <string> listaReintento = new List <string>();

            if (impersonateValidUser(usuario, dominio, password))
            {
                foreach (string item in listaArchivos)
                {
                    try
                    {
                        //string nombreTemp = string.Format("{0}{1}",Path.GetFileNameWithoutExtension(item),".temp");
                        string archivo = Path.GetFileName(item);

                        //string destino = @"\\" + kiosco.IpKiosco + kiosco.RutaPathArchivos + item.Replace(DirectorioPrincipal, "");
                        string destino = @"\\" + kiosco.IpKiosco + kiosco.RutaPathArchivos + @"\" + archivo;

                        File.Copy(item, destino, true);

                        textoLog = "    -Se ha copiado el archivo " + archivo + " a " + kiosco.IpKiosco;
                        EscribirLog(identificador, textoLog, ActualizacionFlash);
                    }
                    catch (Exception ex)
                    {
                        //no se pudo copiar
                        try
                        {
                            listaReintento.Add(item);
                            slog = DateTime.Now.ToString() + " " + kiosco.IpKiosco + " " + Path.GetFileName(item) + " " + ex.Message;
                            EscribirLog(identificador, slog, ActualizacionFlash);
                            error = false;
                        }
                        catch (IOException) { }
                    }
                }
            }
            else
            {//usuario incorrecto
                slog = DateTime.Now.ToString() + " el usuario " + usuario + " no es valido";
                EscribirLog(identificador, slog, ActualizacionFlash);
                error = false;
            }

            if (error == false)
            {
                error = ReintentarEnvio(kiosco, Directorio, DirectorioPrincipal, usuario, password, dominio, textoLog, listaReintento, identificador, ActualizacionFlash);
                return(error);
            }
            else
            {
                return(true);
            }
        }
Пример #2
0
        public bool EnviarUnArchivo(ENKiosco kiosco, string archivo, string DirectorioLocal, string usuario, string dominio, string password)
        {
            string rutaLog = ConfigurationManager.AppSettings["RutaLogErrores"].ToString();

            StreamWriter sw = new StreamWriter(rutaLog, true);

            bool error = true;

            try
            {
                //IntPtr admin_token = IntPtr.Zero;
                //WindowsIdentity wid_current = WindowsIdentity.GetCurrent();
                //WindowsIdentity wid_admin = null;
                //WindowsImpersonationContext wic = null;

                //wid_admin = new WindowsIdentity(admin_token);
                //wic = wid_admin.Impersonate();

                string destino = @"\\" + kiosco.IpKiosco + kiosco.RutaPathArchivos + @"\" + archivo;
                if (impersonateValidUser(usuario, dominio, password))
                {
                    File.Copy(DirectorioLocal + @"\" + archivo, destino, true);
                }
                else
                {
                    sw.WriteLine(DateTime.Now.ToString() + " el usuario " + usuario + " no es valido");
                    error = false;
                }
            }
            catch (Exception ex)
            {
                try
                {
                    sw.WriteLine(DateTime.Now.ToString() + " " + kiosco.IpKiosco + " " + archivo + " " + ex.Message);
                    error = false;
                }
                catch (IOException) { }
            }


            sw.Close();

            if (error == false)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Пример #3
0
        public bool ReintentarEliminar(ENKiosco kiosco, string Directorio, string DirectorioPrincipal, string usuario, string password, string dominio, string textoLog, List <string> listaReintento, string identificador, string eliminacion)
        {
            string slog  = "";
            int    count = listaReintento.Count;

            if (impersonateValidUser(usuario, dominio, password))
            {
                if (listaReintento.Count > 0)
                {
                    foreach (string item in listaReintento)
                    {
                        try
                        {
                            string archivo = Path.GetFileName(item);

                            string destino = @"\\" + kiosco.IpKiosco + kiosco.RutaPathArchivos + item.Replace(DirectorioPrincipal, "");
                            //string destino = @"\\" + kiosco.IpKiosco + kiosco.RutaPathArchivos + @"\" + archivo;

                            //File.Copy(item, destino, true);

                            textoLog = "    -Reintento exitoso - se ha eliminado el archivo " + archivo + " de " + kiosco.IpKiosco;
                            EscribirLog(identificador, textoLog, eliminacion);
                            count--;
                        }
                        catch (Exception ex)
                        {
                            //no se pudo copiar
                            try
                            {
                                listaReintento.Add(item);
                                slog = DateTime.Now.ToString() + " Reintento fallido - " + kiosco.IpKiosco + " " + Path.GetFileName(item) + " " + ex.Message;
                                EscribirLog(identificador, slog, eliminacion);
                            }
                            catch (IOException) { }
                        }
                    }
                }
            }
            else
            {
                return(false);
            }
            if (count == 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }