using Model; using Model.Repository; using Shared; namespace StubAPI; public class ActivityService: IActivityRepository { private List _activities = new List( 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, Users = {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?> 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 GetActivityByIdAsync(int id) { return Task.FromResult(_activities.FirstOrDefault(s => s.Id == id)); } public Task AddActivity(Activity activity) => _activities.AddItem(activity); public async Task 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 DeleteActivity(int id) { var activity = _activities.FirstOrDefault(s => s.Id == id); if (activity == null) return Task.FromResult(false); return _activities.DeleteItem(activity); } public Task GetNbItems() => Task.FromResult(_activities.Count); public async Task?> GetActivitiesByUser(int userId, int index, int count, ActivityOrderCriteria criteria, bool descending = false) { var activities = _activities.GetItemsWithFilterAndOrdering(c => c.Users.Any(u => u.Id == userId), index, count, criteria != ActivityOrderCriteria.None ? criteria : null, descending); return await Task.FromResult(activities); } public Task GetNbActivitiesByUser(int userId) { return Task.FromResult(_activities.Count(a => a.Users.Any(u => u.Id == userId))); } }