Exemple #1
0
        public Task <List <ImageFileViewModel> > GetImageFilesAsync()
        {
            if (_imageFiles != null)
            {
                return(Task.FromResult(_imageFiles));
            }

            _imageFiles = new List <ImageFileViewModel>();
            var files = Directory.GetFiles(_path)
                        .Where(p =>
            {
                var extension = Path.GetExtension(p).ToLower();
                return(JpegExtensions.Contains(extension) || RawExtensions.Contains(extension));
            })
                        .OrderBy(p => p);

            var groupedFiles = files.GroupBy(Path.GetFileNameWithoutExtension);

            foreach (var groupedFile in groupedFiles)
            {
                var jpegFilepath = groupedFile.FirstOrDefault(p => JpegExtensions.Contains(Path.GetExtension(p)?.ToLower()));
                var rawFilepath  = groupedFile.FirstOrDefault(p => RawExtensions.Contains(Path.GetExtension(p)?.ToLower()));

                var imageFile = new ImageFileViewModel(jpegFilepath, rawFilepath);

                _imageFiles.Add(imageFile);
            }

            return(Task.Run(() =>
            {
                _imageFiles.AsParallel().ForAll(p => p.InitializePreviewImage());
                return _imageFiles;
            }));
        }
Exemple #2
0
        public async Task <string> SaveImageFile(ImageFileViewModel model)
        {
            var FilePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "Img", $"{Guid.NewGuid()}.jpg");
            await File.WriteAllBytesAsync(FilePath, model.Image.ToByte());

            return(FilePath);
        }
Exemple #3
0
 public async Task <IActionResult> FormFile([FromForm] ImageFileViewModel model)
 {
     if (model.Image.Length > (model.Size * 1024))
     {
         throw new FileLoadException($"حجم تصویر وارد شده نباید بیش از {model.Size} کیلوبایت باشد");
     }
     return(Ok(await _imageUpload.SaveImageFile(model)));
 }
Exemple #4
0
        internal FileViewModelBase OpenFile(string filePath)
        {
            var fileViewModel = _files.FirstOrDefault(fm => fm.FilePath == filePath);

            if (fileViewModel != null)
            {
                return(fileViewModel);
            }

            string extension = Path.GetExtension(filePath).ToLower();

            switch (extension)
            {
            case ".ogg":
            case ".rpgmvo":
            case ".ogg_":
            case ".m4a":
            case ".rpgmvm":
            case ".m4a_":
            case ".wav":
            case ".rpgmvw":
            case ".wav_":
                fileViewModel = new AudioFileViewModel(filePath);
                _files.Add(fileViewModel);
                break;

            case ".png":
            case ".rpgmvp":
            case ".png_":
                fileViewModel = new ImageFileViewModel(filePath);
                _files.Add(fileViewModel);
                break;

            case ".json":
                fileViewModel = new JsonFileViewModel(filePath);
                _files.Add(fileViewModel);
                break;

            case ".rpgsave":
                fileViewModel = new SaveFileViewModel(filePath);
                _files.Add(fileViewModel);
                break;

            case ".script":
                fileViewModel = new ScriptFileViewModel(filePath);
                _files.Add(fileViewModel);
                break;

            default:
                fileViewModel = new GeneralFileViewModel(filePath);
                _files.Add(fileViewModel);
                break;
            }

            return(fileViewModel);
        }