public async Task <IActionResult> GetWeights(int userId) { var user = await _repo.GetUser(userId); user.Weights = user.Weights.OrderBy(d => d.Date).ToList(); var weightsToReturn = _mapper.Map <IEnumerable <WeightForReturnDto> >(user.Weights); return(Ok(weightsToReturn)); }
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)); }