private TextOutput SyncSoftwareInfo(Structure.Software infoResultSoftware) { TextOutput result; Structure.Software libSoft; if (!Promise.SoftwareLib.All.TryGetValue(infoResultSoftware.Code, out libSoft)) { if (string.IsNullOrEmpty(_networkName)) { if (Promise.Network != null) { _networkName = Promise.Network.Name; } } if (!string.IsNullOrEmpty(_softwareType)) { infoResultSoftware.SoftwareType = _softwareType; } //new software found. Promise.SoftwareLib.AddNewSoft(infoResultSoftware, _networkName); Promise.SoftwareLib.DumpToFile(); result = new TextOutput(Verbosity, $"New {infoResultSoftware.SoftwareType} software added to Lib!"); return(result); } // known soft, trying to update StringBuilder updateString = new StringBuilder(); if (!libSoft.Effect.Equals(infoResultSoftware.Effect)) { updateString.AppendLine($"Effect updated from {libSoft.Effect} to {infoResultSoftware.Effect}"); libSoft.Effect = infoResultSoftware.Effect; } if (!libSoft.InevitableEffect.Equals(infoResultSoftware.InevitableEffect)) { updateString.AppendLine($"Inevitable Effect updated from {libSoft.InevitableEffect} to {infoResultSoftware.InevitableEffect}"); libSoft.InevitableEffect = infoResultSoftware.InevitableEffect; } if (!libSoft.NodeTypesString.Equals(infoResultSoftware.NodeTypesString)) { updateString.AppendLine($"Supported Node Types updated from {libSoft.NodeTypesString} to {infoResultSoftware.NodeTypesString}"); libSoft.NodeTypesString = infoResultSoftware.NodeTypesString; } if (!libSoft.Duration.Equals(infoResultSoftware.Duration)) { updateString.AppendLine($"Supported Node Types updated from {libSoft.Duration} to {infoResultSoftware.Duration}"); libSoft.Duration = infoResultSoftware.Duration; } //check if there was an update if (updateString.ToString().Equals("")) { //no changes found result = new TextOutput(Verbosity, $"Got no new info on sofware #{libSoft.Code}."); } else { //changes found, dumping and updating Promise.SoftwareLib.DumpToFile(); result = new TextOutput(Verbosity, $"Sofware #{libSoft.Code} updated: \n{updateString}"); } return(result); }
public static string Assemble(Structure.Software programm) { return(Assemble(programm.Code.ToString(), programm.Effect, programm.InevitableEffect, programm.NodeTypesString, programm.Duration)); }