diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-04-20 07:22:48 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-04-20 07:22:48 +0300 |
| commit | 17abbf35ba72283c6dab9135f1e75b7057371431 (patch) | |
| tree | a829d8b8831bd4e108f4aa182bd7d5b4f75d31e5 /Software/Visual_Studio/Scripting/Tango.Scripting.Basic | |
| parent | 5f8be6e26e24af12db8c56ab63665ab02d0a5f39 (diff) | |
| download | Tango-17abbf35ba72283c6dab9135f1e75b7057371431.tar.gz Tango-17abbf35ba72283c6dab9135f1e75b7057371431.zip | |
Scripting..
Diffstat (limited to 'Software/Visual_Studio/Scripting/Tango.Scripting.Basic')
4 files changed, 50 insertions, 4 deletions
diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs index ddf61e124..ff7a3acc2 100644 --- a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs @@ -20,7 +20,19 @@ namespace Tango.Scripting.Basic { public class Project : ExtendedObject { - public String Name { 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(); } + } public ApartmentState ApartmentState { get; set; } @@ -79,7 +91,7 @@ namespace Tango.Scripting.Basic p.Scripts.Add(new Script() { - Name = "main.csx", + Name = name, IsEntryPoint = true, Code = code, }); diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ProjectSession.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ProjectSession.cs index a613f2bcc..565949402 100644 --- a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ProjectSession.cs +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ProjectSession.cs @@ -9,6 +9,7 @@ namespace Tango.Scripting.Basic public class ProjectSession { private Action _abortAction; + private TaskCompletionSource<object> _completion; public event EventHandler<ProjectSessionStateChangedEventArgs> StateChanged; @@ -18,6 +19,7 @@ namespace Tango.Scripting.Basic public ProjectSession(Project project, Action abortAction) { + _completion = new TaskCompletionSource<object>(); Project = project; _abortAction = abortAction; } @@ -26,24 +28,27 @@ namespace Tango.Scripting.Basic { _abortAction(); State = ProjectSessionState.Aborted; + _completion.SetException(new OperationCanceledException("Project execution aborted.")); RaiseStateChanged(); } internal void Failed(Exception ex) { State = ProjectSessionState.Failed; + _completion.SetException(ex); RaiseStateChanged(null, ex); } internal void Completed(object returnValue) { State = ProjectSessionState.Completed; + _completion.SetResult(returnValue); RaiseStateChanged(returnValue, null); } private void RaiseStateChanged(object returnValue = null, Exception ex = null) { - StateChanged?.Invoke(this, + StateChanged?.Invoke(this, new ProjectSessionStateChangedEventArgs() { ReturnValue = returnValue, @@ -51,5 +56,10 @@ namespace Tango.Scripting.Basic Exception = ex }); } + + public Task<Object> WaitForCompletion() + { + return _completion.Task; + } } } diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ReferenceAssembly.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ReferenceAssembly.cs index 15ef49639..be66e026b 100644 --- a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ReferenceAssembly.cs +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ReferenceAssembly.cs @@ -9,5 +9,10 @@ namespace Tango.Scripting.Basic public class ReferenceAssembly { public Type FromType { get; set; } + + public String Name + { + get { return FromType.Assembly.GetName().Name; } + } } } diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Script.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Script.cs index aab22912d..fce05636d 100644 --- a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Script.cs +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Script.cs @@ -1,4 +1,5 @@ -using System; +using Newtonsoft.Json; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -15,6 +16,15 @@ namespace Tango.Scripting.Basic public String Code { get; set; } public bool IsEntryPoint { get; set; } + private bool _isSelected; + [JsonIgnore] + public bool IsSelected + { + get { return _isSelected; } + set { _isSelected = value; RaisePropertyChangedAuto(); } + } + + public static Script New(String file) { return new Script() @@ -23,5 +33,14 @@ namespace Tango.Scripting.Basic Code = System.IO.File.ReadAllText(file), }; } + + public static Script New(String name, String code) + { + return new Script() + { + Name = name, + Code = code, + }; + } } } |
