public CongressMembersListViewModel(List <Entities.Congressman> congressmen, Entities.Party party)
        {
            PartyName = party?.Entity.Name ?? "No party";

            foreach (var congressman in congressmen)
            {
                Members.Add(new CongressMemberViewModel(congressman));
            }
        }
Example #2
0
        public PartyInfoViewModel(Entities.Party party)
        {
            var citizen = SessionHelper.LoggedCitizen;
            var entity  = SessionHelper.CurrentEntity;

            var           isActingAsParty = entity.EntityID == party.ID;
            PartyRoleEnum userPartyRole   = PartyRoleEnum.NotAMember;

            if (citizen.PartyMember != null && citizen.PartyMember.PartyID == party.ID)
            {
                userPartyRole = (PartyRoleEnum)citizen.PartyMember.PartyRoleID;
            }

            PartyAvatar     = new ImageViewModel(party.Entity.ImgUrl);
            PartyName       = party.Entity.Name;
            PartyCountry    = party.Country.Entity.Name;
            JoinMethod      = (JoinMethodEnum)party.JoinMethodID;
            PartyRole       = userPartyRole;
            PartyID         = party.ID;
            IsActingAsParty = isActingAsParty;

            MemberCount      = party.PartyMembers.Count;
            CongressmenCount = party.PartyMembers.Where(pm => pm.Citizen.Congressmen.Any(c => c.CountryID == party.CountryID)).Count();

            if (entity.GetEntityType() == EntityTypeEnum.Citizen && PartyRole == PartyRoleEnum.NotAMember)
            {
                var partyService = DependencyResolver.Current.GetService <IPartyService>();
                if (party.JoinMethodID == (int)JoinMethodEnum.Invite)
                {
                    var invite = citizen
                                 .PartyInvites.FirstOrDefault(i => i.PartyID == party.ID);
                    if (invite != null)
                    {
                        CanAcceptJoinOffer = true;
                        InviteID           = invite.ID;
                    }
                }
                else if (party.JoinMethodID == (int)JoinMethodEnum.Request)
                {
                    var request = citizen.PartyJoinRequests.FirstOrDefault(i => i.PartyID == party.ID);
                    if (request != null)
                    {
                        HasSendJoinRequest = true;
                        RequestID          = request.ID;
                    }
                    else if (partyService.CanSendJoinRequest(citizen, party, message: "").isSuccess)
                    {
                        CanSendJoinRequest = true;
                    }
                }
            }

            if (PartyRole >= PartyRoleEnum.Manager)
            {
                AvatarChange = new AvatarChangeViewModel(party.ID);
            }

            CanSeeInvites  = JoinMethod == JoinMethodEnum.Invite && PartyRole >= PartyRoleEnum.Manager;
            CanSeeRequests = JoinMethod == JoinMethodEnum.Request && PartyRole >= PartyRoleEnum.Manager;

            createMenu();
        }