public static void AddVersion(PackageDatabase packageDbConn, Command.AddverOption data) { //check exist var reader = from item in packageDbConn.CoreDbContext.version where item.name == data.Name select item; if (reader.Any()) { ConsoleAssistance.WriteLine("Existed package.", ConsoleColor.Red); return; } //set database var newObj = data.ToDatabaseFormat(); if (newObj.status) { //update database packageDbConn.CoreDbContext.version.Add(newObj.res); //copy package File.Copy(data.PackagePath, Information.WorkPath.Enter("package").Enter($"{data.Name}.zip").Path); ConsoleAssistance.WriteLine("Operation done.", ConsoleColor.Yellow); } else { ConsoleAssistance.WriteLine("Illegal parameter", ConsoleColor.Red); } }
public static (PackageDatabaseTableVersionItem res, bool status) ToDatabaseFormat(this Command.AddverOption ori) { var obj = new PackageDatabaseTableVersionItem() { name = ori.Name, parent = ori.Parent, additional_desc = ori.AdditionalDesc, dependency = ori.Dependency, conflict = ori.Conflict, require_decompress = ori.RequireDecompress, hash = SignVerifyHelper.GetFileHash(ori.PackagePath) }; try { if (ori.Timestamp == "+") { obj.timestamp = DateTime.Now.ToUNIXTimestamp(); } else { obj.timestamp = long.Parse(ori.Timestamp); } obj.suit_os = (OSType)(int.Parse(ori.SuitOS)); obj.reverse_conflict = bool.Parse(ori.ReverseConflict); obj.internal_script = bool.Parse(ori.ReverseConflict); } catch { return(obj, false); } return(obj, true); }