示例#1
0
        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());
            }
        }
示例#2
0
        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());
            }
        }