Esempio n. 1
0
        //сохраняем аттрибуты пакета файлов в таблицу DemandArchiveErs
        //возвращает ID записи
        public async Task <long> Save_Package_atrributes(DemandArchiveErs DAE)
        {
            _db.DemandArchiveErss.Add(DAE);
            await _db.SaveChangesAsync();

            return(DAE.DemandArchiveErsNr);
        }
Esempio n. 2
0
        public async Task <IActionResult> Upload()
        {
            filesCmrs.Clear();
            long _demandArchiveErsNr;

            try
            {
                DemandArchiveErs DAE = new DemandArchiveErs()
                {
                    WorkstationsNr            = Int32.Parse(_configuration["WorkstationsNr"]),
                    RegionTypesNr             = Int32.Parse(_configuration["RegionTypesNr"]),
                    ConfirmDeleteAfterArchive = Int32.Parse(_configuration["ConfirmDeleteAfterArchive"])
                };

                //сохраняем аттрибуты пакета файлов
                _demandArchiveErsNr = await Save_Package_atrributes(DAE);
            }
            catch (Exception ex)
            {
                _logger.LogFatal(ex, "Error while saving data in demandArchiveErs");
                return(Content("Error while saving data in demandArchiveErs"));
            }

            _logger.LogInfo($"Package atrributes were saved in demandArchiveErs,ID : {_demandArchiveErsNr}");
            FormValueProvider formModel;
            var name_date = DateTime.Now.ToString("_dd_MM_yyyy_(hh_mm_ss)");

            var path_to_directory = Path.Combine(_appEnvironment.WebRootPath,
                                                 Path.Combine(AccountController.Current_user, name_date));

            //string path_to_directory = Path.Combine("D:", Path.Combine(AccountController.Current_user, name_date));
            //создаем директорию с уникальным именем(папка, заданая в appsettings.json,+имя пользователя+дата время)
            if (!Directory.Exists(path_to_directory))
            {
                Directory.CreateDirectory(path_to_directory);
            }

            _logger.LogInfo($"Crate directory {path_to_directory}");
            var path  = (path_to_directory);
            var path1 = Path.Combine(path_to_directory, Path.GetRandomFileName());

            using (var stream = System.IO.File.Create(path1))
            {
                formModel = await Request.StreamFile(stream, path);
            }

            var viewModel = new MyViewModel();

            var bindingSuccessful = await TryUpdateModelAsync(viewModel, prefix : "",
                                                              valueProvider : formModel);

            if (!bindingSuccessful)
            {
                if (!ModelState.IsValid)
                {
                    _logger.LogError("Error has happend in file_sending");
                    return(BadRequest(ModelState));
                }
            }

            long?file_size;
            long?_filesDemandArchiveErsNr;

            try
            {
                for (var i = 0; i < FileStreamingHelper.file_name.Count - 1; i++)
                {
                    file_size = new FileInfo(Path.Combine(path, FileStreamingHelper.file_name[i])).Length;
                    var FDE = new FilesDemandArchiveErs()
                    {
                        FileSizeInBytes    = file_size,
                        PathFileName       = path,
                        DemandArchiveErsNr = _demandArchiveErsNr
                    };
                    //сохраняем атрибуты файлов
                    _filesDemandArchiveErsNr = await Save_File_atrributes(FDE);

                    FilesCmr filesCmr = new FilesCmr()
                    {
                        RootDir              = path,
                        FileName             = FileStreamingHelper.file_name[i],
                        FileSize             = file_size.ToString(),
                        FilesDemandArchiveNr = _filesDemandArchiveErsNr,
                        DemandArchiveErsNr   = _demandArchiveErsNr,
                        DateSendDemand       = DateTime.Now.Date
                    };

                    filesCmrs.Add(filesCmr);
                }
            }
            catch (Exception ex)
            {
                _logger.LogFatal(ex, "Error while saving data in filesDemandArchiveErs");
                return(Content(ex.Message));
            }
            _logger.LogInfo("All file's attributes were saved");
            return(RedirectToAction("Index", "File"));
        }
Esempio n. 3
0
        //Save files and get atrributes
        public async Task <List <FilesCmr> > Save_files(IFormFileCollection file_collection, string _user_name)
        {
            //list of data that will be needed to add a shape in future
            List <FilesCmr> files_cmr = new List <FilesCmr>();
            //Package of files atrributes
            //read from appsettings.json
            DemandArchiveErs DAE = new DemandArchiveErs()
            {
                WorkstationsNr            = Int32.Parse(_configuration["WorkstationsNr"]),
                RegionTypesNr             = Int32.Parse(_configuration["RegionTypesNr"]),
                ConfirmDeleteAfterArchive = Int32.Parse(_configuration["ConfirmDeleteAfterArchive"])
            };

            //add Package of files atrributes to the database
            _demandArchiveErsNr = await Save_Package_atrributes(DAE);

            //get current date and time to get an uniq name
            string name_date = DateTime.Now.ToString("_dd_MM_yyyy_(hh_mm_ss)");

            //creating uniq folder's name depends on date+time
            string path_to_directory = Path.Combine(_appEnvironment.WebRootPath, Path.Combine(_user_name, name_date));

            //create directory with uniq name
            if (!Directory.Exists(path_to_directory))
            {
                Directory.CreateDirectory(path_to_directory);
            }
            //working with IFormFileCollection
            foreach (var file in file_collection)
            {
                //get file's name
                file_name = Path.GetFileName(file.FileName);
                //get file's files path
                path_to_file = Path.Combine(path_to_directory, file_name);

                try
                {
                    //save file
                    FileStream fstream = new FileStream(path_to_file, FileMode.Create);
                    await file.CopyToAsync(fstream);
                }
                catch (IOException ioException)
                {
                    //need to make some exception
                }
                //find file's size
                file_size = new System.IO.FileInfo(path_to_file).Length;
                //fill file's atrributes
                FilesDemandArchiveErs FDE = new FilesDemandArchiveErs()
                {
                    FileSizeInBytes    = file_size,
                    PathFileName       = path_to_file,
                    DemandArchiveErsNr = _demandArchiveErsNr
                };
                //save file's atrributes in the database
                _filesDemandArchiveErsNr = await Save_File_atrributes(FDE);

                FilesCmr filesCmr = new FilesCmr()
                {
                    RootDir              = path_to_directory,
                    FileName             = file_name,
                    FileSize             = file_size.ToString(),
                    FilesDemandArchiveNr = _filesDemandArchiveErsNr,
                    DemandArchiveErsNr   = _demandArchiveErsNr,
                    DateSendDemand       = DateTime.Now.Date
                };

                files_cmr.Add(filesCmr);
            }
            //return data that will be needed to add a shape in future
            return(files_cmr.ToList());
        }