68 lines
1.9 KiB
C#
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; }
|
|
}
|
|
}
|