示例#1
0
        private void ReadFile()
        {
            while (Reader.BaseStream.Position != Reader.BaseStream.Length)
            {
                if (SrrStream.Position + headerLength > SrrStream.Length)
                {
                    break;
                }
                var rarBlock = new RarBlock(Reader);

                //We only care about these block types, the rest are useless and the RarBlock class will handle that
                switch (rarBlock.Type)
                {
                case SRRBlockType.SrrHeader:
                    Header = new SrrHeaderBlock(rarBlock);
                    break;

                case SRRBlockType.SrrStoredFile:
                    StoredFiles.Add(new SrrStoredFileBlock(rarBlock));
                    break;

                case SRRBlockType.SrrRarFile:
                    RarFiles.Add(new SrrRarFileBlock(rarBlock));
                    break;

                case SRRBlockType.RarPackedFile:
                    PackedFiles.Add(new RarFileHeaderBlock(rarBlock));
                    break;
                }
            }
            Reader.Close();
        }
示例#2
0
 public bool AddNewFile(string path, bool copy = true)
 {
     try
     {
         if (!File.Exists(path))
         {
             throw new FileNotFoundException();
         }
         if (copy)
         {
             File.Copy(path, Path.Combine(SetsPath, Path.GetFileName(path)));
         }
         StoredFiles.Add(new StorageFile
         {
             Key  = CurrentIndex,
             Path = path
         });
         CurrentIndex++;
         return(true);
     }
     catch (FileNotFoundException ex)
     {
         Logger.Log(ex.ToString());
         return(false);
     }
     catch (Exception ex)
     {
         Logger.Log(ex.ToString());
         return(false);
     }
 }
        protected override void OnAddStoredFile()
        {
            if (!File.Exists(FilePath))
            {
                ShowError(Resources.MSG_EXC_CANNOT_ACCESS_FILE);
                return;
            }

            try
            {
                var driverCardFile = new DriverCardFile
                {
                    Date           = SelectedDate,
                    Driver         = Driver,
                    FileName       = Path.GetFileName(FilePath),
                    SerializedFile = BaseFile.GetStoredFile(FilePath)
                };

                StoredFiles.Add(driverCardFile);
                DriverCardFilesRepository.Add(driverCardFile);

                Driver       = null;
                SelectedDate = DateTime.Now;
                FilePath     = null;
            }
            catch (Exception ex)
            {
                ShowError(Resources.EXC_UNABLE_TO_CREATE_DRIVER_CARD, ExceptionPolicy.HandleException(ContainerBootstrapper.Container, ex));
            }
        }
示例#4
0
        protected override void OnAddStoredFile()
        {
            if (!File.Exists(FilePath))
            {
                ShowError(Resources.MSG_EXC_CANNOT_ACCESS_FILE);
                return;
            }

            try
            {
                WorkshopCardFile workshopCardFile = WorkshopCardFile.GetWorkshopCardFile(SelectedDate, Workshop, FilePath);
                StoredFiles.Add(workshopCardFile);
                WorkshopCardFilesRepository.Add(workshopCardFile.Clone <WorkshopCardFile>());

                IsReadFromCardEnabled = true;
                IsFormEnabled         = true;
                Workshop     = null;
                SelectedDate = DateTime.Now;
                FilePath     = null;
            }
            catch (Exception ex)
            {
                ShowError(Resources.EXC_UNABLE_ADD_WORKSHOP_CARD_FILE, ExceptionPolicy.HandleException(ContainerBootstrapper.Container, ex));
            }
        }
示例#5
0
        private void OnRemove(object arg)
        {
            if (SelectedStoredFile == null)
            {
                return;
            }

            OnStoredFileRemoved();
            StoredFiles.Remove(SelectedStoredFile);
        }
示例#6
0
 public bool RemoveFile(int key)
 {
     try
     {
         if (StoredFiles.Where(x => x.Key == key).Count() == 0)
         {
             throw new KeyNotFoundException();
         }
         StoredFiles.RemoveAll(x => x.Key == key);
         return(true);
     }
     catch (KeyNotFoundException)
     {
         return(false);
     }
     catch (Exception)
     {
         return(false);
     }
 }
示例#7
0
 public bool RemoveStorage(int key)
 {
     try
     {
         if (StoredFiles.Where(x => x.Key == key).Count() == 0)
         {
             throw new KeyNotFoundException();
         }
         var storage = GetStorageFileByKey(key);
         StoredFiles.RemoveAll(x => x.Key == key);
         Directory.Delete(storage.Path, true);
         return(true);
     }
     catch (KeyNotFoundException e)
     {
         throw;
     }
     catch (Exception)
     {
         throw;
     }
 }
示例#8
0
        public bool AddNewStorage(string path)
        {
            try
            {
                Directory.CreateDirectory(path);
                StoredFiles.Add(new StorageFile
                {
                    Key       = CurrentIndex,
                    Path      = path,
                    FileNames = new List <string>()
                });

                CurrentIndex++;
                return(true);
            }
            catch (FileNotFoundException ex)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        protected override void Load()
        {
            base.Load();

            StoredFiles.AddRange(DriverCardFilesRepository.GetAll("Customer").OrderByDescending(c => c.Date));
        }
示例#10
0
        protected override void Load()
        {
            base.Load();

            StoredFiles.AddRange(WorkshopCardFilesRepository.GetAll().OrderByDescending(c => c.Date));
        }