public void DismissPresidentAndManagers(Entities.Party party) { foreach (var management in party.PartyMembers.Where(m => m.PartyRoleID >= (int)PartyRoleEnum.Manager)) { management.PartyRoleID = (int)PartyRoleEnum.Member; } }
public PartyCongressCandidateSectionViewModel(Entities.Party party, IPartyService partyService) : base(party.Country) { Info = new PartyInfoViewModel(party); PartyID = party.ID; var entity = SessionHelper.CurrentEntity; var lastVoting = party.Country.GetLastCongressCandidateVoting(); var candidate = lastVoting.CongressCandidates.FirstOrDefault(c => c.CandidateID == entity.EntityID); if (candidate != null) { PlayerCongressCandidateStatus = (CongressCandidateStatusEnum)candidate.CongressCandidateStatusID; } if (entity.Citizen != null) { if (partyService.CanAcceptCongressCandidates(entity.Citizen, party)) { CanAcceptCandidates = true; } if (partyService.CanCandidateToCongress(entity.Citizen, party)) { CanCandidate = true; CandidateRegionName = entity.GetCurrentRegion().Name; } } }
private void ActivatePresidentVoting(Entities.Party party) { var notStartedVoting = party.PartyPresidentVotings.First(v => v.VotingStatusID == (int)VotingStatusEnum.NotStarted); notStartedVoting.VotingStatusID = (int)VotingStatusEnum.Ongoing; partyRepository.SaveChanges(); }
private PartyPresidentVoting CreateNewPresidentVoting(Entities.Party party, int votingDay) { PartyPresidentVoting voting = new PartyPresidentVoting() { Party = party, VotingDay = votingDay, VotingStatusID = (int)VotingStatusEnum.NotStarted, }; partyRepository.AddPartyPresidentVoting(voting); partyRepository.SaveChanges(); return(voting); }
public PartyMemberListViewModel(Entities.Party party, List <PartyMember> members) { Info = new PartyInfoViewModel(party); var president = members.FirstOrDefault(m => m.PartyRoleID == (int)PartyRoleEnum.President); if (president != null) { President = new SmallEntityAvatarViewModel(president.Citizen.Entity); } Managers = members.Where(m => m.PartyRoleID == (int)PartyRoleEnum.Manager) .Select(m => new SmallEntityAvatarViewModel(m.Citizen.Entity)).ToList(); Members = members.Where(m => m.PartyRoleID == (int)PartyRoleEnum.Member) .Select(m => new SmallEntityAvatarViewModel(m.Citizen.Entity)).ToList(); }
public ManagePartyViewModel(Entities.Party party, List <PartyRole> partyRoles, List <JoinMethod> joinMethods) { OverallInfo = new PartyInfoViewModel(party); this.UserPartyRole = OverallInfo.PartyRole; this.JoinMethod = (JoinMethodEnum)party.JoinMethodID; this.PartyAvatar = OverallInfo.PartyAvatar; this.PartyID = party.ID; partyRoles = partyRoles.Where(r => r.ID < (int)OverallInfo.PartyRole).ToList(); foreach (var member in party.PartyMembers .Where(m => m.PartyRoleID < (int)UserPartyRole) .ToList()) { Members.Add(new ManagePartyMemberViewModel(member)); } PartyRoles = CreateSelectList(partyRoles, x => ((PartyRoleEnum)x.ID).ToHumanReadable(), x => x.ID, true); JoinMethods = CreateSelectList(joinMethods); }
public ViewPartyViewModel(Entities.Party party) { InviteSelector = Select2AjaxViewModel.Create <CitizenController>(c => c.GetCitizens(null), "citizenID", null, ""); InviteSelector.OnChange = "inviteCitizen"; OverallInfo = new PartyInfoViewModel(party); JoinMethod = (JoinMethodEnum)party.JoinMethodID; PartyRole = OverallInfo.PartyRole; PartyID = party.ID; var members = party.PartyMembers .ToList(); var president = members .FirstOrDefault(m => m.PartyRoleID == (int)PartyRoleEnum.President); if (president != null) { President = new ShortEntityInfoViewModel(president.Citizen.Entity); } Managers = members .Where(m => m.PartyRoleID == (int)PartyRoleEnum.Manager) .Take(3) .Select(m => new ShortEntityInfoViewModel(m.Citizen.Entity)) .ToList(); if (Managers.Count < 3) { Members = members .Where(m => m.PartyRoleID == (int)PartyRoleEnum.Member) .Take(3 - Managers.Count) .Select(m => new ShortEntityInfoViewModel(m.Citizen.Entity)) .ToList(); } OtherMemberCount = members.Count() - Managers.Count - Members.Count - (president == null ? 0 : 1); var partyVoting = party.PartyPresidentVotings.Last(); var entity = SessionHelper.CurrentEntity; if (entity.EntityTypeID == (int)EntityTypeEnum.Citizen) { if (partyVoting.PartyPresidentCandidates.Any(c => c.CitizenID == entity.EntityID)) { CanStartAsCandidate = false; } } VotingDay = partyVoting.VotingDay; DaysLeft = Math.Abs(GameHelper.CurrentDay - VotingDay); var candidatesID = partyVoting.PartyPresidentCandidates .Select(c => c.CitizenID); VotingStatus = (VotingStatusEnum)partyVoting.VotingStatusID; IsCandidate = candidatesID.Contains(entity.EntityID); if (VotingStatus == VotingStatusEnum.NotStarted && entity.EntityTypeID == (int)EntityTypeEnum.Citizen && IsCandidate == false ) { CanCandidate = true; } if (VotingStatus == VotingStatusEnum.Ongoing) { if (partyVoting.PartyPresidentVotes.Any(v => v.CitizenID == entity.EntityID) == true) { Voted = true; } } var country = party.Country; var congressVoting = country.GetLastCongressCandidateVoting(); CongressCandidateVotingViewModel = new CongressCandidateVotingShortViewModel(congressVoting); InviteSelector.AddAdditionalData("partyid", PartyID); if (JoinMethod == JoinMethodEnum.Invite && PartyRole != PartyRoleEnum.NotAMember) { PendingInvites = party.PartyInvites.Count(); } }
void c_ClientPartyRequestInfo(object sender, ClientPartyRequestEventArgs e) { Client c = (Client)sender; PartyRequestInfo i = e.Info; Client asker = null; Client target = null; MapEngine mapEngine = GetMapEngine(c.MyCharacter.MapId); Client[] clients = GetClientsForChars(mapEngine.GetCharactersInRange(c.MyCharacter.Position, 150).ToArray()); target = GetClientByCharacterID(i.TargetID); asker = GetClientByCharacterID(i.AskerID); if (i.Type == PartyType.Normal) { if (i.Error == PartyError.None) { if (target.MyCharacter.Party != null) { i.Error = PartyError.AlreadyInParty; asker.Send(PacketManager.SendPartyAnswer(i)); return; } if (target.MyCharacter.Level >= asker.MyCharacter.Level - 10 && target.MyCharacter.Level <= asker.MyCharacter.Level + 10) { byte[] SendPartyRequest = PacketManager.SendPartyAnswer(i); target.Send(SendPartyRequest); } else { i.Error = PartyError.LevelDifference; byte[] SendLevelDifference = PacketManager.SendPartyAnswer(i); asker.Send(SendLevelDifference); } } if (i.Error == PartyError.Cancel) { asker.Send(PacketManager.SendPartyAnswer(i)); } if (i.Error == PartyError.Accept) { asker.Send(PacketManager.SendPartyAnswer(i)); asker.Send(PacketManager.SendPartyLeader(i)); target.Send(PacketManager.SendPartyLeader(i)); Party p = new Party { PartyID = asker.MyCharacter.CharacterId, Leader = asker.MyCharacter, Members = new List<Character>(), Type = i.Type }; p.Members.Add(asker.MyCharacter); p.Members.Add(target.MyCharacter); asker.MyCharacter.Party = p; target.MyCharacter.Party = p; asker.Send(PacketManager.SendAddPartyMember(p, target.MyCharacter)); asker.Send(PacketManager.SendParty(p)); target.Send(PacketManager.SendParty(p)); SendToClients(PacketManager.SendSpawnPlayers(asker.MyCharacter), clients); SendToClients(PacketManager.SendSpawnPlayers(target.MyCharacter), clients); } } if (i.Type == PartyType.Relation) { try { Friend f = asker.MyCharacter.FriendList.Single(x => x.FriendID == i.TargetID); if (f.RelationType == FriendAddTypes.Lover || f.RelationType == FriendAddTypes.TeacherStudent) { asker.Send(PacketManager.SendPartyAnswer(i)); asker.Send(PacketManager.SendPartyLeader(i)); target.Send(PacketManager.SendPartyLeader(i)); Party p = new Party { PartyID = asker.MyCharacter.CharacterId, Leader = asker.MyCharacter, Members = new List<Character>(), Type = i.Type }; p.Members.Add(asker.MyCharacter); p.Members.Add(target.MyCharacter); asker.MyCharacter.Party = p; target.MyCharacter.Party = p; asker.Send(PacketManager.SendAddPartyMember(p, target.MyCharacter)); asker.Send(PacketManager.SendParty(p)); target.Send(PacketManager.SendParty(p)); SendToClients(PacketManager.SendSpawnPlayers(asker.MyCharacter), clients); SendToClients(PacketManager.SendSpawnPlayers(target.MyCharacter), clients); } else throw new Exception(); } catch { i.Error = PartyError.LevelDifference; byte[] SendError = PacketManager.SendPartyAnswer(i); asker.Send(SendError); } } }
public PartyCongressCandidatesListViewModel(List <CongressCandidate> candidates, IPartyService partyService, Entities.Party party) : base(candidates) { PartyRole = PartyRoleEnum.NotAMember; if (SessionHelper.CurrentEntity.Citizen != null) { PartyRole = partyService.GetPartyRole(SessionHelper.LoggedCitizen, party); if (partyService.CanAcceptCongressCandidates(SessionHelper.CurrentEntity.Citizen, party)) { CanAcceptCandidates = true; } } }
public PartyJoinRequestsListViewModel(Entities.Party party, List <PartyJoinRequest> requests) { Info = new PartyInfoViewModel(party); Requests = requests.Select(request => new PartyJoinRequestsListItemViewModel(request)).ToList(); }
public PartySummaryViewModel(Entities.Party party, Session session) : base(session) { Avatar = new ImageViewModel(party.Entity.ImgUrl); Name = party.Entity.Name; PartyID = party.ID; }
public static byte[] SendLeaveParty(Party party, Character ch) { Packet p = new Packet(20); p.WriteInt(party.PartyID); p.WriteInt(ch.CharacterId); p.WriteByte((byte)party.Type); return p.GetWrittenBuffer(PacketIds.SendLeaveParty); }
public static byte[] SendKillParty(Party party) { Packet p = new Packet(20); p.WriteInt(party.PartyID); return p.GetWrittenBuffer(PacketIds.SendKillParty); }
public static byte[] SendChangePartyLeader(Party party) { Packet p = new Packet(20); p.WriteInt(party.PartyID); p.WriteInt(party.Leader.CharacterId); p.WriteByte((byte)party.Type); return p.GetWrittenBuffer(PacketIds.SendChangePartyLeader); }
public static byte[] SendAddPartyMember(Party party, Character member) { Packet p = new Packet(20); p.WriteInt(party.PartyID); // party ID p.WriteInt(member.CharacterId); p.WriteByte(member.Class); p.WriteString(member.Name); p.WriteShort(member.Level); p.WriteShort((short)member.Position.X); p.WriteShort((short)member.Position.Y); p.WriteInt(member.CurrentHp); p.WriteInt(member.MaxHp); return p.GetWrittenBuffer(PacketIds.SendAddPartyMember); }
public PartyPendingInviteListViewModel(Entities.Party party, List <Entity> citizens) { Info = new PartyInfoViewModel(party); CitizensWithInvites = citizens.Select(c => new SmallEntityAvatarViewModel(c)).ToList(); }
public static byte[] SendParty(Party party) { Packet p = new Packet(20); p.WriteInt(party.PartyID); p.WriteByte(party.MemberCount); p.WriteByte(1); // unknown foreach (Character ch in party.Members) { p.WriteInt(ch.CharacterId); p.WriteByte(2); // unknown p.WriteString(ch.Name); p.WriteShort(ch.Level); p.WriteShort(ch.Position.X); p.WriteShort(ch.Position.Y); p.WriteInt(ch.CurrentHp); p.WriteInt(ch.MaxHp); p.WriteInt(ch.MapId); } return p.GetWrittenBuffer(PacketIds.SendParty); }