public async Task <IActionResult> Post([FromBody] WodRequest request) { try { Wod wod = new Wod() { Date = request.Date.Value, Name = request.Name, Description = request.Description, Workouts = request.WorkoutRequests.Select(x => new Workout() { Description = x.Description, ResulttypeId = x.ResulttypeId, WorkouttypeId = x.Workouttype.Id }).ToList() }; if (request.Wod != null) { await _wodService.Delete(request.Wod); } wod = await _wodService.Add(wod); request.IsSaved = wod != null; return(Ok(request)); } catch (Exception ex) { _logger.LogError($"Post error: {ex.Message} - Name: {request.Name}"); return(BadRequest()); } }
public async Task <IActionResult> Add(string date = null) { try { DateTime Date; if (String.IsNullOrWhiteSpace(date) || !DateTime.TryParse(date, out Date) || Date == DateTime.MinValue) { Date = DateTime.Now; } WodRequest request = new WodRequest() { Date = Date, Name = $"WOD-{Date.ToString("yyyyMMdd")}", Workouttypes = await _workouttypesService.GetWorkouttypes(), Resulttypes = await _resulttypeService.GetResulttypes() }; Wod wod = await _wodService.GetWodByDate(Date); if (wod == null) { foreach (var workouttype in request.Workouttypes.Where(x => x.IsAutomatic == true)) { if (request.WorkoutRequests == null) { request.WorkoutRequests = new List <WorkoutRequest>(); } request.WorkoutRequests.Add(new WorkoutRequest { Workouttype = workouttype }); } } else { request.Name = wod.Name; request.Description = wod.Description; request.Wod = wod; foreach (var workout in wod.Workouts) { if (request.WorkoutRequests == null) { request.WorkoutRequests = new List <WorkoutRequest>(); } request.WorkoutRequests.Add(new WorkoutRequest { Workouttype = request.Workouttypes.Where(x => x.Id == workout.WorkouttypeId).FirstOrDefault(), Description = workout.Description, ResulttypeId = workout.ResulttypeId }); } } return(Ok(request)); } catch (Exception ex) { _logger.LogError($"Get error: {ex.Message}"); return(BadRequest()); } }