public async Task <IActionResult> AddOrUpdateBodyStatistic([FromRoute] int?userId, [FromBody] BodyStatisticDTO bodyStatDto) { if (userId == null) { return(BadRequest()); } if (bodyStatDto.Month <= 0 || bodyStatDto.Month > 12 || bodyStatDto.Week <= 0 || bodyStatDto.Week > 52 || bodyStatDto.Year < 0) { return(BadRequest()); } if (!ModelState.IsValid) { return(new UnprocessableEntityObjectResult(ModelState)); } var bodyStatEntity = Mapper.Map <BodyStatistic>(bodyStatDto); var result = await _repository.AddOrUpdateBodyStatistic(userId, bodyStatEntity); if (result == null) { return(BadRequest("Add Failed for Body Statistic...")); } if (bodyStatEntity.ImageBytes != null && bodyStatEntity.ImageBytes.Length != 0) { bodyStatEntity.ID = result.ID; var imageResult = await SaveStatisticImage(bodyStatEntity); } var bodyStatToReturn = Mapper.Map <BodyStatisticDTO>(result); return(CreatedAtRoute( routeName: "GetBodyStatistic", routeValues: new { userId = userId, bodyStatId = bodyStatToReturn.ID }, value: bodyStatToReturn)); }