Esempio n. 1
0
        public SlfInfo DownloadSlfFile(string aFileName, DateTime aDateCreated, int aDataInfoId)
        {
            this.FContext = new Ja2DataEntities();
            this.FContext.Configuration.AutoDetectChangesEnabled = false;

            string _fileName = Path.GetFileName(aFileName);

            SlfFile _slfRec = this.FContext.SlfFile
                              .Where(x => x.FileName.ToUpper() == _fileName.ToUpper() &&
                                     x.UserId == this.FUserId &&
                                     x.DateCreated > aDateCreated &&
                                     x.DataInfoId == aDataInfoId)
                              .FirstOrDefault();

            Ja2Data.SlfFile.Header _slfHeader = new Ja2Data.SlfFile.Header();
            _slfHeader.fContainsSubDirectories = _slfRec.ContainsSubDirectories;
            _slfHeader.iEntries      = _slfRec.EntriesCount;
            _slfHeader.iReserved     = _slfRec.Reserved;
            _slfHeader.iSort         = _slfRec.Sort;
            _slfHeader.iUsed         = _slfRec.Used;
            _slfHeader.iVersion      = _slfRec.Version;
            _slfHeader.LibName       = _slfRec.LibName;
            _slfHeader.PathToLibrary = _slfRec.PathToLibrary;

            List <Ja2Data.SlfFile.Record> _records = new List <Ja2Data.SlfFile.Record>(_slfRec.EntriesCount);

            foreach (SlfRecordJsd _jsdRecord in _slfRec.SlfRecordJsd)
            {
                Ja2Data.SlfFile.Record _rec = this.DownloadJsdRecord(_jsdRecord.SlfRecordJsdId);
                _records.Add(_rec);
            }

            foreach (SlfRecord _unstructuredRec in _slfRec.SlfRecord)
            {
                Ja2Data.SlfFile.Record _rec = this.DownloadUnstreucturedRecord(_unstructuredRec);
                _records.Add(_rec);
            }

            foreach (SlfRecordStci _stciRecord in _slfRec.SlfRecordStci)
            {
                Ja2Data.SlfFile.Record _rec = this.DownloadStiRecord(_stciRecord.SlfRecordId);
                _records.Add(_rec);
            }

            foreach (SlfRecordText _txtRecord in _slfRec.SlfRecordText)
            {
                Ja2Data.SlfFile.Record _rec = this.DownloadTxtRecord(_txtRecord);
                _records.Add(_rec);
            }

            Ja2Data.SlfFile _slfFile = new Ja2Data.SlfFile(_slfHeader, _records);

            _slfFile.Save(aFileName);

            return(new SlfInfo(_slfRec, 0));
        }
Esempio n. 2
0
        public LoaderFactory(Ja2Data.SlfFile aSlfFile, int aUserId, Ja2DataEntities aContext)
        {
            this.FSlfFile = aSlfFile;
            this.FUserId  = aUserId;

            aContext.FileExtention.Load();
            this.FExtentions = aContext.FileExtention.Local.Select(x => x.Extention).ToList();

            aContext.DataType.Load();
            foreach (DataType _type in aContext.DataType.Local)
            {
                //if (_type.DataTypeName != "J2SD")
                //    continue;

                SlfRecordLoader _loader = this.CreateLoader(_type);
                this.FLoaders.Add(_loader);
            }
        }
Esempio n. 3
0
        private SlfFile CreateSlfFile(Ja2Data.SlfFile aSlf, int aDataInfoId)
        {
            SlfFile _newSlfFileDb = new SlfFile();

            _newSlfFileDb.ContainsSubDirectories = aSlf.ContainsSubDirectories;
            _newSlfFileDb.EntriesCount           = aSlf.Entries;
            _newSlfFileDb.LibName       = aSlf.LibName;
            _newSlfFileDb.PathToLibrary = aSlf.PathToLibrary;
            _newSlfFileDb.Reserved      = aSlf.Reserved;
            _newSlfFileDb.Sort          = aSlf.Sort;
            _newSlfFileDb.Used          = aSlf.Used;
            _newSlfFileDb.Version       = aSlf.Version;
            _newSlfFileDb.FileName      = aSlf.SlfFileName;
            _newSlfFileDb.DataInfoId    = aDataInfoId;

            _newSlfFileDb.UserId      = this.FUserId;
            _newSlfFileDb.DateCreated = DateTime.Now;

            return(_newSlfFileDb);
        }
Esempio n. 4
0
        public SlfInfo UploadSlfFile(string aFileName, int aDataInfoId)
        {
            Ja2Data.SlfFile _slf = new Ja2Data.SlfFile(aFileName);
            this.FSlfFile = this.CreateSlfFile(_slf, aDataInfoId);
            this.FContext.SlfFile.Add(this.FSlfFile);
            this.FContext.SaveChanges();

            this.FLoaderFactory = new LoaderFactory(_slf, this.FUserId, this.FContext);
            int _rowsCounter = 0;

            using (FileStream _input = new FileStream(aFileName, FileMode.Open))
                using (BinaryReader _reader = new BinaryReader(_input))
                {
                    foreach (SlfRecordLoader _loader in this.FLoaderFactory.Loaders)
                    {
                        _rowsCounter += _loader.Upload(_reader, this.FSlfFile.SlfFileId);
                    }
                }

            return(new SlfInfo(this.FSlfFile, _rowsCounter));
        }