using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.Core; using Tango.Scripting.Core; namespace Tango.Scripting.Basic { public class Script : ExtendedObject, IScriptSource { private String _name; public String Name { get { return _name; } set { _name = value; RaisePropertyChangedAuto(); } } public bool IsEntryPoint { get; set; } private String _code; public String Code { get { return _code; } set { if (_code != null && _code != value) { IsChanged = true; } _code = value; RaisePropertyChangedAuto(); } } private bool _isChanged; [JsonIgnore] public bool IsChanged { get { return _isChanged; } set { _isChanged = value; RaisePropertyChangedAuto(); } } private bool _isSelected; [JsonIgnore] public bool IsSelected { get { return _isSelected; } set { _isSelected = value; RaisePropertyChangedAuto(); } } [JsonIgnore] public int LoadCount { get; internal set; } [JsonIgnore] public int LoadCharCount { get; set; } public static Script New(String file) { return new Script() { Name = Path.GetFileName(file), Code = System.IO.File.ReadAllText(file), }; } public static Script New(String name, String code, bool isEntryPoint = false) { return new Script() { Name = name, Code = code, IsEntryPoint = isEntryPoint, }; } } }