public IActionResult ImageSaved()
        {
            ImageSaved saveImage = new ImageSaved();

            saveImage.SavedImage = "Image has been saved";

            return(Json(saveImage));
        }
示例#2
0
        private async Task SaveImageAsync(Image image, Byte[] imageByte, String formatedSavePath = null)
        {
            if (IsInvalid)
            {
                return;
            }

            await WaitAsync(_token).ConfigureAwait(true);

            String formatedDirectoryPath = GetFormatedDirectoryPath(image);

            if (String.IsNullOrEmpty(formatedDirectoryPath))
            {
                Log.Add(new LogMessage(Globals.Localization.FormatDirectoryError, MessageType.Warning, new[] { image.id.ToString() }));
                return;
            }

            if (!DirectoryUtils.TryCreateDirectory(formatedDirectoryPath, PathAction.None))
            {
                Log.Add(new LogMessage($"{Globals.Localization.CreateDirectoryError}: {formatedDirectoryPath}", MessageType.CriticalWarning));
                IsInvalid = true;
                return;
            }

            if (_token.IsCancellationRequested)
            {
                return;
            }

            try
            {
                if (String.IsNullOrEmpty(formatedSavePath))
                {
                    formatedSavePath = GetFormatedFilePath(image);
                    if (String.IsNullOrEmpty(formatedSavePath))
                    {
                        Log.Add(new LogMessage(Globals.Localization.FormatFileNameError,
                                               MessageType.Warning, new[] { image.id.ToString() }));
                        return;
                    }
                }

                await using FileStream sourceStream = new FileStream(formatedSavePath, FileMode.Create, FileAccess.Write, FileShare.None);

                await sourceStream.WriteAsync(imageByte, 0, imageByte.Length, _token).ConfigureAwait(true);

                ImageSaved?.Invoke(image);
            }
            catch (UnauthorizedAccessException)
            {
                Log.Add(new LogMessage(Globals.Localization.WriteAccessDeniedError, MessageType.Error));
                IsInvalid = true;
            }
            catch (Exception e)
            {
                Log.Add(new LogMessage($"{image.name} error {e.Message}", MessageType.Error));
            }
        }
示例#3
0
 public void OnImageSaved(ImageSavedEventArgs e)
 {
     ImageSaved?.Invoke(handler, e);
 }
示例#4
0
 private void OnImageSaved(object sender, ImageSavedEventArgs imageFoundEventArgs)
 {
     ImageSaved?.Invoke(this, imageFoundEventArgs);
 }
        private async Task DownloadImageAsync(Image image)
        {
            try
            {
                if (IsInvalid || _token.IsCancellationRequested)
                {
                    return;
                }

                await WaitAsync(_token).ConfigureAwait(true);

                String formatedSavePath = null;
                if (SaveToDisk)
                {
                    formatedSavePath = GetFormatedFilePath(image);

                    if (String.IsNullOrEmpty(formatedSavePath))
                    {
                        Log.Add(new LogMessage(Globals.Localization.FormatFileNameError,
                                               MessageType.Warning, new[] { image.id.ToString() }));
                        ImageDownloaded?.Invoke(image);
                        ImageSaved?.Invoke(image);
                        return;
                    }

                    if (File.Exists(formatedSavePath) && !Globals.ExistFileRewrite.GetValue())
                    {
                        ImageDownloaded?.Invoke(image);
                        ImageSaved?.Invoke(image);
                        return;
                    }
                }

                Byte[] imageByte = await GetImageAsync(image).ConfigureAwait(true);

                if (_token.IsCancellationRequested || imageByte == null)
                {
                    return;
                }

                ImageDownloaded?.Invoke(image);

                if (SaveToDisk)
                {
                    try
                    {
                        await SaveImageAsync(image, imageByte, formatedSavePath).ConfigureAwait(true);
                    }
                    catch (Exception e)
                    {
                        Log.Add(new LogMessage(e.Message, MessageType.CriticalWarning));
                        IsInvalid = true;
                        MessageForm.GetDialogResultOnException(e, null, null, MessageBoxButtons.OK, new[] { Globals.Localization.Accept });
                    }
                }
            }
            catch (Exception e)
            {
                Log.Add(new LogMessage($"{e.Message}{LocalizationBase.NewLine}{e.StackTrace}", MessageType.CriticalWarning));
                throw;
            }
        }