public async Task <IActionResult> AddWeightForUser(int userId, WeightForCreationDto weightForCreation) { var userFromRepo = await _repo.GetUser(userId); var weight = _mapper.Map <Weight>(weightForCreation); userFromRepo.Weights.Add(weight); if (await _repo.SaveAll()) { var weightToReturn = _mapper.Map <WeightForReturnDto>(weight); return(CreatedAtRoute("GetWeight", new WeightForReturnDto { Id = weight.Id }, weightToReturn)); } return(BadRequest("Could not add the weight")); }
public async Task <IActionResult> Register(UserForRegisterDto userForRegisterDto) { // TODO: validate request userForRegisterDto.Username = userForRegisterDto.Username.ToLower(); if (await _repo.UserExists(userForRegisterDto.Username)) { return(BadRequest("Username already exists")); } var userToCreate = _mapper.Map <User>(userForRegisterDto); var createdUser = await _repo.Register(userToCreate, userForRegisterDto.Password); // add the start weight to the new users weights var userFromRepo = await _userRepo.GetUser(createdUser.Id); var w = new WeightForCreationDto { Value = userFromRepo.StartWeight, Date = DateTime.Now }; var weight = _mapper.Map <Weight>(w); userFromRepo.Weights.Add(weight); if (!await _userRepo.SaveAll()) { return(BadRequest("Could not add the start weight")); } var userToReturn = _mapper.Map <UserForDetailedDto>(createdUser); return(CreatedAtRoute("GetUser", new { controller = "Users", id = createdUser.Id }, userToReturn)); }