diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-11-20 13:27:36 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-11-20 13:27:36 +0200 |
| commit | c272cdaaa43f7bf2fefcb36bbfe49624fc4a5ff1 (patch) | |
| tree | bcc9ccd584d7cc706f6453e7a906fa3f1485ef53 /Software/Visual_Studio/Tango.BL | |
| parent | fa8459be63d8f76059d1e71ab86c01e0a13851b5 (diff) | |
| download | Tango-c272cdaaa43f7bf2fefcb36bbfe49624fc4a5ff1.tar.gz Tango-c272cdaaa43f7bf2fefcb36bbfe49624fc4a5ff1.zip | |
Added job runs logger to machine studio.
Diffstat (limited to 'Software/Visual_Studio/Tango.BL')
6 files changed, 137 insertions, 11 deletions
diff --git a/Software/Visual_Studio/Tango.BL/Builders/JobBuilder.cs b/Software/Visual_Studio/Tango.BL/Builders/JobBuilder.cs index a0a88f4a7..d8d58d69b 100644 --- a/Software/Visual_Studio/Tango.BL/Builders/JobBuilder.cs +++ b/Software/Visual_Studio/Tango.BL/Builders/JobBuilder.cs @@ -77,5 +77,13 @@ namespace Tango.BL.Builders new UserBuilder(Context).Set(Entity.UserGuid).Build(); }); } + + public virtual JobBuilder WithJobRuns() + { + return AddStep(6, () => + { + Context.JobRuns.Where(x => x.JobGuid == Entity.Guid).OrderBy(x => x.StartDate).ToList(); + }); + } } } diff --git a/Software/Visual_Studio/Tango.BL/Builders/JobRunsBuilder.cs b/Software/Visual_Studio/Tango.BL/Builders/JobRunsBuilder.cs new file mode 100644 index 000000000..0a02c6a23 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/Builders/JobRunsBuilder.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Entities; +using System.Data.Entity; + +namespace Tango.BL.Builders +{ + public class JobRunsBuilder : EntityBuilderBase<JobRun, JobRunsBuilder> + { + public JobRunsBuilder(ObservablesContext context) : base(context) + { + + } + + protected override IQueryable<JobRun> OnSetQuery(IQueryable<JobRun> query) + { + return query.Include(x => x.Job); + } + + public virtual JobRunsBuilder WithJobEvents() + { + return AddStep(2, () => + { + Context.MachinesEvents.Where(x => x.MachineGuid == Entity.Job.MachineGuid && x.DateTime >= Entity.StartDate && x.DateTime <= Entity.EndDate).OrderBy(x => x.DateTime).ToList(); + }); + } + } +} diff --git a/Software/Visual_Studio/Tango.BL/Entities/JobRun.cs b/Software/Visual_Studio/Tango.BL/Entities/JobRun.cs index b4ecf4f5a..6e953f5ce 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/JobRun.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/JobRun.cs @@ -21,6 +21,11 @@ using Tango.Core; namespace Tango.BL.Entities { + + /// <summary> + /// + /// </summary> + [Table("JOB_RUNS")] public partial class JobRun : ObservableEntity<JobRun> { @@ -29,7 +34,9 @@ namespace Tango.BL.Entities public event EventHandler<DateTime> EndDateChanged; - public event EventHandler<Boolean> SuccessfulChanged; + public event EventHandler<Int32> StatusChanged; + + public event EventHandler<String> FailedMessageChanged; public event EventHandler<Job> JobChanged; @@ -115,30 +122,60 @@ namespace Tango.BL.Entities } } - protected Boolean _successful; + protected Int32 _status; + + /// <summary> + /// 0 = COMPLETED + /// 1 = ABORTED + /// 2 = FAILED + /// </summary> + + [Column("STATUS")] + + public Int32 Status + { + get + { + return _status; + } + + set + { + if (_status != value) + { + _status = value; + + StatusChanged?.Invoke(this, value); + + RaisePropertyChanged(nameof(Status)); + } + } + } + + protected String _failedmessage; /// <summary> - /// Gets or sets the jobrun successful. + /// Gets or sets the jobrun failed message. /// </summary> - [Column("SUCCESSFUL")] + [Column("FAILED_MESSAGE")] - public Boolean Successful + public String FailedMessage { get { - return _successful; + return _failedmessage; } set { - if (_successful != value) + if (_failedmessage != value) { - _successful = value; + _failedmessage = value; - SuccessfulChanged?.Invoke(this, value); + FailedMessageChanged?.Invoke(this, value); - RaisePropertyChanged(nameof(Successful)); + RaisePropertyChanged(nameof(FailedMessage)); } } } diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/JobRun.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/JobRun.cs new file mode 100644 index 000000000..555857f53 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/JobRun.cs @@ -0,0 +1,32 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Enumerations; + +namespace Tango.BL.Entities +{ + public partial class JobRun + { + [NotMapped] + [JsonIgnore] + public JobRunStatus JobRunStatus + { + get { return (JobRunStatus)Status; } + set { Status = (int)value; } + } + + protected override void RaisePropertyChanged(string propName) + { + base.RaisePropertyChanged(propName); + + if (propName == nameof(Status)) + { + RaisePropertyChanged(nameof(JobRunStatus)); + } + } + } +} diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/JobRunStatus.cs b/Software/Visual_Studio/Tango.BL/Enumerations/JobRunStatus.cs new file mode 100644 index 000000000..5abc98073 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/Enumerations/JobRunStatus.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.BL.Enumerations +{ + public enum JobRunStatus + { + Completed, + Aborted, + Failed, + } +} diff --git a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj index cf95ea9bc..b8cc1b1e3 100644 --- a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj +++ b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj @@ -89,6 +89,7 @@ <Compile Include="Builders\IEntityBuilder.cs" /> <Compile Include="Builders\IEntityCollectionBuilder.cs" /> <Compile Include="Builders\JobBuilder.cs" /> + <Compile Include="Builders\JobRunsBuilder.cs" /> <Compile Include="Builders\JobsCollectionBuilder.cs" /> <Compile Include="Builders\MachineBuilder.cs" /> <Compile Include="Builders\RmlBuilder.cs" /> @@ -112,6 +113,7 @@ <Compile Include="Dispensing\TransparentLiquidDispensingCalc.cs" /> <Compile Include="EntitiesExtensions\ColorCatalog.cs" /> <Compile Include="EntitiesExtensions\Contact.cs" /> + <Compile Include="EntitiesExtensions\JobRun.cs" /> <Compile Include="EntitiesExtensions\LiquidType.cs" /> <Compile Include="EntitiesExtensions\LiquidTypesRml.cs" /> <Compile Include="EntitiesExtensions\MachineEvent.cs" /> @@ -154,6 +156,7 @@ <Compile Include="Enumerations\Ios.cs" /> <Compile Include="Enumerations\JobCategories.cs" /> <Compile Include="Enumerations\JobDesignations.cs" /> + <Compile Include="Enumerations\JobRunStatus.cs" /> <Compile Include="Enumerations\JobStatuses.cs" /> <Compile Include="Enumerations\JobTypes.cs" /> <Compile Include="Enumerations\LiquidTypes.cs" /> @@ -345,7 +348,7 @@ </Target> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file |
