static M() { // Interfaces Object = MetaObject.Instance; Cachable = MetaCachable.Instance; Deletable = MetaDeletable.Instance; Enumeration = MetaEnumeration.Instance; UniquelyIdentifiable = MetaUniquelyIdentifiable.Instance; Version = MetaVersion.Instance; Versioned = MetaVersioned.Instance; Printable = MetaPrintable.Instance; Localised = MetaLocalised.Instance; AccessControlledObject = MetaAccessControlledObject.Instance; DelegatedAccessControlledObject = MetaDelegatedAccessControlledObject.Instance; SecurityTokenOwner = MetaSecurityTokenOwner.Instance; ObjectState = MetaObjectState.Instance; Task = MetaTask.Instance; Transitional = MetaTransitional.Instance; TransitionalVersion = MetaTransitionalVersion.Instance; User = MetaUser.Instance; WorkItem = MetaWorkItem.Instance; // Classes Employment = MetaEmployment.Instance; Organisation = MetaOrganisation.Instance; Person = MetaPerson.Instance; Settings = MetaSettings.Instance; Singleton = MetaSingleton.Instance; Counter = MetaCounter.Instance; Media = MetaMedia.Instance; MediaContent = MetaMediaContent.Instance; PrintDocument = MetaPrintDocument.Instance; Template = MetaTemplate.Instance; TemplateType = MetaTemplateType.Instance; PreparedExtent = MetaPreparedExtent.Instance; PreparedFetch = MetaPreparedFetch.Instance; Country = MetaCountry.Instance; Currency = MetaCurrency.Instance; Language = MetaLanguage.Instance; Locale = MetaLocale.Instance; LocalisedText = MetaLocalisedText.Instance; AccessControl = MetaAccessControl.Instance; Login = MetaLogin.Instance; Permission = MetaPermission.Instance; Role = MetaRole.Instance; SecurityToken = MetaSecurityToken.Instance; AutomatedAgent = MetaAutomatedAgent.Instance; EmailMessage = MetaEmailMessage.Instance; Notification = MetaNotification.Instance; NotificationList = MetaNotificationList.Instance; TaskAssignment = MetaTaskAssignment.Instance; TaskList = MetaTaskList.Instance; UserGroup = MetaUserGroup.Instance; }
public override async Task <CloudScriptResponse> ExecuteAsync(CloudScriptRequest request, string[] urlArguments) { DateTime benginRequest = DateTime.UtcNow; if (IsClientValidRequest(request)) { var cloudData = new PlayFabFileDetails(MetaSettings.MetaDataStateFileName); if (await PlayFabApiHandler.GetPlayerTitleData(request.UserId, new List <PlayFabFileDetails>() { cloudData })) { MetaDataState metaDataState = null; //if file does not exist yet, create default for content, otherwise perfom Login Activies. if (cloudData.ExistOnServer) { metaDataState = MetaDataState.FromJson <MetaDataState>(cloudData.DataAsString); } else { metaDataState = new MetaDataState(); metaDataState.Consumables.AddConsumable(Consumable.GetByName <Consumable>(MetaSettings.HardCurrencyId), 100); metaDataState.Consumables.AddConsumable(Consumable.GetByName <Consumable>(MetaSettings.SoftCurrencyId), 3000); metaDataState.Consumables.AddConsumable(Consumable.GetByName <Consumable>(MetaSettings.EnergyId), 72); metaDataState.CreationDate = DateTime.UtcNow; var playerProfile = await PlayFabApiHandler.GetPlayerProfileInfo(request.UserId); if (playerProfile != null && playerProfile.Locations != null && playerProfile.Locations.LastOrDefault() != null) { switch (playerProfile.Locations.LastOrDefault().ContinentCode) { case PlayFab.ServerModels.ContinentCode.AF: case PlayFab.ServerModels.ContinentCode.AN: case PlayFab.ServerModels.ContinentCode.EU: metaDataState.MetaTimeZone = MetaTimeZone.EU; break; case PlayFab.ServerModels.ContinentCode.NA: case PlayFab.ServerModels.ContinentCode.SA: metaDataState.MetaTimeZone = MetaTimeZone.NA; break; case PlayFab.ServerModels.ContinentCode.AS: case PlayFab.ServerModels.ContinentCode.OC: metaDataState.MetaTimeZone = MetaTimeZone.ASIA; break; } metaDataState.CountryCode = playerProfile.Locations.LastOrDefault().CountryCode.ToString(); } metaDataState.ApplyDailyReset(); } if (metaDataState.NextDailyReset == DateTime.MinValue) { metaDataState.NextDailyReset = MetaSettings.GetNextDailyReset(metaDataState.MetaTimeZone, DateTime.UtcNow); } metaDataState.SyncLoginCalendar(); metaDataState.ServerDateTime = DateTime.UtcNow; PlayerStatus.AddEnergyToPlayer(metaDataState); if (DateTime.UtcNow > metaDataState.NextDailyReset) { metaDataState.ApplyDailyReset(); } if (request.CloudScriptMethod.Params.ContainsKey("DisplayName")) { metaDataState.ProfileName = request.CloudScriptMethod.Params["DisplayName"].ToString(); } cloudData.DataAsString = metaDataState.ToJson(); if (metaDataState.CountryCode == "CN") { return(new CloudScriptResponse() { ResponseCode = ResponseCode.Error }); } if (await PlayFabApiHandler.UploadPlayerTitleData(request.UserId, new List <PlayFabFileDetails>() { cloudData })) { var response = new CloudScriptResponse() { ResponseCode = ResponseCode.Success }; return(response); } } } return(new CloudScriptResponse() { ResponseCode = ResponseCode.Error }); }