Skip to content

Commit

Permalink
Added the maintenance record management class
Browse files Browse the repository at this point in the history
  • Loading branch information
davewalker5 committed Mar 11, 2024
1 parent 4085eda commit b29a503
Show file tree
Hide file tree
Showing 10 changed files with 1,189 additions and 612 deletions.
301 changes: 301 additions & 0 deletions src/DroneFlightLog.Data.Tests/MaintenanceRecordManagerTests.cs

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions src/DroneFlightLog.Data/Entities/MaintenanceRecord.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ public class MaintenanceRecord
public int MaintainerId { get; set; }
public int DroneId { get; set; }
public DateTime DateCompleted { get; set; }
public MaintenanceRecordType RecordType { get; set; }
public string Description { get; set; }
public string Notes { get; set; }

Expand Down
8 changes: 8 additions & 0 deletions src/DroneFlightLog.Data/Entities/MaintenanceRecordType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace DroneFlightLog.Data.Entities
{
public enum MaintenanceRecordType
{
Maintenance,
Modification
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using System;
using System.Diagnostics.CodeAnalysis;

namespace DroneFlightLog.Data.Exceptions
{
[ExcludeFromCodeCoverage]
public class MaintenanceRecordNotFoundException : Exception
{
public MaintenanceRecordNotFoundException()
{
}

public MaintenanceRecordNotFoundException(string message) : base(message)
{
}

public MaintenanceRecordNotFoundException(string message, Exception inner) : base(message, inner)
{
}
}
}
3 changes: 3 additions & 0 deletions src/DroneFlightLog.Data/Factory/DroneFlightLogFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public class DroneFlightLogFactory<T> : IDroneFlightLogFactory<T> where T : DbCo
private Lazy<IFlightManager> _flights;
private Lazy<IUserManager> _users;
private Lazy<IMaintainerManager> _maintainers;
private Lazy<IMaintenanceRecordManager> _maintenanceRecords;

public DroneFlightLogFactory(T context)
{
Expand All @@ -31,6 +32,7 @@ public DroneFlightLogFactory(T context)
_flights = new Lazy<IFlightManager>(() => new FlightManager<T>(this));
_users = new Lazy<IUserManager>(() => new UserManager<T>(context));
_maintainers = new Lazy<IMaintainerManager>(() => new MaintainerManager<T>(context));
_maintenanceRecords = new Lazy<IMaintenanceRecordManager>(() => new MaintenanceRecordManager<T>(this));
}

public T Context { get; private set; }
Expand All @@ -44,5 +46,6 @@ public DroneFlightLogFactory(T context)
public IFlightManager Flights { get { return _flights.Value; } }
public IUserManager Users { get { return _users.Value; } }
public IMaintainerManager Maintainers { get { return _maintainers.Value; } }
public IMaintenanceRecordManager MaintenanceRecords { get { return _maintenanceRecords.Value; } }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,6 @@ public interface IDroneFlightLogFactory<T> where T : DbContext, IDroneFlightLogD
IFlightManager Flights { get; }
IUserManager Users { get; }
IMaintainerManager Maintainers { get; }
IMaintenanceRecordManager MaintenanceRecords { get; }
}
}
19 changes: 19 additions & 0 deletions src/DroneFlightLog.Data/Interfaces/IMaintenanceRecordManager.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
using DroneFlightLog.Data.Entities;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace DroneFlightLog.Data.Interfaces
{
public interface IMaintenanceRecordManager
{
MaintenanceRecord AddMaintenanceRecord(int maintainerId, int droneId, MaintenanceRecordType type, DateTime completed, string description, string notes);
Task<MaintenanceRecord> AddMaintenanceRecordAsync(int maintainerId, int droneId, MaintenanceRecordType type, DateTime completed, string description, string notes);
IEnumerable<MaintenanceRecord> FindMaintenanceRecords(int? maintainerId, int? droneId, DateTime? start, DateTime? end, int pageNumber, int pageSize);
IAsyncEnumerable<MaintenanceRecord> FindMaintenanceRecordsAsync(int? maintainerId, int? droneId, DateTime? start, DateTime? end, int pageNumber, int pageSize);
MaintenanceRecord GetMaintenanceRecord(int id);
Task<MaintenanceRecord> GetMaintenanceRecordAsync(int id);
MaintenanceRecord UpdateMaintenanceRecord(int id, int maintainerId, int droneId, MaintenanceRecordType type, DateTime completed, string description, string notes);
Task<MaintenanceRecord> UpdateMaintenanceRecordAsync(int id, int maintainerId, int droneId, MaintenanceRecordType type, DateTime completed, string description, string notes);
}
}
Loading

0 comments on commit b29a503

Please sign in to comment.