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