public string Execute(ICoreManager coreManager) { var ifParsed = Enum.TryParse(this.fragmentTypeName, out FragmentType fragmentType); if (!ifParsed || this.pressureAffection < 0) { return(string.Format(FailureMessage, this.fragmentName)); } var fragmentTypeInfo = Assembly.GetExecutingAssembly().GetTypes().FirstOrDefault(c => c.Name.Equals(fragmentType.ToString() + FragmentSuffix)); var fragment = (IFragment)Activator.CreateInstance(fragmentTypeInfo, new object[] { this.fragmentName, fragmentType, this.pressureAffection }); var result = coreManager.AttachFragment(fragment); if (result == default(char)) { return(string.Format(FailureMessage, this.fragmentName)); } return(string.Format(SuccessfullMessage, this.fragmentName, result)); }