예제 #1
0
        public FileReceptionRequest ObtieneListaImages()
        {
            FileReceptionRequest frr = new FileReceptionRequest();

            List <DataFile> listdatafile = new List <DataFile>();
            Compression     compression  = new Compression();

            try
            {
                //string directorio = @"C:\Users\gvazquez\Documents\TestDIrectorySaveFile\15396402931_20190131\ImagenesPosdata1\";
                string directorio = @"C:\Users\Giovanna\Pictures\Saved Pictures\";

                //string[] ficheros = Directory.GetFiles(directorio);
                foreach (string file in Directory.GetFiles(directorio))
                {
                    DataFile df    = new DataFile();
                    byte[]   bytes = compression.Compress(File.ReadAllBytes(file));
                    df.File = bytes;
                    string[] s = file.Split('\\');
                    df.Name             = s[s.Length - 1];
                    df.TypeOfEvidence   = "E1";
                    df.FileCreationDate = DateTime.Now;
                    listdatafile.Add(df);
                }

                frr.IdStore  = "33";
                frr.IdSync   = "154916079533";
                frr.TypeFile = "F001";
                frr.Files    = listdatafile;
            }
            catch (Exception ex)
            {
                frr.TypeFile = ex.Message;
                frr.IdStore  = ex.StackTrace;
            }

            return(frr);
        }
예제 #2
0
        public ResponseBase FileReception(FileReceptionRequest request)
        {
            ResponseBase response    = new ResponseBase();
            Compression  compression = new Compression();

            DataTable dt = new DataTable();

            try
            {
                string          idsync       = request.IdSync;
                string          idstore      = request.IdStore;
                string          typefile     = request.TypeFile;
                List <DataFile> filedatalist = request.Files;



                bool   idsyncExist   = ValidateIdSync(idsync, idstore);
                bool   typefileValid = typefile.Contains("F001"); //evidencia fotografica .jpg o .jpeg
                string pathSaveFile  = ConfigurationManager.AppSettings["URLFilesSaved"].ToString();
                string directoryName = DateTime.Now.ToString("yyyy") + @"\" + DateTime.Now.ToString("yyyyMM") + @"\" + idsync;
                pathSaveFile = Path.Combine(pathSaveFile, directoryName);


                if (idsyncExist && typefileValid)
                {
                    try
                    {
                        if (!Directory.Exists(pathSaveFile))
                        {
                            // Try to create the directory.
                            DirectoryInfo di = Directory.CreateDirectory(pathSaveFile);
                        }
                        foreach (DataFile file in filedatalist)
                        {
                            if (file.Name.Contains(".jpg") || file.Name.Contains(".jpeg"))

                            {
                                //decompress , convert byte[] to file(image) and save file, save into databese

                                byte[] decompressFile = compression.Decompress(file.File);
                                byte[] img            = default(byte[]);


                                using (FileStream fs = new FileStream(Path.Combine(pathSaveFile, file.Name), FileMode.Create, FileAccess.ReadWrite, FileShare.Read))
                                {
                                    fs.Write(decompressFile, 0, decompressFile.Length);
                                }


                                using (FileStream FS = new FileStream(Path.Combine(pathSaveFile, file.Name), FileMode.Open, FileAccess.Read))
                                {
                                    img = new byte[FS.Length]; //create a byte array with size of user select file stream length
                                    FS.Read(img, 0, Convert.ToInt32(FS.Length));
                                }

                                /* FileStream FS = new FileStream(Path.Combine(pathSaveFile, file.Name), FileMode.Open, FileAccess.Read); //create a file stream object associate to user selected file
                                 * byte[] img = new byte[FS.Length]; //create a byte array with size of user select file stream length
                                 * FS.Read(img, 0, Convert.ToInt32(FS.Length));}*/

                                SaveDetailIntoDB(idsync, idstore, pathSaveFile, file.Name, file.TypeOfEvidence, file.FileCreationDate, img);
                                //proceso de guardado
                                response.Code    = "S001";
                                response.Success = true;
                                response.Message = "Proceso exitoso. ";
                            }
                            else
                            {
                                response.Code    = "A002";
                                response.Success = false;
                                response.Message = "Error al determinar el tipo de archivo permitido.";
                                break;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        response.Code    = "A000";
                        response.Success = false;
                        response.Message = "Error en el proceso.  " + ex.Message;
                    }
                }


                else
                {
                    response.Code    = "A001";
                    response.Success = false;
                    response.Message = "Clave de sincronización no válida o Error al determinar el tipo de archivo por recibir.";
                }
            }
            catch (Exception ex)
            {
                response.Code    = "A000";
                response.Success = false;
                response.Message = "Error en el proceso. " + ex.StackTrace + ". " + ex.Message;
            }

            return(response);
        }