コード例 #1
0
        public HotelInfoViewModel(HotelInfo info)
        {
            Name             = info.HotelName;
            ID               = info.HotelID;
            Avatar           = new ImageViewModel(info.ImgUrl);
            ConditionPercent = (int)info.Condition;
            Condition        = (double)info.Condition;
            RoomsDescription = prepareRoomDescription(info.HotelRoomInfos);
            HotelRights      = info.HotelRights;
            RegionID         = info.RegionID;
            RegionName       = info.RegionName;
            CountryID        = info.CountryID;
            CountryName      = info.CountryName;
            OwnerID          = info.OwnerID;
            OwnerName        = info.OwnerName;


            Menu = prepareMenu();

            ConditionColor = ColorInterpolator
                             .Lerp(
                Condition / 100.0,
                Color.Red,
                Color.Orange,
                Color.Green).ToHex();

            if (HotelRights.AnyRights)
            {
                AvatarChange = new AvatarChangeViewModel(ID);
            }
        }
コード例 #2
0
        public CitizenInfoViewModel(Entities.Citizen citizen, IFriendService friendService)
        {
            var entity = citizen.Entity;

            CitizenName = entity.Name;
            CitizenID   = entity.EntityID;
            Avatar      = new ImageViewModel(entity.ImgUrl);


            var region  = citizen.Entity.GetCurrentRegion();
            var country = citizen.Entity.GetCurrentCountry();

            RegionName             = region.Name;
            RegionID               = region.ID;
            CountryName            = country.Entity.Name;
            CountryID              = country.ID;
            CitizenshipCountryID   = citizen.CitizenshipID;
            CitizenshipCountryName = Persistent.Countries.GetById(CitizenshipCountryID).Entity.Name;

            if (citizen.CompanyEmployee != null)
            {
                WorkingCompanyID   = citizen.CompanyEmployee.CompanyID;
                WorkingCompanyName = citizen.CompanyEmployee.Company.Entity.Name;
            }
            if (citizen.PartyMember != null)
            {
                PartyID   = citizen.PartyMember.PartyID;
                PartyName = citizen.PartyMember.Party.Entity.Name;
            }

            IsUnderControl = citizen.ID == SessionHelper.CurrentEntity.EntityID;
            if (IsUnderControl)
            {
                AvatarChange = new AvatarChangeViewModel(citizen.ID);
            }
            MilitaryRankReadable = StringUtils.FirstToUpper(MilitaryRankEnumExtensions.GetRankForMilitaryRank((double)citizen.MilitaryRank).ToHumanReadable());

            var currentCitizen = SessionHelper.CurrentEntity.Citizen;

            friendshipInit(citizen, friendService, currentCitizen);
            createMenu();
        }
コード例 #3
0
        public NewspaperInfoViewModel(Newspaper newspaper, INewspaperService newspaperService) : base(newspaper.Entity)
        {
            CountryName = newspaper.Country.Entity.Name;
            CountryID   = newspaper.CountryID;

            NewspaperRights = newspaperService.GetNewspaperRights(newspaper, SessionHelper.CurrentEntity, SessionHelper.LoggedCitizen);

            var productRepository = DependencyResolver.Current.GetService <IProductRepository>();

            InventoryCapacity = newspaper.Entity.Equipment.ItemCapacity;
            PaperCount        = newspaper.Entity.GetEquipmentItem(ProductTypeEnum.Paper, 1, productRepository).Amount;

            var owner = newspaper.Owner;

            OwnerID   = owner.EntityID;
            OwnerName = owner.Name;

            CanSwitch = NewspaperRights == NewspaperRightsEnum.Full;

            createMenu();

            AvatarChange = new AvatarChangeViewModel(newspaper.ID);
        }
コード例 #4
0
        public CompanyInfoViewModel(Company company)
            : base(SessionHelper.Session)
        {
            var companyService   = DependencyResolver.Current.GetService <ICompanyService>();
            var regionRepository = DependencyResolver.Current.GetService <IRegionRepository>();

            CompanyRights = companyService.GetCompanyRights(company, SessionHelper.CurrentEntity, SessionHelper.LoggedCitizen);

            var entity = company.Entity;

            IsEntityThisCompany = SessionHelper.CurrentEntity.EntityID == company.ID;

            Avatar      = new ImageViewModel(entity.ImgUrl);
            CompanyID   = entity.EntityID;
            CompanyName = entity.Name;
            Queue       = (double)company.Queue;
            Stock       = company.GetProducedProductItem().Amount;
            Quality     = company.Quality;

            OwnerName = company.Owner?.Name;
            OwnerID   = company.OwnerID;

            var region  = company.Region;
            var country = region.Country;

            RegionName  = region.Name;
            RegionID    = region.ID;
            CountryName = country.Entity.Name;
            CountryID   = country.ID;

            processWorkButton(company);


            CompanyTypeEnum = (CompanyTypeEnum)company.CompanyTypeID;

            IsRawCompany = company.CompanyTypeID == (int)CompanyTypeEnum.Producer;
            if (IsRawCompany)
            {
                ResourceTypeEnum resourceType = companyService.GetResourceTypeForProduct((ProductTypeEnum)company.ProductID);
                var resource = regionRepository.GetResourceForRegion(company.RegionID, resourceType);
                if (resource != null)
                {
                    switch (resource.ResourceQuality)
                    {
                    case 1:
                        Fertility = "Low"; break;

                    case 2:
                        Fertility = "Medium"; break;

                    case 3:
                        Fertility = "High"; break;

                    case 4:
                        Fertility = "Abundant"; break;
                    }
                }
            }

            if (CompanyRights.CanUpgradeCompany)
            {
                CanShowUpgradeButton = companyService.IsUpgradeAble(company);
                if (CanShowUpgradeButton)
                {
                    var canUpgradeResult = companyService.CanUpgradeCompany(company, SessionHelper.CurrentEntity, SessionHelper.LoggedCitizen);

                    if (canUpgradeResult.IsError)
                    {
                        IsUpgradeButtonDisabled     = true;
                        UpgradeButtonDisabledReason = canUpgradeResult.ToString(",");
                    }
                    else
                    {
                        UpgradeCost             = companyService.GetUpgradeCost(company);
                        UpgradeConstructionCost = companyService.GetUpgradeConstructionPointsNeeded(company);
                    }
                }
            }

            if (CompanyRights.CanSwitch)
            {
                AvatarChange = new AvatarChangeViewModel(company.ID);
            }

            createMenu(company);
        }
コード例 #5
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();
        }