Files
BeWoPlaner/SharedLauncher/DataContract/BeWoProgramFileDC.cs
2021-09-30 15:31:13 +02:00

68 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace BS.SharedLauncher.DataContract
{
[DebuggerDisplay("{FileName} ({FileVersion})")]
[DataContract]
public class BeWoProgramFileDC
{
public BeWoProgramFileDC() : this(null, null, null, FileToDo.Nuthing) { }
public BeWoProgramFileDC(string filename, Version version) : this(filename, version, null, FileToDo.Nuthing) { }
public BeWoProgramFileDC(string filename, Version version, byte[] data, FileToDo todo)
{
FileName = filename;
FileVersion = version;
FileData = data;
ToDo = todo;
}
public BeWoProgramFileDC(FileInfo fi)
{
FileName = fi.Name;
FileExtension = fi.Extension;
FullPath = fi.FullName;
FileVersion = new Version(FileVersionInfo.GetVersionInfo(fi.FullName).FileVersion ?? "0.0.0.0");
ToDo = FileToDo.Nuthing;
using (var md5 = MD5.Create())
{
using (var stream = File.OpenRead(FullPath))
{
Checksum = BitConverter.ToString(md5.ComputeHash(stream)).Replace("-", "").ToLowerInvariant();
}
}
}
[DataMember]
public string FileName { get; set; }
[DataMember]
public string FileExtension { get; set; }
[DataMember]
public Version FileVersion { get; set; }
[DataMember]
public string FullPath { get; set; }
[DataMember]
public byte[] FileData { get; set; }
[DataMember]
public FileToDo ToDo { get; set; }
[DataMember]
public string Checksum { get; set; }
}
}