You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
API/src/EFMappers/ActivityMapper.cs

71 lines
2.4 KiB

using Entities;
using Model;
using Shared;
namespace EFMappers;
public static class ActivityMapper
{
private static GenericMapper<Activity, ActivityEntity> _mapper = new GenericMapper<Activity, ActivityEntity>();
// ! RESET
// ? Quand on fait appel au reset ?
// * Apres des saves changing ou rollback.
public static void Reset()
{
_mapper.Reset();
}
public static Activity? ToModel(this ActivityEntity entity)
{
// return entity.ToModel();
return entity.ToT(_mapper, activity => new Activity (
entity.IdActivity,
entity.Type,
new DateTime(entity.Date.Year, entity.Date.Month, entity.Date.Day),
new DateTime().Add(entity.StartTime.ToTimeSpan()),
new DateTime().Add(entity.EndTime.ToTimeSpan()),
entity.EffortFelt,
entity.Variability,
entity.Variance,
entity.StandardDeviation,
entity.Average,
entity.Maximum,
entity.Minimum,
entity.AverageTemperature,
entity.HasAutoPause));
// ! regarder a ce que le model est bien les relation comme l'EF
// ), (activity, entity) => activity.Id = entity.IdActivity);
}
// dictionnaire;
public static ActivityEntity? ToEntity(this Activity model)
{
// return model.ToEntity();
return model.ToU(_mapper, activityEntity => new ActivityEntity
{
IdActivity = model.Id,
Type = model.Type,
Date = DateOnly.FromDateTime(model.Date),
StartTime = TimeOnly.FromDateTime(model.StartTime),
EndTime = TimeOnly.FromDateTime(model.EndTime),
EffortFelt = model.Effort,
Variability = model.Variability,
Variance = model.Variance,
StandardDeviation = model.StandardDeviation,
Average = model.Average,
Maximum = model.Maximum,
Minimum = model.Minimum,
AverageTemperature = model.AverageTemperature,
HasAutoPause = model.HasAutoPause
}
// ! regarder a ce que le model est bien les relation comme l'EF
);
}
public static IEnumerable<Activity> ToModels(this IEnumerable<ActivityEntity> entities)
=> entities.Select(a => a.ToModel());
public static IEnumerable<ActivityEntity> ToEntities(this IEnumerable<Activity> models)
=> models.Select(a => a.ToEntity());
}