示例#1
0
        private async void setArchivos()
        {
            this.archivos.Clear();

            try
            {
                StorageFolder localFolder = await Utils.BaseFolder.GetFolderAsync(this.carpeta.Name.Replace("Page", string.Empty));

                IReadOnlyList <StorageFolder> destinationFolders = await localFolder.GetFoldersAsync();

                foreach (StorageFolder folder in destinationFolders)
                {
                    try
                    {
                        StorageFile file = await folder.GetFileAsync("Metadata.dat");

                        IList <string> lines = await FileIO.ReadLinesAsync(file);

                        JsonObject jsonObject = JsonObject.Parse(lines.First());
                        JsonArray  jsonArray  = jsonObject.GetNamedArray("Etiquetas");

                        List <Models.Etiquetas.Etiquetas> lst = new List <Models.Etiquetas.Etiquetas>();

                        foreach (IJsonValue fila in jsonArray)
                        {
                            Models.Etiquetas.Etiquetas tag = new Models.Etiquetas.Etiquetas(fila);

                            lst.Add(tag);
                        }

                        TransferirModel c = new TransferirModel()
                        {
                            Nombre   = folder.Name,
                            Alias    = String.Join("-", lst.Select(p => p.Valor)),
                            Enviando = false,
                            Mensaje  = null
                        };

                        this.archivos.Add(c);
                    }
                    catch (Exception)
                    {
                        // No pasa nada
                    }
                }
            }
            catch (Exception)
            {
                // No pasa nada
            }
            finally
            {
                OnPropertyChanged("IsSeleccionarAllowed");
            }
        }
        private async void cboCargar_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            TransferirModel c   = cboCargar.SelectedItem as TransferirModel;
            List <IBuffer>  lst = new List <IBuffer>();

            if (cboCargar.SelectedItem != null)
            {
                try
                {
                    StorageFolder localFolder = await Utils.BaseFolder.GetFolderAsync(model.carpeta.Name.Replace("Page", string.Empty));

                    StorageFolder folder = await localFolder.GetFolderAsync(c.Nombre);

                    StorageFile metadata = await folder.GetFileAsync("Metadata.dat");

                    IList <string> lines = await FileIO.ReadLinesAsync(metadata);

                    for (int i = 1; i < lines.Count; i++)
                    {
                        rootPage.NotifyUser("Apertura en progreso...", NotifyType.StatusMessage);
                        StorageFile file = await folder.GetFileAsync(lines.ElementAt(i));

                        IBuffer buffer = await FileIO.ReadBufferAsync(file);

                        lst.Add(buffer);
                    }


                    int cont = 0;
                    foreach (IBuffer img in lst)
                    {
                        StorageFile bmpFile = await model.DestinationFolder.CreateFileAsync(string.Format("Pagina {0}.bmp", cont + 1), CreationCollisionOption.GenerateUniqueName);

                        await FileIO.WriteBufferAsync(bmpFile, img);

                        Utils.SetImageSourceFromFile(bmpFile, DisplayImage);

                        Utils.UpdateFileData(bmpFile, model);

                        ScanerListView.SelectedItem = model.FileList.Last();
                        cont++;
                    }
                    rootPage.NotifyUser(String.Empty, NotifyType.StatusMessage);
                }
                catch (Exception)
                {
                    throw;
                }
            }
            else
            {
                DisplayImage.Source = null;
            }
        }
