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.
78 lines
3.1 KiB
78 lines
3.1 KiB
using Model;
|
|
using Model.Repository;
|
|
using Shared;
|
|
|
|
namespace StubAPI;
|
|
|
|
public class ActivityService: IActivityRepository
|
|
{
|
|
private List<Activity> _activities = new List<Activity>(
|
|
new Activity[]
|
|
{
|
|
new Activity
|
|
{
|
|
Id = 1,
|
|
Type = "Running",
|
|
Date = new DateTime(2021, 10, 10),
|
|
StartTime = new DateTime(2021, 10, 10, 10, 0, 0),
|
|
EndTime = new DateTime(2021, 10, 10, 11, 0, 0),
|
|
Effort = 3,
|
|
Variability = 0.5f,
|
|
Variance = 0.5f,
|
|
StandardDeviation = 0.5f,
|
|
Average = 5.0f,
|
|
Maximum = 10,
|
|
Minimum = 0,
|
|
AverageTemperature = 20.0f,
|
|
HasAutoPause = false,
|
|
Athlete = new User
|
|
{
|
|
Id = 3, Username = "Athlete3", ProfilePicture = "https://plus.unsplash.com/premium_photo-1705091981693-6006f8a20479?q=80&w=1974&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", FirstName = "First3", LastName = "Last3",
|
|
Sexe = "M", Lenght = 190, Weight = 80, DateOfBirth = new DateTime(1994, 3, 3), Email = "ath@ex.fr",
|
|
Role = new Athlete()
|
|
}
|
|
},
|
|
}
|
|
);
|
|
|
|
public async Task<IEnumerable<Activity>?> GetActivities(int index, int count, ActivityOrderCriteria criteria, bool descending = false)
|
|
=> await Task.FromResult(_activities.GetItemsWithFilterAndOrdering(c=>true,index, count,criteria != ActivityOrderCriteria.None ? criteria: null , descending));
|
|
|
|
public Task<Activity?> GetActivityByIdAsync(int id)
|
|
{
|
|
return Task.FromResult(_activities.FirstOrDefault(s => s.Id == id));
|
|
}
|
|
|
|
public Task<Activity?> AddActivity(Activity activity)
|
|
=> _activities.AddItem(activity);
|
|
|
|
|
|
public async Task<Activity?> UpdateActivity(int id, Activity activity)
|
|
{
|
|
var oldActivity = _activities.FirstOrDefault(s => s.Id == id);
|
|
if (oldActivity == null) return null;
|
|
return await _activities.UpdateItem(oldActivity, activity);
|
|
}
|
|
|
|
public Task<bool> DeleteActivity(int id)
|
|
{
|
|
var activity = _activities.FirstOrDefault(s => s.Id == id);
|
|
if (activity == null) return Task.FromResult(false);
|
|
return _activities.DeleteItem(activity);
|
|
}
|
|
|
|
public Task<int> GetNbItems()
|
|
=> Task.FromResult(_activities.Count);
|
|
|
|
public async Task<IEnumerable<Activity>?> GetActivitiesByUser(int userId, int index, int count, ActivityOrderCriteria criteria, bool descending = false)
|
|
{
|
|
var activities = _activities.GetItemsWithFilterAndOrdering(a => a.Athlete.Id == userId, index, count,
|
|
criteria != ActivityOrderCriteria.None ? criteria : null, descending);
|
|
return await Task.FromResult(activities);
|
|
}
|
|
|
|
public Task<int> GetNbActivitiesByUser(int userId)
|
|
{
|
|
return Task.FromResult(_activities.Count(a => a.Athlete.Id == userId));
|
|
}
|
|
} |