public async Task <TeamViewModel> Handle(AddTeamCommand addTeamCommand, CancellationToken cancellationToken) => await Task.Run(() =>
            {
                return(ExecuteAsync <TeamViewModel>(async response =>
                {
                    var playersToAdd = new List <Player>();

                    var teamToAdd = new Team
                    {
                        Name = addTeamCommand.Name,
                        Longitude = addTeamCommand.Longitude,
                        Latitude = addTeamCommand.Latitude,
                        Players = playersToAdd
                    };

                    var addedTeam = await _teamRepository.AddAsync(teamToAdd);

                    foreach (var playerId in addTeamCommand.PlayerIds)
                    {
                        var player = await _playerRepository.GetPlayerByIdAsync(playerId);

                        player.Team = addedTeam;
                        await _playerRepository.UpdateAsync(player);
                    }

                    var updatedTeam = await _teamRepository.UpdateAsync(addedTeam);

                    var teamDto = _mapper.Map <TeamLookupModel>(addedTeam);
                    response.TeamLookupModel = teamDto;
                }));
            });
        public async Task <ActionResult <Team> > PostTeam(TeamModel model)
        {
            try
            {
                var location = _linkGenerator.GetPathByAction("GetTeam", "Teams", new { id = -1 });
                if (string.IsNullOrWhiteSpace(location))
                {
                    return(BadRequest("Could not use ID"));
                }

                var team = _mapper.Map <Team>(model);

                await _teamRepository.AddAsync(team);

                if (await _sharedRepository.SaveChangesAsync() > 0)
                {
                    return(Created(location, _mapper.Map <TeamModel>(team)));
                }

                return(BadRequest());
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, Settings.DatabaseFailureString));
            }
        }
        public async Task <bool> Handle(CreateTeamCommand request, CancellationToken cancellationToken)
        {
            var team = new Team(request.Name, string.Empty, TimeHelper.ConvertDataTimeToLong(DateTime.Now), request.Introduction, request.CreatePerson);

            await _teamRepository.AddAsync(team);

            return(await _teamRepository.UnitOfWork.SaveEntitiesAsync());
        }
        public async Task <Guid> Handle(CreateTeamCommand request, CancellationToken cancellationToken)
        {
            var team = Team.CreateNew(request.Name, request.Description, request.Logo, request.Manager, request.League,
                                      request.Country, request.FormedYear, request.Facebook, request.Instagram, request.Stadium, request.ExternalId);

            await _teamRepository.AddAsync(team);

            return(team.Id.Value);
        }
