45 lines
1.7 KiB
C#
45 lines
1.7 KiB
C#
using LCU.Library.Internal.IncentiveApiModels.Common;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Converters;
|
|
using System;
|
|
using System.Linq;
|
|
using LCU.Library.Internal.IncentiveApiModels.Enums;
|
|
|
|
namespace LCU.Library.Internal.IncentiveApiModels.Entities
|
|
{
|
|
public class ActivityTransferAction : Auditable, IViewTransformable<ActivityTransferAction>
|
|
{
|
|
public int Id { get; set; }
|
|
|
|
[JsonConverter(typeof(StringEnumConverter))]
|
|
public ActivityState ActivityStateBeforeTransfer { get; set; }
|
|
public int RequestedActivityId { get; set; }
|
|
|
|
[JsonConverter(typeof(StringEnumConverter))]
|
|
public ActivityTransferState State { get; set; }
|
|
public int? NewActivityId { get; set; }
|
|
public int NewActivityDepartmentId { get; set; }
|
|
public string NewActivityEmployeeId { get; set; }
|
|
public Guid NewAppUserId { get; set; }
|
|
public string? RequestedDepartmentApprover { get; set; }
|
|
public DateTime? RequestedDepartmentApproved { get; set; }
|
|
public string? NewDepartmentApprover { get; set; }
|
|
public DateTime? NewDepartmentApproved { get; set; }
|
|
public Activity RequestedActivity { get; set; }
|
|
public Activity NewActivity { get; set; }
|
|
|
|
public static bool IsEligibleForTransfer(ActivityState activityState)
|
|
{
|
|
return ActivityStateDetail.ActivityStatesEligibleForTransfer
|
|
.Select(x => x.State).Contains(activityState);
|
|
}
|
|
|
|
public ActivityTransferAction TransformForView()
|
|
{
|
|
RequestedActivity?.TransformForView();
|
|
NewActivity?.TransformForView();
|
|
return this;
|
|
}
|
|
}
|
|
}
|