Exemplo n.º 1
0
        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);
            }
        }