Files
2026-03-17 09:53:09 -05:00

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;
}
}
}