internal static ConsoleProject LoadFromXElement(XElement argXml) { ConsoleProject tmpProject = new ConsoleProject(); foreach (XAttribute tmpAttribute in argXml.Attributes()) { switch (tmpAttribute.Name.LocalName.ToLower()) { case ATTRIBUTE_ARGUMENTS: tmpProject.Arguments = tmpAttribute.Value; break; case ATTRIBUTE_EXECUTABLE: tmpProject.Executable = tmpAttribute.Value; break; case ATTRIBUTE_NAME: tmpProject.Name = tmpAttribute.Value; break; case ATTRIBUTE_WORKING_DIR: tmpProject.WorkingDir = tmpAttribute.Value; break; case ATTRIBUTE_AUTO_LOAD: bool tmpLoad; if (!Boolean.TryParse(tmpAttribute.Value, out tmpLoad)) { tmpLoad = false; } tmpProject.AutoLoad = tmpLoad; break; case ATTRIBUTE_COLOR: tmpProject.ProjectColor = ColorUtilities.GetColorFromString(tmpAttribute.Value, tmpProject.ProjectColor); break; case ATTRIBUTE_BACKGROUND_COLOR: tmpProject.BackgroundColor = ColorUtilities.GetColorFromString(tmpAttribute.Value, tmpProject.BackgroundColor); break; case ATTRIBUTE_MESSAGE_COLOR: tmpProject.MessageColor = ColorUtilities.GetColorFromString(tmpAttribute.Value, tmpProject.MessageColor); break; case ATTRIBUTE_ERROR_COLOR: tmpProject.ErrorMessageColor = ColorUtilities.GetColorFromString(tmpAttribute.Value, tmpProject.ErrorMessageColor); break; case ATTRIBUTE_CARET_COLOR: tmpProject.CaretColor = ColorUtilities.GetColorFromString(tmpAttribute.Value, tmpProject.CaretColor); break; } } return(tmpProject); }
private ConsoleProject(ConsoleProject argCopyFrom) { this.name = argCopyFrom.Name; this.arguments = argCopyFrom.Arguments; this.autoLoad = argCopyFrom.AutoLoad; this.backgroundColor = argCopyFrom.BackgroundColor; this.caretColor = argCopyFrom.CaretColor; if (argCopyFrom.Commands != null) { this.commands = new ObservableCollection <CommandData>(argCopyFrom.Commands.Select(item => item.GetCopy())); } this.errorMessageColor = argCopyFrom.ErrorMessageColor; this.executable = argCopyFrom.Executable; this.messageColor = argCopyFrom.MessageColor; this.projectColor = argCopyFrom.ProjectColor; this.workingDir = argCopyFrom.WorkingDir; }