Пример #1
0
        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));
        }