Feature: Job Queues

Also UI style, theme and element changes
This commit is contained in:
Gary Sharp
2014-02-03 14:50:08 +11:00
parent bdb3e1e6b4
commit 3f63281dc4
212 changed files with 17334 additions and 5441 deletions
@@ -1,8 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace Disco.Models.BI.Config
{
+1 -5
View File
@@ -1,9 +1,5 @@
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Disco.Models.BI.Device
{
@@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Generic;
namespace Disco.Models.BI.Device
{
@@ -1,7 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace Disco.Models.BI.DocumentTemplates
@@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.IO;
namespace Disco.Models.BI.Expressions
{
-124
View File
@@ -1,124 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Disco.Models.BI.Job
{
public class JobTableModel
{
public bool ShowId { get; set; }
public bool? ShowDeviceAddress { get; set; }
public bool ShowDates { get; set; }
public bool ShowType { get; set; }
public bool ShowDevice { get; set; }
public bool ShowUser { get; set; }
public bool ShowTechnician { get; set; }
public bool ShowLocation { get; set; }
public bool ShowStatus { get; set; }
public bool IsSmallTable { get; set; }
public bool HideClosedJobs { get; set; }
public bool EnablePaging { get; set; }
public bool EnableFilter { get; set; }
public virtual List<JobTableItemModel> Items { get; set; }
public JobTableModel()
{
ShowId = true;
ShowDates = true;
ShowType = true;
ShowDevice = true;
ShowUser = true;
ShowTechnician = true;
EnablePaging = true;
EnableFilter = true;
}
private JobTableModel CloneEmptyModel()
{
return new JobTableModel()
{
ShowId = this.ShowId,
ShowDeviceAddress = this.ShowDeviceAddress,
ShowDates = this.ShowDates,
ShowType = this.ShowType,
ShowDevice = this.ShowDevice,
ShowUser = this.ShowUser,
ShowTechnician = this.ShowTechnician,
ShowLocation = this.ShowLocation,
ShowStatus = this.ShowStatus,
IsSmallTable = this.IsSmallTable,
HideClosedJobs = this.HideClosedJobs,
EnablePaging = this.EnablePaging,
EnableFilter = this.EnableFilter
};
}
public IDictionary<string, JobTableModel> MultiCampusModels
{
get
{
var items = this.Items;
if (items == null || items.Count > 0)
{
return items.OrderBy(i => i.DeviceAddress).GroupBy(i => i.DeviceAddress).ToDictionary(
ig => ig.Key ?? string.Empty,
ig =>
{
var jtm = this.CloneEmptyModel();
jtm.Items = ig.ToList();
return jtm;
}
);
}
else
{
return null;
}
}
}
public class JobTableItemModel
{
public int Id { get; set; }
public DateTime OpenedDate { get; set; }
public DateTime? ClosedDate { get; set; }
public string TypeId { get; set; }
public string TypeDescription { get; set; }
public string DeviceSerialNumber { get; set; }
public int? DeviceModelId { get; set; }
public string DeviceModelDescription { get; set; }
public int? DeviceProfileId { get; set; }
public int? DeviceAddressId { get; set; }
public string DeviceAddress { get; set; }
public string UserId { get; set; }
public string UserDisplayName { get; set; }
public string OpenedTechUserId { get; set; }
public string OpenedTechUserDisplayName { get; set; }
public string StatusDescription { get; set; }
public string StatusId { get; set; }
public string Location { get; set; }
}
public class JobTableItemModelIncludeStatus : JobTableItemModel
{
public string JobMetaWarranty_ExternalReference { get; set; }
public DateTime? JobMetaWarranty_ExternalCompletedDate { get; set; }
public DateTime? JobMetaNonWarranty_RepairerLoggedDate { get; set; }
public DateTime? JobMetaNonWarranty_RepairerCompletedDate { get; set; }
public DateTime? JobMetaNonWarranty_AccountingChargeAddedDate { get; set; }
public DateTime? JobMetaNonWarranty_AccountingChargePaidDate { get; set; }
public DateTime? JobMetaNonWarranty_AccountingChargeRequiredDate { get; set; }
public bool? JobMetaNonWarranty_IsInsuranceClaim { get; set; }
public DateTime? JobMetaInsurance_ClaimFormSentDate { get; set; }
public DateTime? WaitingForUserAction { get; set; }
public DateTime? DeviceReadyForReturn { get; set; }
public DateTime? DeviceHeld { get; set; }
public DateTime? DeviceReturnedDate { get; set; }
public string JobMetaWarranty_ExternalName { get; set; }
public string JobMetaNonWarranty_RepairerName { get; set; }
}
}
}
@@ -1,7 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Disco.Models.BI.Job.Statistics
{
@@ -1,7 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Disco.Models.BI.Search
{
@@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Disco.Models.BI.Search
{
public class UserSearchResultItem
+14 -4
View File
@@ -45,9 +45,9 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Authorization\IAuthorizationToken.cs" />
<Compile Include="Authorization\IClaimNavigatorItem.cs" />
<Compile Include="Authorization\IRoleToken.cs" />
<Compile Include="Services\Authorization\IAuthorizationToken.cs" />
<Compile Include="Services\Authorization\IClaimNavigatorItem.cs" />
<Compile Include="Services\Authorization\IRoleToken.cs" />
<Compile Include="BI\Config\OrganisationAddress.cs" />
<Compile Include="BI\Device\ImportDevice.cs" />
<Compile Include="BI\Device\ImportDeviceSession.cs" />
@@ -62,7 +62,6 @@
<Compile Include="BI\Interop\Community\UpdateRequestBase.cs" />
<Compile Include="BI\Interop\Community\UpdateRequestV1.cs" />
<Compile Include="BI\Interop\Community\UpdateResponse.cs" />
<Compile Include="BI\Job\JobTableModel.cs" />
<Compile Include="BI\Job\Statistics\DailyOpenedClosedItem.cs" />
<Compile Include="BI\Search\DeviceSearchResultItem.cs" />
<Compile Include="BI\Search\UserSearchResultItem.cs" />
@@ -100,10 +99,18 @@
<Compile Include="Repository\Job\JobMeta\JobMetaWarranty.cs" />
<Compile Include="Repository\Job\JobSubType.cs" />
<Compile Include="Repository\Job\JobType.cs" />
<Compile Include="Repository\Job\Queue\JobQueue.cs" />
<Compile Include="Repository\Job\Queue\JobQueueJob.cs" />
<Compile Include="Repository\Job\Queue\JobQueuePriority.cs" />
<Compile Include="Repository\User\User.cs" />
<Compile Include="Repository\User\UserAttachment.cs" />
<Compile Include="Repository\User\UserDetail.cs" />
<Compile Include="Repository\User\AuthorizationRole.cs" />
<Compile Include="Services\Jobs\JobLists\JobTableItemModel.cs" />
<Compile Include="Services\Jobs\JobLists\JobTableModel.cs" />
<Compile Include="Services\Jobs\JobLists\JobTableStatusItemModel.cs" />
<Compile Include="Services\Jobs\JobLists\JobTableStatusQueueItemModel.cs" />
<Compile Include="Services\Jobs\JobQueues\IJobQueueToken.cs" />
<Compile Include="UI\BaseUIModel.cs" />
<Compile Include="UI\Config\AuthorizationRole\ConfigAuthorizationRoleCreateModel.cs" />
<Compile Include="UI\Config\AuthorizationRole\ConfigAuthorizationRoleIndexModel.cs" />
@@ -132,6 +139,9 @@
<Compile Include="UI\Config\Enrolment\ConfigEnrolmentIndexModel.cs" />
<Compile Include="UI\Config\Enrolment\ConfigEnrolmentStatusModel.cs" />
<Compile Include="UI\Config\JobPreferences\ConfigJobPreferencesIndexModel.cs" />
<Compile Include="UI\Config\JobQueue\ConfigJobQueueCreateModel.cs" />
<Compile Include="UI\Config\JobQueue\ConfigJobQueueIndexModel.cs" />
<Compile Include="UI\Config\JobQueue\ConfigJobQueueShowModel.cs" />
<Compile Include="UI\Config\Logging\ConfigLoggingIndexModel.cs" />
<Compile Include="UI\Config\Logging\ConfigLoggingTaskStatusModel.cs" />
<Compile Include="UI\Config\Organisation\ConfigOrganisationIndexModel.cs" />
+2 -2
View File
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.2.1128.1503")]
[assembly: AssemblyFileVersion("1.2.1128.1503")]
[assembly: AssemblyVersion("1.2.1229.1537")]
[assembly: AssemblyFileVersion("1.2.1229.1537")]
+2
View File
@@ -70,6 +70,8 @@ namespace Disco.Models.Repository
public virtual IList<JobComponent> JobComponents { get; set; }
public virtual IList<JobLog> JobLogs { get; set; }
public virtual IList<JobQueueJob> JobQueues { get; set; }
public virtual JobMetaInsurance JobMetaInsurance { get; set; }
public virtual JobMetaWarranty JobMetaWarranty { get; set; }
public virtual JobMetaNonWarranty JobMetaNonWarranty { get; set; }
@@ -18,6 +18,7 @@ namespace Disco.Models.Repository
public virtual IList<DocumentTemplate> AttachmentTypes { get; set; }
public virtual IList<DeviceComponent> DeviceComponents { get; set; }
public virtual IList<JobQueue> JobQueues { get; set; }
[ForeignKey("JobTypeId")]
public virtual JobType JobType { get; set; }
@@ -0,0 +1,38 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Disco.Models.Repository
{
public class JobQueue
{
[Key]
public int Id { get; set; }
[Required, StringLength(100)]
public string Name { get; set; }
[Required, StringLength(500), DataType(DataType.MultilineText)]
public string Description { get; set; }
[Required, StringLength(25)]
public string Icon { get; set; }
[Required, StringLength(10)]
public string IconColour { get; set; }
public int? DefaultSLAExpiry { get; set; }
[Required]
public JobQueuePriority Priority { get; set; }
public string SubjectIds { get; set; }
public virtual IList<JobSubType> JobSubTypes { get; set; }
public virtual IList<JobQueueJob> QueueJobs { get; set; }
public override string ToString()
{
return this.Name;
}
}
}
@@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Disco.Models.Repository
{
public class JobQueueJob
{
public int Id { get; set; }
[Required]
public int JobQueueId { get; set; }
[Required]
public int JobId { get; set; }
[Required]
public DateTime AddedDate { get; set; }
[Required]
public string AddedUserId { get; set; }
public string AddedComment { get; set; }
public DateTime? RemovedDate { get; set; }
public string RemovedUserId { get; set; }
public string RemovedComment { get; set; }
public DateTime? SLAExpiresDate { get; set; }
public JobQueuePriority Priority { get; set; }
[ForeignKey("JobQueueId")]
public virtual JobQueue JobQueue { get; set; }
[ForeignKey("JobId")]
public virtual Job Job { get; set; }
[ForeignKey("AddedUserId")]
public virtual User AddedUser { get; set; }
[ForeignKey("RemovedUserId")]
public virtual User RemovedUser { get; set; }
}
}
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Disco.Models.Repository
{
public enum JobQueuePriority : byte
{
High = 2,
Normal = 1,
Low = 0
}
}
@@ -1,11 +1,7 @@
using Disco.Models.Repository;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Disco.Models.Authorization
namespace Disco.Models.Services.Authorization
{
public interface IAuthorizationToken
{
@@ -1,10 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Generic;
namespace Disco.Models.Authorization
namespace Disco.Models.Services.Authorization
{
public interface IClaimNavigatorItem
{
@@ -1,11 +1,7 @@
using Disco.Models.Repository;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Disco.Models.Authorization
namespace Disco.Models.Services.Authorization
{
public interface IRoleToken
{
@@ -0,0 +1,27 @@
using System;
namespace Disco.Models.Services.Jobs.JobLists
{
public class JobTableItemModel
{
public int Id { get; set; }
public DateTime OpenedDate { get; set; }
public DateTime? ClosedDate { get; set; }
public string JobTypeId { get; set; }
public string JobTypeDescription { get; set; }
public string DeviceSerialNumber { get; set; }
public int? DeviceModelId { get; set; }
public string DeviceModelDescription { get; set; }
public int? DeviceProfileId { get; set; }
public int? DeviceAddressId { get; set; }
public string DeviceAddress { get; set; }
public string UserId { get; set; }
public string UserDisplayName { get; set; }
public string OpenedTechUserId { get; set; }
public string OpenedTechUserDisplayName { get; set; }
public string StatusDescription { get; set; }
public string StatusId { get; set; }
public string DeviceHeldLocation { get; set; }
public Disco.Models.Repository.Job.UserManagementFlags? Flags { get; set; }
}
}
@@ -0,0 +1,36 @@
using System.Collections.Generic;
namespace Disco.Models.Services.Jobs.JobLists
{
public class JobTableModel
{
public bool ShowId { get; set; }
public bool? ShowDeviceAddress { get; set; }
public bool ShowDates { get; set; }
public bool ShowType { get; set; }
public bool ShowDevice { get; set; }
public bool ShowUser { get; set; }
public bool ShowTechnician { get; set; }
public bool ShowLocation { get; set; }
public bool ShowStatus { get; set; }
public bool IsSmallTable { get; set; }
public bool HideClosedJobs { get; set; }
public bool EnablePaging { get; set; }
public bool EnableFilter { get; set; }
public virtual IEnumerable<JobTableItemModel> Items { get; set; }
public JobTableModel()
{
ShowId = true;
ShowDates = true;
ShowType = true;
ShowDevice = true;
ShowUser = true;
ShowTechnician = true;
EnablePaging = true;
EnableFilter = true;
}
}
}
@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
namespace Disco.Models.Services.Jobs.JobLists
{
public class JobTableStatusItemModel : JobTableItemModel
{
public string JobMetaWarranty_ExternalReference { get; set; }
public DateTime? JobMetaWarranty_ExternalLoggedDate { get; set; }
public DateTime? JobMetaWarranty_ExternalCompletedDate { get; set; }
public DateTime? JobMetaNonWarranty_RepairerLoggedDate { get; set; }
public DateTime? JobMetaNonWarranty_RepairerCompletedDate { get; set; }
public DateTime? JobMetaNonWarranty_AccountingChargeAddedDate { get; set; }
public DateTime? JobMetaNonWarranty_AccountingChargePaidDate { get; set; }
public DateTime? JobMetaNonWarranty_AccountingChargeRequiredDate { get; set; }
public bool? JobMetaNonWarranty_IsInsuranceClaim { get; set; }
public DateTime? JobMetaInsurance_ClaimFormSentDate { get; set; }
public DateTime? WaitingForUserAction { get; set; }
public DateTime? DeviceReadyForReturn { get; set; }
public DateTime? DeviceHeld { get; set; }
public DateTime? DeviceReturnedDate { get; set; }
public string JobMetaWarranty_ExternalName { get; set; }
public string JobMetaNonWarranty_RepairerName { get; set; }
public IEnumerable<JobTableStatusQueueItemModel> ActiveJobQueues { get; set; }
}
}
@@ -0,0 +1,14 @@
using Disco.Models.Repository;
using System;
namespace Disco.Models.Services.Jobs.JobLists
{
public class JobTableStatusQueueItemModel
{
public int Id { get; set; }
public int QueueId { get; set; }
public DateTime AddedDate { get; set; }
public DateTime? SLAExpiresDate { get; set; }
public JobQueuePriority Priority { get; set; }
}
}
@@ -0,0 +1,11 @@
using Disco.Models.Repository;
using System.Collections.ObjectModel;
namespace Disco.Models.Services.Jobs.JobQueues
{
public interface IJobQueueToken
{
JobQueue JobQueue { get; }
ReadOnlyCollection<string> SubjectIds { get; }
}
}
@@ -1,4 +1,4 @@
using Disco.Models.Authorization;
using Disco.Models.Services.Authorization;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -1,4 +1,4 @@
using Disco.Models.Authorization;
using Disco.Models.Services.Authorization;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -11,11 +11,7 @@ namespace Disco.Models.UI.Config.DocumentTemplate
Disco.Models.Repository.DocumentTemplate DocumentTemplate { get; set; }
int StoredInstanceCount { get; set; }
List<string> Types { get; set; }
List<string> SubTypes { get; set; }
List<Disco.Models.Repository.JobType> JobTypes { get; set; }
List<Disco.Models.Repository.JobSubType> JobSubTypes { get; set; }
List<string> Scopes { get; }
}
@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Disco.Models.UI.Config.JobQueue
{
public interface ConfigJobQueueCreateModel : BaseUIModel
{
Repository.JobQueue JobQueue { get; set; }
}
}
@@ -0,0 +1,14 @@
using Disco.Models.Services.Jobs.JobQueues;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Disco.Models.UI.Config.JobQueue
{
public interface ConfigJobQueueIndexModel : BaseUIModel
{
List<IJobQueueToken> Tokens { get; set; }
}
}
@@ -0,0 +1,21 @@
using Disco.Models.Services.Jobs.JobQueues;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Disco.Models.UI.Config.JobQueue
{
public interface ConfigJobQueueShowModel : BaseUIModel
{
IJobQueueToken Token { get; set; }
int OpenJobCount { get; set; }
int TotalJobCount { get; set; }
List<Disco.Models.Repository.JobType> JobTypes { get; set; }
bool CanDelete { get; set; }
}
}
+2 -5
View File
@@ -1,8 +1,5 @@
using System;
using Disco.Models.Services.Jobs.JobLists;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Disco.Models.UI.Device
{
@@ -15,7 +12,7 @@ namespace Disco.Models.UI.Device
List<Disco.Models.Repository.DeviceBatch> DeviceBatches { get; set; }
Disco.Models.BI.Job.JobTableModel Jobs { get; set; }
JobTableModel Jobs { get; set; }
List<Disco.Models.Repository.DeviceCertificate> Certificates { get; set; }
-1
View File
@@ -28,6 +28,5 @@ namespace Disco.Models.UI.Job
Disco.Models.Repository.Device Device { get; set; }
Disco.Models.Repository.User User { get; set; }
List<Disco.Models.Repository.JobType> JobTypes { get; set; }
List<Disco.Models.Repository.JobSubType> JobSubTypes { get; set; }
}
}
+2 -7
View File
@@ -1,15 +1,10 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Disco.Models.BI.Job;
using Disco.Models.Services.Jobs.JobLists;
namespace Disco.Models.UI.Job
{
public interface JobIndexModel : BaseUIModel
{
JobTableModel OpenJobs { get; set; }
JobTableModel MyJobs { get; set; }
JobTableModel LongRunningJobs { get; set; }
}
}
+3 -7
View File
@@ -1,14 +1,10 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Disco.Models.Services.Jobs.JobLists;
namespace Disco.Models.UI.Job
{
public interface JobListModel : BaseUIModel
{
string Title { get; set; }
Disco.Models.BI.Job.JobTableModel JobTable { get; set; }
JobTableModel JobTable { get; set; }
}
}
}
+1
View File
@@ -12,5 +12,6 @@ namespace Disco.Models.UI.Job
TimeSpan? LongRunning { get; set; }
List<Repository.DocumentTemplate> AvailableDocumentTemplates { get; set; }
List<Repository.JobSubType> UpdatableJobSubTypes { get; set; }
List<Repository.JobQueue> AvailableQueues { get; set; }
}
}
+5 -7
View File
@@ -1,8 +1,6 @@
using System;
using Disco.Models.BI.Search;
using Disco.Models.Services.Jobs.JobLists;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Disco.Models.UI.Search
{
@@ -12,8 +10,8 @@ namespace Disco.Models.UI.Search
string Term { get; set; }
bool Success { get; set; }
string ErrorMessage { get; set; }
List<Disco.Models.BI.Search.DeviceSearchResultItem> Devices { get; set; }
Disco.Models.BI.Job.JobTableModel Jobs { get; set; }
List<Disco.Models.BI.Search.UserSearchResultItem> Users { get; set; }
List<DeviceSearchResultItem> Devices { get; set; }
JobTableModel Jobs { get; set; }
List<UserSearchResultItem> Users { get; set; }
}
}
+4 -7
View File
@@ -1,18 +1,15 @@
using Disco.Models.Authorization;
using System;
using Disco.Models.Services.Authorization;
using Disco.Models.Services.Jobs.JobLists;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Disco.Models.UI.User
{
public interface UserShowModel : BaseUIModel
{
Disco.Models.Repository.User User { get; set; }
Disco.Models.BI.Job.JobTableModel Jobs { get; set; }
JobTableModel Jobs { get; set; }
List<Disco.Models.Repository.DocumentTemplate> DocumentTemplates { get; set; }
IAuthorizationToken AuthorizationToken { get; set; }
IClaimNavigatorItem ClaimNavigator { get; set; }
}
}
}