using Microsoft.CodeAnalysis.CSharp.Scripting; using Microsoft.CodeAnalysis.Scripting; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Reflection; using System.Text; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using Tango.Core; using Tango.Core.IO; using Tango.Scripting.Core; using System.IO; using Tango.Core.Helpers; namespace Tango.Scripting.Basic { public class Project : ExtendedObject where T : IContext { private object _compileLock = new object(); public String ID { get; set; } private String _name; public String Name { get { return _name; } set { _name = value; RaisePropertyChangedAuto(); } } private String _description; public String Description { get { return _description; } set { _description = value; RaisePropertyChangedAuto(); } } private bool _isRunning; [JsonIgnore] public bool IsRunning { get { return _isRunning; } set { _isRunning = value; RaisePropertyChangedAuto(); } } private bool _isCompiling; [JsonIgnore] public bool IsCompiling { get { return _isCompiling; } set { _isCompiling = value; RaisePropertyChangedAuto(); } } public ApartmentState ApartmentState { get; set; } public ObservableCollection ReferenceAssemblies { get; set; } public ObservableCollection