hytos / ID2.Manager / ID2.Manager.Compare / Forms / ImageView.cs @ 2ade1e61
이력 | 보기 | 이력해설 | 다운로드 (5.26 KB)
1 | 13a36357 | humkyung | using System; |
---|---|---|---|
2 | using System.Collections.Generic; |
||
3 | using System.ComponentModel; |
||
4 | using System.Data; |
||
5 | using System.Drawing; |
||
6 | using System.Linq; |
||
7 | using System.Text; |
||
8 | using System.Threading.Tasks; |
||
9 | using System.Windows.Forms; |
||
10 | |||
11 | using System.IO; |
||
12 | |||
13 | using ID2.Manager.Common; |
||
14 | using ID2.Manager.Data.Models; |
||
15 | using ID2.Manager.Controller.Controllers; |
||
16 | |||
17 | using Telerik.WinControls; |
||
18 | using Telerik.WinControls.UI; |
||
19 | |||
20 | namespace ID2.Manager.Forms |
||
21 | { |
||
22 | public partial class ImageView : RadForm |
||
23 | { |
||
24 | readonly Informations informations = Informations.Instance; |
||
25 | |||
26 | string RefID = string.Empty; |
||
27 | string Category = string.Empty; |
||
28 | public OpenFileDialog ofd; |
||
29 | |||
30 | public ImageView(string docID, string category) |
||
31 | { |
||
32 | InitializeComponent(); |
||
33 | |||
34 | this.RefID = docID; |
||
35 | this.Category = category; |
||
36 | |||
37 | this.Initialize(); |
||
38 | |||
39 | this.Load += ImageView_Load; |
||
40 | this.radButtonSave.Click += RadButtonSave_Click; |
||
41 | } |
||
42 | |||
43 | private void Initialize() |
||
44 | { |
||
45 | ofd = this.radBrowseEditorFile.BrowseDialog as OpenFileDialog; |
||
46 | ofd.Filter = "Image files (*.png)|*.png"; |
||
47 | ofd.Title = "Open an Image File"; |
||
48 | } |
||
49 | |||
50 | private void ImageView_Load(object sender, EventArgs e) |
||
51 | { |
||
52 | //string[] files = Directory.GetFiles(@"C:\Users\yoush97\Desktop\PAP자료\SG6609 HMB\ID2\Image\img\", "*.png"); |
||
53 | |||
54 | //string[] files = new string[] { }; |
||
55 | |||
56 | //foreach (string file in files) |
||
57 | //{ |
||
58 | // PictureBox pic = new PictureBox(); |
||
59 | // pic.Image = Image.FromFile(file); |
||
60 | // pic.SizeMode = PictureBoxSizeMode.Zoom; |
||
61 | // pic.Width = 150; |
||
62 | // pic.Height = 150; |
||
63 | // pic.Margin = new Padding(5); |
||
64 | |||
65 | // flowLayoutPanel1.Controls.Add(pic); |
||
66 | |||
67 | // pic.Click += Pic_Click; |
||
68 | //} |
||
69 | |||
70 | this.GetFileList(); |
||
71 | } |
||
72 | |||
73 | public void GetFileList() |
||
74 | { |
||
75 | //var files = new FileController().GetFileList(this.RefID).ToList(); |
||
76 | var files = new AttFileController().GetFileList(this.RefID, this.Category); |
||
77 | |||
78 | foreach (AttFileInfo file in files) |
||
79 | { |
||
80 | var arrayBinary = file.FileData.ToArray(); |
||
81 | |||
82 | using (MemoryStream ms = new MemoryStream(arrayBinary)) |
||
83 | { |
||
84 | PictureBox pic = new PictureBox(); |
||
85 | pic.Image = Image.FromStream(ms); |
||
86 | pic.SizeMode = PictureBoxSizeMode.Zoom; |
||
87 | pic.Width = 150; |
||
88 | pic.Height = 150; |
||
89 | pic.Margin = new Padding(5); |
||
90 | |||
91 | flowLayoutPanel1.Controls.Add(pic); |
||
92 | |||
93 | pic.Click += Pic_Click; |
||
94 | } |
||
95 | } |
||
96 | } |
||
97 | |||
98 | private void Pic_Click(object sender, EventArgs e) |
||
99 | { |
||
100 | PictureBox pic = sender as PictureBox; |
||
101 | pictureBox1.Image = pic.Image; |
||
102 | } |
||
103 | |||
104 | private void RadButtonSave_Click(object sender, EventArgs e) |
||
105 | { |
||
106 | string GetContentType(string filePath) |
||
107 | { |
||
108 | string extension = Path.GetExtension(filePath).ToLower(); |
||
109 | |||
110 | switch (extension) |
||
111 | { |
||
112 | case ".txt": |
||
113 | return "text/plain"; |
||
114 | case ".pdf": |
||
115 | return "application/pdf"; |
||
116 | case ".jpg": |
||
117 | case ".jpeg": |
||
118 | return "image/jpeg"; |
||
119 | case ".png": |
||
120 | return "image/png"; |
||
121 | default: |
||
122 | return "application/octet-stream"; |
||
123 | } |
||
124 | } |
||
125 | |||
126 | if (string.IsNullOrEmpty(ofd.FileName) && !File.Exists(ofd.FileName)) |
||
127 | { |
||
128 | RadMessageBox.Show($"There is no Image File selected.", "Information", MessageBoxButtons.OK, RadMessageIcon.Info); |
||
129 | return; |
||
130 | } |
||
131 | |||
132 | System.IO.FileInfo fileInfo = new System.IO.FileInfo(ofd.FileName); |
||
133 | if (fileInfo.Exists) |
||
134 | { |
||
135 | AttFileInfo attFile = new AttFileInfo() |
||
136 | { |
||
137 | RefID = this.RefID, |
||
138 | Category = this.Category, |
||
139 | FileType = GetContentType(fileInfo.FullName), |
||
140 | FileName = fileInfo.Name, |
||
141 | FilePath = fileInfo.DirectoryName, |
||
142 | FileExtension = fileInfo.Extension |
||
143 | }; |
||
144 | |||
145 | using (var stream = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read)) |
||
146 | { |
||
147 | using (var reader = new BinaryReader(stream)) |
||
148 | { |
||
149 | attFile.FileData = reader.ReadBytes((int)stream.Length); |
||
150 | } |
||
151 | } |
||
152 | |||
153 | bool result = new AttFileController().SetAttFiles(new List<AttFileInfo>() { attFile }, informations.ActiveUser.ID); |
||
154 | |||
155 | if (result) |
||
156 | { |
||
157 | RadMessageBox.Show("Save is complete", Globals.Name, MessageBoxButtons.OK, RadMessageIcon.Info); |
||
158 | } |
||
159 | else |
||
160 | { |
||
161 | RadMessageBox.Show("Save is not complete", Globals.Name, MessageBoxButtons.OK, RadMessageIcon.Error); |
||
162 | } |
||
163 | } |
||
164 | } |
||
165 | } |
||
166 | } |