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; })); }
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); }
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))); }
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); }