public async Task <ActionResult <PublicApi.v1.DTO.AppUserInPosition> > PostAppUserInPosition(
            PublicApi.v1.DTO.AppUserInPosition appUserInPosition)
        {
            if (!await _bll.AppUsersInPositions.BelongsToUserAsync(appUserInPosition.Id, User.GetUserId()))
            {
                return(NotFound());
            }

            appUserInPosition = PublicApi.v1.Mappers.AppUserInPositionMapper.MapFromInternal(
                _bll.AppUsersInPositions.Add(PublicApi.v1.Mappers.AppUserInPositionMapper
                                             .MapFromExternal(appUserInPosition)));

            await _bll.SaveChangesAsync();

            appUserInPosition = PublicApi.v1.Mappers.AppUserInPositionMapper.MapFromInternal(
                _bll.AppUsersInPositions.GetUpdatesAfterUOWSaveChanges(
                    PublicApi.v1.Mappers.AppUserInPositionMapper.MapFromExternal(appUserInPosition)));

            return(CreatedAtAction("GetAppUserInPosition",
                                   new
            {
                version = HttpContext.GetRequestedApiVersion().ToString(),
                id = appUserInPosition.Id
            }, appUserInPosition));
        }
        public async Task <IActionResult> PutAppUserInPosition(int id, PublicApi.v1.DTO.AppUserInPosition appUserInPosition)
        {
            if (id != appUserInPosition.Id)
            {
                return(BadRequest());
            }

            if (!await _bll.AppUsersInPositions.BelongsToUserAsync(id, User.GetUserId()))
            {
                return(NotFound());
            }

            _bll.AppUsersInPositions.Update(PublicApi.v1.Mappers.AppUserInPositionMapper
                                            .MapFromExternal(appUserInPosition));
            await _bll.SaveChangesAsync();

            return(NoContent());
        }