/MyPicture/MyPictureUploader.cs
C# | 109 lines | 84 code | 18 blank | 7 comment | 4 complexity | 9e66c0216c16df614d06dbb7e6714014 MD5 | raw file
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using InstantImageUploader.Models;
- using System.IO;
- using System.ComponentModel.Composition;
-
- namespace ImageUploader.Extensions.MyPicture
- {
- [Export(typeof(IImageUploader))]
- public class MyPictureUploader : IImageUploader
- {
- public MyPictureUploader()
- {
- SaveFolder = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures) + "\\ImageUploader";
- }
-
- public string SaveFolder
- {
- get;
- private set;
- }
-
- public string ImageUploaderName
- {
- get { return "My Picture"; }
- }
-
- public string Description
- {
- get { return "My Pictureに画像を保存します。"; }
- }
-
- public string Author
- {
- get { return "Masanori Onoue (ugaya40)"; }
- }
-
- public string Url
- {
- get { return "http://ugaya40.net"; }
- }
-
- //設定があるならこのメソッドでロードする。
- public void Initialize()
- {
- }
-
- //tempファイルのパスがわたってくるのでアップロード処理をする。
- public void Upload(string imageFilePath)
- {
- try
- {
- var files = Directory.GetFiles(SaveFolder);
-
- var fileNumbers = files.Where(file => Path.GetFileNameWithoutExtension(file).StartsWith("IMG"))
- .Select(file => Int32.Parse(Path.GetFileNameWithoutExtension(file).Remove(0, 3)));
-
- int lastNumber = fileNumbers.Any() ? fileNumbers.Max() : 0;
-
- File.Copy(imageFilePath, SaveFolder + "\\IMG" + (lastNumber + 1).ToString("00000") + ".png");
-
- OnSuccessImageUpload(null);
- }
- catch
- {
- OnFailedImageUpload("ファイルの保存に失敗しました");
- }
- }
-
- //設定ウィンドウを表示するかどうかプロパティ。
- //起動時にこのフラグがfalseを返すようなら設定ウィンドウが表示される。
- public bool IsNeedSetting
- {
- get { return false; }
- }
-
- //アップロード成功時にメッセージを表示したい場合のイベント。
- public event EventHandler<SuccessImageUploadEventArgs> SuccessImageUpload;
-
- private void OnSuccessImageUpload(string messageForUser)
- {
- var handler = SuccessImageUpload;
- if (handler != null)
- {
- handler(this, new SuccessImageUploadEventArgs(messageForUser));
- }
- }
-
- //アップロード失敗時にメッセージを表示したい場合のイベント。
- public event EventHandler<FailedImageUploadEventArgs> FailedImageUpload;
-
- private void OnFailedImageUpload(string messageForUser)
- {
- var handler = FailedImageUpload;
- if (handler != null)
- {
- handler(this, new FailedImageUploadEventArgs(messageForUser));
- }
- }
-
- //設定ウィンドウの方を返す。これがnullなら設定できない。
- public Type SettingWindowType
- {
- get { return null; }
- }
- }
- }