public async Task <int> CreateClub(CreateClubDto club, string email) { try { var user = (await _unitOfWork.Users.GetAsync(t => t.Email == email)).SingleOrDefault(); if (user == null) { throw new ArgumentException("User not found"); } var newClub = new Club { Guid = Guid.NewGuid(), IsActive = false, Status = ClubStatus.PendingActivation, Description = club.Description, Title = club.Title, Country = club.Country, City = club.City, Creator = user, Registered = DateTimeOffset.UtcNow, LastUpdate = DateTimeOffset.UtcNow }; await _unitOfWork.Clubs.InsertAsync(newClub); var relation = new ClubUserAdministrator { User = user, Club = newClub }; newClub.Administrators.Add(relation); user.ClubsAdministrated.Add(relation); _unitOfWork.Save(); _activityService.LogActivity(new Activity { UserId = user.Id, Importance = ActivityImportance.High, Type = ActivityType.NewClubAdded, Data = JsonConvert.SerializeObject(newClub, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }) }); return(newClub.Id); } catch (ArgumentException) { throw; } catch (Exception e) { _logger.LogError(e.Message); throw new Exception("Error while adding new club. Please try a bit later"); } }
public void CreateReturnsClub() { //Arrange var mockRepo = new Mock <IUnitOfWork>(); var mapper = new Mock <IMapper>(); var controller = new ClubController(mapper.Object, mockRepo.Object); var createClubDto = new CreateClubDto(); //Act var result = controller.Create(createClubDto); //Assert Assert.IsAssignableFrom <Task <IActionResult> >(result); }
public async Task <IActionResult> CreateClub([FromBody] CreateClubDto club) { try { var email = User.Claims.SingleOrDefault(c => c.Type == "email")?.Value; if (string.IsNullOrEmpty(email)) { return(BadRequest("Authorization failed.")); } return(Ok(await _service.CreateClub(club, email))); } catch (Exception e) { return(BadRequest(e.Message)); } }
public async Task <IActionResult> CreateClub([FromBody] CreateClubDto createClub) { var user = User.GetUserId(); createClub.AppUserId = user; var club = _mapper.Map <Club>(createClub); var result = await _unitOfWork.ClubRepository.CreateClubAsync(club); if (!result) { return(BadRequest("Could not create object")); } else { return(Ok()); } }
public async Task <IActionResult> CreateClubOnboard([FromBody] CreateClubDto clubRequest) { if (clubRequest == null) { return(BadRequest()); } var username = User.GetUsername(); var user = await _unitOfWork.UserRepository.GetUserByUsername(username); var club = new Club { Name = clubRequest.Name, City = clubRequest.City, State = clubRequest.State, Intro = clubRequest.Intro, AppUser = user, AppUserID = user.Id, }; // Events = // new List<Event> // { // new Event { // Title = clubRequest.Events.Title, // Location = clubRequest.Events.Location, // Date = clubRequest.Events.Date, // } // } // }; await _unitOfWork.ClubRepository.CreateClubAsync(club); var baseUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.ToUriComponent()}"; var locationUri = baseUrl + "/api/club/" + club.Name; var response = new Club { Name = club.Name }; return(Created(locationUri, response)); }