️ Improve Training program

TrainingProgramService
Leo TUAILLON 4 months ago
parent 53d4dadf68
commit 55eb74c93b

@ -15,14 +15,14 @@ public class ExercicesTemplateController : ControllerBase
private readonly ILogger<ExercicesTemplateController> _logger;
private readonly IExerciceService _dataServices;
public ExercicesTemplateController(ILogger<ExercicesDataController> logger, IExerciceTemplateService dataServices)
public ExercicesTemplateController(ILogger<ExercicesTemplateController> logger, IExerciceTemplateSercice dataServices)
{
_logger = logger;
_dataServices = dataServices;
}
[HttpGet]
[ProducesResponseType(typeof(IEnumerable<ResponseExerciceDto>), StatusCodes.Status200OK)]
[ProducesResponseType(typeof(IEnumerable<ResponseTemplateExerciceDto>), StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status204NoContent)]
[AllowAnonymous]
public async Task<IActionResult> GetExercices([FromQuery] int pageIndex = 1, [FromQuery] int pageSize = 5, [FromQuery] bool ascending = true)
@ -32,7 +32,7 @@ public class ExercicesTemplateController : ControllerBase
}
[HttpGet("{id}")]
[ProducesResponseType(typeof(ResponseExerciceDto), StatusCodes.Status200OK)]
[ProducesResponseType(typeof(ResponseTemplateExerciceDto), StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
[AllowAnonymous]
public async Task<IActionResult> GetExerciceById(string id)
@ -42,10 +42,10 @@ public class ExercicesTemplateController : ControllerBase
}
[HttpPost]
[ProducesResponseType(typeof(ResponseExerciceDto), StatusCodes.Status201Created)]
[ProducesResponseType(typeof(ResponseTemplateExerciceDto), StatusCodes.Status201Created)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[AllowAnonymous]
public async Task<IActionResult> CreateExercice([FromBody] RequestExerciceDto request)
public async Task<IActionResult> CreateExercice([FromBody] RequestTemplateExerciceDto request)
{
if (!ModelState.IsValid) return BadRequest(ModelState);
@ -54,11 +54,11 @@ public class ExercicesTemplateController : ControllerBase
}
[HttpPut("{id}")]
[ProducesResponseType(typeof(ResponseExerciceDto), StatusCodes.Status200OK)]
[ProducesResponseType(typeof(ResponseTemplateExerciceDto), StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[AllowAnonymous]
public async Task<IActionResult> UpdateExercice(string id, [FromBody] RequestExerciceDto request)
public async Task<IActionResult> UpdateExercice(string id, [FromBody] RequestTemplateExerciceDto request)
{
if (!ModelState.IsValid) return BadRequest(ModelState);

@ -1,22 +1,16 @@
using System.ComponentModel.DataAnnotations;
using Shared;
namespace Server.Dto.Request
{
public class RequestExerciceDto
{
[Required]
public string Name { get; set; }
public ECategory Category { get; set; }
public string Description { get; set; }
public int NbSets { get; set; }
public float Duration { get; set; }
public int NbReps { get; set; }
public string Image { get; set; }
public string Video { get; set; }
public int NbSeries { get; set; }
public int NbRepetitions { get; set; }
public int RestingTime { get; set; }
}
}

@ -1,4 +1,5 @@
using System.ComponentModel.DataAnnotations;
using Shared;
namespace Server.Dto.Request
{
@ -9,8 +10,9 @@ namespace Server.Dto.Request
public string Description { get; set; }
public float Duration { get; set; }
public EDay Day { get; set; }
public ETarget Target { get; set; }
public List<string> ExerciceIds { get; set; } = new List<string>();
}
}

@ -1,20 +1,21 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Shared;
namespace Server.Dto.Request
{
public class RequestTrainingProgramDto
{
[Required]
public string Name { get; set; }
[Required]
public int WeekDuration { get; set; }
public ELang Lang { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string? OwnerId { get; set; }
public int? WeekDuration { get; set; }
public string Difficulty { get; set; }
public EGoal EGoal { get; set; }
public EDifficulty EDifficulty { get; set; }
public List<RequestSessionDto> Sessions { get; set; } = new List<RequestSessionDto>();
}
}

@ -1,21 +1,27 @@
using Shared;
namespace Server.Dto.Response
{
public class ResponseExerciceDto
{
public string Id { get; set; }
public string Name { get; set; }
public string TemplateId { get; set; }
public string TemplateName { get; set; }
public string TemplateInstructions { get; set; }
public string Description { get; set; }
public string? TemplateImageId { get; set; }
public float Duration { get; set; }
public string? TemplateVideoId { get; set; }
public string Image { get; set; }
public ECategory Category { get; set; }
public string Video { get; set; }
public int NbSets { get; set; }
public int NbSeries { get; set; }
public int NbReps { get; set; }
public int NbRepetitions { get; set; }
public int RestingTime { get; set; }
}
}

@ -1,3 +1,5 @@
using Shared;
namespace Server.Dto.Response
{
public class ResponseSessionDto
@ -8,8 +10,11 @@ namespace Server.Dto.Response
public string Description { get; set; }
public float Duration { get; set; }
public EDay Day { get; set; }
public ETarget Target { get; set; }
public float Duration { get; set; }
public List<ResponseExerciceDto> Exercices { get; set; } = new List<ResponseExerciceDto>();
}
}

@ -1,4 +1,5 @@
using System.Collections.Generic;
using Shared;
namespace Server.Dto.Response
{
@ -6,14 +7,16 @@ namespace Server.Dto.Response
{
public string Id { get; set; }
public string Name { get; set; }
public ELang Lang { get; set; }
public int WeekDuration { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string? OwnerId { get; set; }
public int? WeekDuration { get; set; }
public string Difficulty { get; set; }
public EGoal EGoal { get; set; }
public EDifficulty EDifficulty { get; set; }
public List<ResponseSessionDto> Sessions { get; set; } = new List<ResponseSessionDto>();
}
}

@ -19,6 +19,6 @@ public class ResponseUserDto
public ESport ESport { get; set; }
public ESportLevel ESportLevel { get; set; }
public EDifficulty ESportLevel { get; set; }
}

Binary file not shown.

@ -3,13 +3,19 @@ using Infrastructure.Entities;
using Server.Dto.Request;
using Server.Dto.Response;
namespace Server.Mappers;
namespace Server.Mappers
{
public class ExerciceProfile : Profile
{
public ExerciceProfile()
{
CreateMap<Exercice, ResponseExerciceDto>();
CreateMap<Exercice, ResponseExerciceDto>()
.ForMember(dest => dest.TemplateName, opt => opt.MapFrom(src => src.Template.Name))
.ForMember(dest => dest.TemplateInstructions, opt => opt.MapFrom(src => src.Template.Instructions))
.ForMember(dest => dest.TemplateImageId, opt => opt.MapFrom(src => src.Template.ImageId))
.ForMember(dest => dest.TemplateVideoId, opt => opt.MapFrom(src => src.Template.VideoId));
CreateMap<RequestExerciceDto, Exercice>();
}
}
}

@ -1,4 +1,5 @@
using AutoMapper;
using System.Linq;
using Infrastructure.Entities;
using Server.Dto.Request;
using Server.Dto.Response;
@ -10,7 +11,10 @@ namespace Server.Mappers
public SessionProfile()
{
CreateMap<Session, ResponseSessionDto>()
.ForMember(dest => dest.Exercices, opt => opt.MapFrom(src => src.Exercices));
.ForMember(dest => dest.Duration,
opt => opt.MapFrom(src => src.Exercices.Sum(e => e.Template.Duration)))
.ForMember(dest => dest.Exercices,
opt => opt.MapFrom(src => src.Exercices));
CreateMap<RequestSessionDto, Session>()
.ForMember(dest => dest.Exercices, opt => opt.Ignore());

@ -3,8 +3,8 @@ using Infrastructure.Entities;
using Server.Dto.Request;
using Server.Dto.Response;
namespace Server.Mappers;
namespace Server.Mappers
{
public class TrainingProgramProfile : Profile
{
public TrainingProgramProfile()
@ -12,14 +12,21 @@ public class TrainingProgramProfile : Profile
CreateMap<TrainingProgram, ResponseTrainingProgramDto>()
.ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.Id))
.ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Name))
.ForMember(dest => dest.Description, opt => opt.MapFrom(src => src.Description))
.ForMember(dest => dest.Lang, opt => opt.MapFrom(src => src.Lang))
.ForMember(dest => dest.OwnerId, opt => opt.MapFrom(src => src.OwnerId))
.ForMember(dest => dest.WeekDuration, opt => opt.MapFrom(src => src.WeekDuration))
.ForMember(dest => dest.EGoal, opt => opt.MapFrom(src => src.Goal))
.ForMember(dest => dest.EDifficulty, opt => opt.MapFrom(src => src.Difficulty))
.ForMember(dest => dest.Sessions, opt => opt.MapFrom(src => src.Sessions));
CreateMap<RequestTrainingProgramDto, TrainingProgram>()
.ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Name))
.ForMember(dest => dest.Description, opt => opt.MapFrom(src => src.Description))
.ForMember(dest => dest.WeekDuration, opt => opt.MapFrom(src => src.WeekDuration))
.ForMember(dest => dest.Lang, opt => opt.MapFrom(src => src.Lang))
.ForMember(dest => dest.OwnerId, opt => opt.MapFrom(src => src.OwnerId))
.ForMember(dest => dest.WeekDuration, opt => opt.MapFrom(src => src.WeekDuration.HasValue ? src.WeekDuration.Value : 0))
.ForMember(dest => dest.Goal, opt => opt.MapFrom(src => src.EGoal))
.ForMember(dest => dest.Difficulty, opt => opt.MapFrom(src => src.EDifficulty))
.ForMember(dest => dest.Sessions, opt => opt.MapFrom(src => src.Sessions));
}
}
}

@ -2,5 +2,7 @@ namespace Shared;
public enum ECategory
{
WARMUP,
TRAINING,
STRETCHING,
}

@ -2,5 +2,11 @@ namespace Shared;
public enum EDay
{
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}

@ -2,5 +2,8 @@ namespace Shared;
public enum EDifficulty
{
NOT_SPORTY,
BEGINNER,
SPORTY,
VERY_SPORTY
}

@ -2,5 +2,7 @@ namespace Shared;
public enum EGoal
{
WEIGHT_LOSS,
MASS_GAIN,
FITNESS,
}

@ -2,5 +2,6 @@ namespace Shared;
public enum ELang
{
FR,
EN
}

@ -2,5 +2,10 @@ namespace Shared;
public enum ETarget
{
LEGS,
ARMS,
BACK,
CHEST,
ABS,
CARDIO
}

@ -8,7 +8,6 @@
<ItemGroup>
<Folder Include="Criteria\" />
<Folder Include="Enums\" />
</ItemGroup>
</Project>

Loading…
Cancel
Save