public TechObject DuplicateIfNotExisting(string nameOfTechToDuplicate, NewTechDetails newTech) { if (_techManager.CheckIfTechExists(newTech.name) == true) { return(_techManager.GetTechByName(newTech.name)); } var theOriginalTech = _techManager.GetTechByName(nameOfTechToDuplicate); var theNewTech = DuplicateAndAdjustTech(theOriginalTech, newTech); return(theNewTech); }
private TechObject DuplicateAndAdjustTech(TechObject theOriginalTech, NewTechDetails newTech) { var theNewTech = theOriginalTech.Duplicate(newTech.name); theNewTech.DevelopCost = _techManager.GetStandardTechCostForLevel(newTech.tier); if (string.IsNullOrEmpty(newTech.description) == false) { theNewTech.TechDescription = newTech.description; } if (string.IsNullOrEmpty(newTech.preRequisite1) == false) { var prereqTech = _techManager.GetTechByName(newTech.preRequisite1); theNewTech.Prerequisite1 = prereqTech.TechSystemID.Value; } if (string.IsNullOrEmpty(newTech.preRequisite2) == false) { var prereqTech = _techManager.GetTechByName(newTech.preRequisite2); theNewTech.Prerequisite2 = prereqTech.TechSystemID.Value; } if (string.IsNullOrEmpty(newTech.component) == false) { theNewTech.ComponentName = newTech.component; } if (newTech.newValue1.HasValue) { theNewTech.AdditionalInfo = newTech.newValue1.Value; } if (newTech.newValue2.HasValue) { theNewTech.AdditionalInfo = newTech.newValue2.Value; } if (newTech.newValue3.HasValue) { theNewTech.AdditionalInfo = newTech.newValue3.Value; } if (newTech.newValue4.HasValue) { theNewTech.AdditionalInfo = newTech.newValue4.Value; } return(theNewTech); }