#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. using System.Text.Json.Serialization; namespace BlueMine.Redmine { public static class RedmineConstants { public const int ClosedStatusId = 30; public const int EstimatedHoursCustomFieldId = 65; } public class RedmineDto { public class SimpleIssue { public int Id { get; set; } public string ProjectName { get; set; } public string Subject { get; set; } public string Description { get; set; } public DateTime Created { get; set; } public DateTime Updated { get; set; } } public class SimpleProject { public int Id { get; set; } public string Name { get; set; } public string Identifier { get; set; } } public class SimpleTracker { public int Id { get; set; } public string Name { get; set; } } public class IssueItem { public string ProjectName { get; set; } public string IssueName { get; set; } public string IssueDescription { get; set; } public int IssueNumber { get; set; } public double SpentTime { get; set; } public DateTime Created { get; set; } public DateTime Updated { get; set; } public string LastUpdate { get { var span = DateTime.Now - Updated; if (span.TotalMinutes < 1) return "épp most"; if (span.TotalMinutes < 60) return $"{(int)span.TotalMinutes} perce"; if (span.TotalHours < 24) return $"{(int)span.TotalHours} órája"; if (span.TotalDays < 7) return $"{(int)span.TotalDays} napja"; if (span.TotalDays < 30) return $"{(int)(span.TotalDays / 7)} hete"; if (span.TotalDays < 365) return $"{(int)(span.TotalDays / 30)} hónapja"; return $"{(int)(span.TotalDays / 365)} éve"; } } } public class TimeEntryRequest { [JsonPropertyName("time_entry")] public TimeEntry TimeEntry { get; set; } } public class TimeEntry { [JsonPropertyName("issue_id")] public int IssueId { get; set; } [JsonPropertyName("hours")] public double Hours { get; set; } [JsonPropertyName("comments")] public string Comments { get; set; } [JsonPropertyName("spent_on")] public string SpentOn { get; set; } [JsonPropertyName("activity_id")] public int? ActivityId { get; set; } } public class IssueListResponse { [JsonPropertyName("issues")] public List Issues { get; set; } [JsonPropertyName("total_count")] public int TotalCount { get; set; } [JsonPropertyName("limit")] public int Limit { get; set; } [JsonPropertyName("offset")] public int Offset { get; set; } } public class CreateIssueResponse { [JsonPropertyName("issue")] public IssueDto Issue { get; set; } } public class IssueDto { [JsonPropertyName("id")] public int Id { get; set; } [JsonPropertyName("project")] public IdNameDto Project { get; set; } [JsonPropertyName("subject")] public string Subject { get; set; } [JsonPropertyName("assigned_to")] public AssignedToDto AssignedTo { get; set; } [JsonPropertyName("description")] public string Description { get; set; } [JsonPropertyName("created_on")] public DateTime Created { get; set; } [JsonPropertyName("updated_on")] public DateTime Updated { get; set; } } public class IdNameDto { [JsonPropertyName("name")] public string Name { get; set; } } public class AssignedToDto { [JsonPropertyName("id")] public int Id { get; set; } } public class TimeEntryListResponse { [JsonPropertyName("time_entries")] public List TimeEntries { get; set; } } public class TimeEntryDto { [JsonPropertyName("hours")] public double Hours { get; set; } } public class ProjectListResponse { [JsonPropertyName("projects")] public List Projects { get; set; } [JsonPropertyName("total_count")] public int TotalCount { get; set; } [JsonPropertyName("limit")] public int Limit { get; set; } [JsonPropertyName("offset")] public int Offset { get; set; } } public class ProjectDto { [JsonPropertyName("id")] public int Id { get; set; } [JsonPropertyName("name")] public string Name { get; set; } [JsonPropertyName("identifier")] public string Identifier { get; set; } } public class ProjectWithTrackersResponse { [JsonPropertyName("project")] public ProjectWithTrackersDto Project { get; set; } } public class ProjectWithTrackersDto { [JsonPropertyName("trackers")] public List Trackers { get; set; } } public class TrackerDto { [JsonPropertyName("id")] public int Id { get; set; } [JsonPropertyName("name")] public string Name { get; set; } } } } #pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable.