public static void EditVersion(PackageDatabase packageDbConn, Command.EditverOption data) { var reader = from item in packageDbConn.CoreDbContext.version where item.name == data.Name select item; if (!reader.Any()) { ConsoleAssistance.WriteLine("Lost package.", ConsoleColor.Red); return; } var got = reader.First(); var newObj = data.ToDatabaseFormat(got); if (newObj.status) { packageDbConn.CoreDbContext.version.Remove(got); packageDbConn.CoreDbContext.version.Add(newObj.res); //copy file if (data.PackagePath != "~") { File.Delete(Information.WorkPath.Enter("package").Enter($"{data.Name}.zip").Path); 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.EditverOption ori, PackageDatabaseTableVersionItem item) { var obj = new PackageDatabaseTableVersionItem() { name = ori.Name == "~" ? item.name : ori.Name, parent = ori.Parent == "~" ? item.parent : ori.Parent, additional_desc = ori.AdditionalDesc == "~" ? item.additional_desc : ori.AdditionalDesc, dependency = ori.Dependency == "~" ? item.dependency : ori.Dependency, conflict = ori.Conflict == "~" ? item.conflict : ori.Conflict, require_decompress = ori.RequireDecompress == "~" ? item.require_decompress : ori.RequireDecompress, hash = ori.PackagePath == "~" ? item.hash : SignVerifyHelper.GetFileHash(ori.PackagePath) }; try { if (ori.Timestamp == "+") { obj.timestamp = DateTime.Now.ToUNIXTimestamp(); } else if (ori.Timestamp == "~") { obj.timestamp = item.timestamp; } else { obj.timestamp = long.Parse(ori.Timestamp); } obj.suit_os = ori.SuitOS == "~" ? item.suit_os : (OSType)(int.Parse(ori.SuitOS)); obj.reverse_conflict = ori.ReverseConflict == "~" ? item.reverse_conflict : bool.Parse(ori.ReverseConflict); obj.internal_script = ori.InternalScript == "~" ? item.internal_script : bool.Parse(ori.ReverseConflict); } catch { return(obj, false); } return(obj, true); }