Ejemplo n.º 1
0
        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");
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 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));
     }
 }
Ejemplo n.º 4
0
        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());
            }
        }
Ejemplo n.º 5
0
        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));
        }