public async Task <IActionResult> Post(UserPostResourceModel user) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var addedUser = await addUserService.AddUser(unitOfWork, user); await unitOfWork.CompleteAsync(); if (addedUser != null) { //return CreatedAtAction("Get", new { id = addedUser.Id }, addedUser); return(Ok(addedUser)); } else { return(BadRequest()); } }
public async Task <User> AddUser(IUnitOfWork unitOfWork, UserPostResourceModel userPostResourceModel) { var profilePhoto = userPostResourceModel.ProfilePhoto; Photo photo = new Photo(); if (profilePhoto != null) { var pathInsideTheWwwRoot = "Images/" + Guid.NewGuid() + Path.GetFileName(profilePhoto.FileName); var filePath = Path.Combine(hostingEnvironment.WebRootPath, pathInsideTheWwwRoot); await profilePhoto.CopyToAsync(new FileStream(filePath, FileMode.Create)); photo = new Photo() { //Url = fileName Url = "/" + pathInsideTheWwwRoot }; } User user; if (photo.Url != null) { user = new User() { FirstName = userPostResourceModel.FirstName, LastName = userPostResourceModel.LastName, Email = userPostResourceModel.Email, UserName = userPostResourceModel.UserName, DateOfBirth = userPostResourceModel.DateOfBirth, Country = userPostResourceModel.Country, City = userPostResourceModel.City, ProfilePhoto = photo, Bio = userPostResourceModel.Bio, //Password = userPostResourceModel.Password, Interests = userPostResourceModel.Interests, //BankAccounts = userPostResourceModel.BankAccounts } } ; else { user = new User() { FirstName = userPostResourceModel.FirstName, LastName = userPostResourceModel.LastName, Email = userPostResourceModel.Email, UserName = userPostResourceModel.UserName, DateOfBirth = userPostResourceModel.DateOfBirth, Country = userPostResourceModel.Country, City = userPostResourceModel.City, Bio = userPostResourceModel.Bio, //Password = userPostResourceModel.Password, Interests = userPostResourceModel.Interests, //BankAccounts = userPostResourceModel.BankAccounts } }; var result = await userManager.CreateAsync(user, userPostResourceModel.Password); if (!result.Succeeded) { return(await Task.FromResult <User>(null)); } //if (photo.Url != "") //await unitOfWork.PhotoRepository.InsertAsync(photo); // when calling unitOfWork.Complete() in the controller the photo gets inserted, so this line isn't needed return(user); } }