Esempio n. 5
0
        public async Task TeamRepository_AddTeam_Added_NotFail_Test()
        {
            var context  = new MyCompanyContext();
            int expected = context.Teams.Count() + 1;

            var employeeId = context.Employees.FirstOrDefault().EmployeeId;
            var teamId     = context.Teams.Select(e => e.TeamId).Max() + 1;
            var Team       = new Team()
            {
                TeamId    = teamId,
                ManagerId = employeeId,
            };
            await target.AddAsync(Team);

            int actual = context.Teams.Count();

            Assert.AreEqual(expected, actual);
        }
        public async Task <IActionResult> Create([FromBody] DTO.Team.Input.Team team)
        {
            var teamResult = await _teamRepository.AddAsync(new Models.Team.Team()
            {
                Name   = team.Name,
                ClubId = team.ClubId
            });

            var result = AutoMapper.Mapper.Map <DTO.Team.Output.Team>(teamResult);

            return(Ok(result));
        }
        public async Task <IActionResult> Create([Bind("Name")] Team team)
        {
            if (ModelState.IsValid)
            {
                await _teamRepository.AddAsync(team);

                await _sharedRepository.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            return(View(team));
        }
Esempio n. 8
0
        public async Task HandleAsync(AddTeam command)
        {
            if (command.Team == null)
            {
                throw new ServiceException(ErrorCodes.PustyRequest, "Post request add/team is empty");
            }
            if (command.Team.Workers.Count == 0)
            {
                throw new ServiceException(ErrorCodes.NiepoprawnyFormat, "Wybierz przynajmnniej jedego pracownika");
            }
            var team = _mapper.Map <Core.Models.Team>(command.Team);

            team.TeamID = Guid.NewGuid();
            await _teamRepository.AddAsync(team);
        }
Esempio n. 9
0
        public async Task <TeamViewModel> CreateTeamAsync(TeamViewModel teamViewModel)
        {
            var mapped = _mapper.Map <Team>(teamViewModel);

            if (mapped == null)
            {
                throw new Exception($"TeamModel entity could not be mapped");
            }

            var team = await _teamRepository.AddAsync(mapped);

            var mappedViewModel = _mapper.Map <TeamViewModel>(team);

            return(mappedViewModel);
        }
Esempio n. 10
0
        public async Task <TeamResponse> SaveAsync(Team team)
        {
            try
            {
                await _teamRepository.AddAsync(team);

                await _unitOfWork.CompleteAsync();

                return(new TeamResponse(team));
            }
            catch (Exception ex)
            {
                // Do some logging stuff
                return(new TeamResponse($"An error occurred when saving the team: {ex.Message}"));
            }
        }
Esempio n. 11
0
        public async Task <ActionResult <CreateTeamResponse> > CreateTeam([FromBody] CreateTeamRequest createTeamRequest, CancellationToken cancellationToken)
        {
            var team = new Team()
            {
                Name      = createTeamRequest.Name,
                FoundedIn = createTeamRequest.FoundedIn
            };
            await _teamsRepository.AddAsync(team, cancellationToken);

            var response = new CreateTeamResponse
            {
                Team = _mapper.Map <TeamDto>(team)
            };

            return(Ok(response));
        }
Esempio n. 12
0
        public async Task <IActionResult> Create([FromBody] TeamCreateDto team)
        {
            var country = await _countryRepository.GetByIdAsync(team.CountryId);

            if (country == null)
            {
                return(BadRequest($"Invalid country Id { team.CountryId }"));
            }

            var newTeam = new Team(team.Name, country);

            await _teamRepository.AddAsync(newTeam);

            await _unitOfWork.Commit();

            return(Ok());
        }
Esempio n. 13
0
    public async Task <ActionResult <DtoTeam> > Add([FromBody] DtoTeam dtoTeam)
    {
        log.LogInformation("Adding new dtoTeam {dtoTeam}", dtoTeam);
        if (!ModelState.IsValid)
        {
            return(BadRequest(getModelStateErrorMessage()));
        }

        if (dtoTeam.ID != 0)
        {
            return(BadRequest("Cannot add with a valid id"));
        }

        var team    = mapper.Map <Team>(dtoTeam);
        var newTeam = await teamRepository.AddAsync(team);

        return(mapper.Map <DtoTeam>(newTeam));
    }
Esempio n. 14
0
        public async Task <Organisation> RegisterAsync(OrganisationRegistration organisationContract)
        {
            if (await repository.ExistsByAsync(o => o.Id == organisationContract.Id))
            {
                throw new NameAlreadyUsedException(organisationContract.Name);
            }
            var organisationEntity = organisationContract.ToEntity();

            organisationEntity = await repository.AddAsync(organisationEntity);


            var user = GeneratePasswordAndAttachAdminRole(organisationContract.AdminUser, organisationContract.Id);

            user.CreatedAt = DateTime.Now;
            user           = await userRepository.AddAsync(user);

            var administrationTeam = new Domain.Entities.Team
            {
                Name           = "org-admin",
                TeamCode       = "org-admin",
                OrganisationId = organisationContract.Id,
                CreatedAt      = DateTime.Now
            };

            administrationTeam.Users.Add(new Domain.Entities.TeamUser(user));

            administrationTeam = await teamRepository.AddAsync(administrationTeam);

            user.TeamsPermissions.Add(new Domain.Entities.TeamPermission
            {
                TeamCode = administrationTeam.TeamCode,
                IsOwner  = true
            });
            user = await userRepository.UpdateAsync(user);

            return(organisationEntity.ToContract());
        }
Esempio n. 15
0
        public async Task <ApiResponse <TeamDto> > CreateTeamAsync(TeamDto dto)
        {
            try
            {
                var projectFound = await _projectRepository.GetByIdAsync(dto.ProjectId);

                if (projectFound == null)
                {
                    _logger.LogWarning("Failed to found project by id {0}", dto.ProjectId);
                    return(new ApiResponse <TeamDto>()
                    {
                        StatusCode = 400,
                        IsSuccess = false,
                        ResponseException = new ApiError(ErrorCode.ProjectNotFound, ErrorCode.ProjectNotFound.GetDescription())
                    });
                }
                var entityToAdd = _teamMapper.MapToEntity(dto);
                entityToAdd = await _teamRepository.AddAsync(entityToAdd);

                if (entityToAdd != null)
                {
                    return(new ApiResponse <TeamDto>(dto));
                }
                _logger.LogWarning("Failed to create entity {0}", JsonConvert.SerializeObject(dto));
                return(new ApiResponse <TeamDto>()
                {
                    StatusCode = 400,
                    IsSuccess = false,
                    ResponseException = new ApiError(ErrorCode.TeamCreationFailed, ErrorCode.TeamCreationFailed.GetDescription())
                });
            }
            catch (Exception ex)
            {
                _logger.LogWarning(ex, "An error occured while creating new team {0} ", JsonConvert.SerializeObject(dto));
                return(ApiResponse <TeamDto> .InternalError());
            }
        }
Esempio n. 16
0
 public async Task AddTeamAsync(Team newTeam)
 {
     await _teamRepository.AddAsync(_mapper.Map <DataRepository.DataEntities.TeamProfile>(newTeam));
 }
Esempio n. 17
0
 public async Task AddAsync(Team item)
 {
     item.TeamId = Guid.NewGuid().ToString();
     await _teamRepository.AddAsync(item);
 }