示例#3
0
        public async Task RemoverFolder(TransferirModel item)
        {
            this.archivos.Remove(item);
            this.transferidos.Add(item.Nombre);

            StorageFolder localFolder = await Utils.BaseFolder.GetFolderAsync(this.carpeta.Name.Replace("Page", string.Empty));

            StorageFolder folder = await localFolder.GetFolderAsync(item.Nombre);

            await folder.DeleteAsync(StorageDeleteOption.PermanentDelete);

            OnPropertyChanged("IsSeleccionarAllowed");
        }
        private async void btnFinalizar_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
        {
            try
            {
                Type tipoPage = FragmentFrame.SourcePageType;

                StorageFolder localFolder = await Utils.BaseFolder.CreateFolderAsync(tipoPage.Name.Replace("Page", string.Empty), CreationCollisionOption.OpenIfExists);

                StorageFolder destinationFolder = await localFolder.CreateFolderAsync(Guid.NewGuid().ToString(), CreationCollisionOption.GenerateUniqueName);

                StorageFolder pdfFolder = await localFolder.CreateFolderAsync("Digitalizados", CreationCollisionOption.OpenIfExists);

                // Encabezado
                StorageFile file = await destinationFolder.CreateFileAsync("Metadata.dat", CreationCollisionOption.FailIfExists);

                await FileIO.WriteTextAsync(file, model.StringifyEtiquetas + Environment.NewLine);

                IEnumerable <string> query = from a in model.FileList
                                             select a.Name;

                await FileIO.AppendLinesAsync(file, query);

                List <Stream>  Fotos = new List <Stream>();
                List <IBuffer> lst   = new List <IBuffer>();

                // Detalle
                foreach (FileItem fila in model.FileList)
                {
                    StorageFile filepage = await model.DestinationFolder.GetFileAsync(fila.Name);

                    IBuffer buf = await FileIO.ReadBufferAsync(filepage);

                    lst.Add(buf);
                    Fotos.Add(buf.AsStream());

                    await filepage.MoveAsync(destinationFolder);
                }

                ////////////////////
                // 24-Oct-2016, Roberto Castro, Proceso que guarda el archivo en la maquina local
                Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
                bool value = Convert.ToBoolean(localSettings.Values["SaveLocalFile"]);
                if (value == true)
                {
                    Models.Archivos.Archivos_PostBindingModel model2 = new Models.Archivos.Archivos_PostBindingModel();
                    model2.Aplicacion = model.Aplicacion;
                    model2.Categoria  = model.Categoria;
                    model2.Etiquetas  = model.Etiquetas;

                    IEnumerable <IBuffer> archivos = lst;

                    IBuffer archivo = await ArchivosModel.PostArchivoPdf(model2, archivos);

                    byte[] st = archivo.ToArray();

                    var queryTags = from a in model2.Etiquetas
                                    select a.Valor;
                    string NombreArchivo = string.Join("-", queryTags) + ".pdf";
                    try
                    {
                        await obtenerArchivoGuardado(st, pdfFolder.Path + @"\" + NombreArchivo);
                    }
                    catch { }
                }
                ////////////////////
                // 08-Feb-2017, Roberto Castro, Si se cargaron imagen anteriormente digitalizadas, se borra la carpeta
                if (cboCargar.SelectedItem != null)
                {
                    TransferirModel c      = cboCargar.SelectedItem as TransferirModel;
                    StorageFolder   folder = await localFolder.GetFolderAsync(c.Nombre);

                    await folder.DeleteAsync();
                }
                ////////////////////

                LimpiarVista();

                rootPage.NotifyUser("El documento fue guardado exitosamente. Puede continuar.", NotifyType.StatusMessage);
            }
            catch (Exception ex)
            {
                rootPage.NotifyUser(ex.Message, NotifyType.ErrorMessage);
            }
        }
        private async void btnTransferir_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                CambiarVisibilidad(Visibility.Collapsed);

                Models.Archivos.Archivos_PostBindingModel model = new Models.Archivos.Archivos_PostBindingModel();

                foreach (var fila in lstArchivos.SelectedItems.Reverse())
                {
                    TransferirModel myFolder = (TransferirModel)fila;
                    myFolder.Enviando = true;

                    StorageFolder localFolder = await Utils.BaseFolder.CreateFolderAsync(TransferirContext.Carpeta.Name.Replace("Page", string.Empty), CreationCollisionOption.OpenIfExists);

                    StorageFolder pdfFolderDig = await localFolder.CreateFolderAsync("Digitalizados", CreationCollisionOption.OpenIfExists);

                    StorageFolder pdfFolderTran = await localFolder.CreateFolderAsync("Transferidos", CreationCollisionOption.OpenIfExists);

                    try
                    {
                        model = await TransferirContext.getModel(myFolder.Nombre);

                        model.Agregar = true;

                        IEnumerable <IBuffer> archivos = await TransferirContext.getFolderFiles(myFolder.Nombre);

                        string IdArchivo;
                        IdArchivo = Convert.ToString(await ArchivosModel.Post(model, archivos));

                        //////////////////////////////
                        Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
                        bool value = Convert.ToBoolean(localSettings.Values["SaveLocalFile"]);
                        if (value == true)
                        {
                            var queryTags = from a in model.Etiquetas
                                            select a.Valor;
                            string NombreArchivo = string.Join("-", queryTags) + ".pdf";
                            try
                            {
                                StorageFile filepage = await pdfFolderDig.GetFileAsync(NombreArchivo);

                                await filepage.MoveAsync(pdfFolderTran, NombreArchivo, NameCollisionOption.ReplaceExisting);
                            }
                            catch
                            { }
                        }
                        //////////////////////////////

                        await TransferirContext.RemoverFolder(myFolder);
                    }
                    catch (Exception ex)
                    {
                        myFolder.Mensaje  = ex.Message;
                        myFolder.Enviando = false;
                    }
                }
            }
            catch (Exception ex)
            {
                rootPage.NotifyUser(ex.Message, NotifyType.ErrorMessage);
            }
            finally
            {
                CambiarVisibilidad(Visibility.Visible);
            }
        }