Пример #1
0
        private void CreateNewPlayerCareer(long userId, long newTeamId, DateTime currentDT)
        {
            PlayerCareerRepository.Includes.Add(r => r.Team.PlayerCareers);

            var carrersForUpdating = PlayerCareerRepository.GetAll()
                                     .Where(r => r.UserId == userId && r.CareerDateEnd == null).ToList();

            foreach (var item in carrersForUpdating)
            {
                if (item.IsCaptain == true)
                {
#warning Using to prevent deactivating default team
                    if (item.Team.IsDefault == true)
                    {
                        throw new Abp.UI.UserFriendlyException("Unallowed action!",
                                                               "Captain of default team can not leave it. This action will be available after transfering captaincy to another player.");
                    }

                    var newCaptain = item.Team.CurrentPlayers.FirstOrDefault(r => !r.IsCaptain);
                    if (newCaptain == null)
                    {
                        //deactivate team
                        item.Team.IsActive = false;
                        TeamRepository.Update(item.Team);
                    }
                    else
                    {
                        newCaptain.IsCaptain = true;
                    }
                }
                item.CareerDateEnd = currentDT;
                item.IsCaptain     = false;
                PlayerCareerRepository.Update(item);
            }

            PlayerCareer newPlayerCareer = new PlayerCareer()
            {
                CareerDateEnd   = null,
                CareerDateStart = currentDT,
                IsCaptain       = false,
                TeamId          = newTeamId,
                UserId          = userId,
                IsActive        = true,
            };
            PlayerCareerRepository.Insert(newPlayerCareer);

            PlayerCareerRepository.Includes.Clear();
        }
Пример #2
0
        public CreateOutput <TeamRequestDto, long> Create(CreateTeamRequestInput input)
        {
            TeamRequest newTeamRequestEntity;

            try
            {
                long teamId = PlayerCareerRepository
                              .Single(r => r.UserId == (Session.UserId ?? 0) && r.CareerDateEnd == null).TeamId;

                newTeamRequestEntity = new TeamRequest()
                {
                    InvitedUserId = input.InvitedUserId,
                    TeamId        = teamId
                };

                if (!TeamRequestPolicy.CanCreateEntity(newTeamRequestEntity))
                {
                    throw new Exception();
                }
            }
            catch
            {
                throw new CityQuestPolicyException(CityQuestConsts.CQPolicyExceptionCreateDenied, "\"TeamRequest\"");
            }

            TeamRequestRepository.Includes.Add(r => r.LastModifierUser);
            TeamRequestRepository.Includes.Add(r => r.CreatorUser);
            TeamRequestRepository.Includes.Add(r => r.InvitedUser);
            TeamRequestRepository.Includes.Add(r => r.Team);

            TeamRequestDto newTeamRequestDto = (TeamRequestRepository.Insert(newTeamRequestEntity)).MapTo <TeamRequestDto>();

            TeamRequestRepository.Includes.Clear();

            return(new CreateOutput <TeamRequestDto, long>()
            {
                CreatedEntity = newTeamRequestDto
            });
        }