public static async Task <ValidatedView> UpdateAccount(AccountView accountView) { try { AccountModel accountModel = await Model <AccountModel> .AsQueryable() .Where(x => x.ID == accountView.ID).FirstOrDefault(); if (accountModel == null) { return(ValidatedView.Invalid(ErrorCode.ACCOUNT_NOT_FOUND)); } bool success = true; ReplaceOneResult result = await Model <AccountModel> .AsCollection() .ReplaceOneAsync(x => x.ID == accountView.ID, Mapper <AccountView> .Map(accountView, accountModel)); success &= result.IsModifiedCountAvailable && result.ModifiedCount == 1; ValidatedView validatedHangarResultView = await HangarService .UpdateHangar(accountView.ID, accountView.CurrentHangar); if (!validatedHangarResultView.IsValid) { GameContext.Logger.LogInformation($"Player: '{accountView.ID}': {validatedHangarResultView.Message}"); } success &= validatedHangarResultView.IsValid; ValidatedView validatedVaultResultView = await UpdateVault(accountView.ID, accountView.Vault); if (!validatedVaultResultView.IsValid) { GameContext.Logger.LogInformation($"Player: '{accountView.ID}': {validatedVaultResultView.Message}"); } success &= validatedVaultResultView.IsValid; ValidatedView validatedCooldownResultView = await UpdateCooldown(accountView.ID, accountView.Cooldown); if (!validatedCooldownResultView.IsValid) { GameContext.Logger.LogInformation($"Player: '{accountView.ID}': {validatedCooldownResultView.Message}"); } success &= validatedCooldownResultView.IsValid; if (success) { return(ValidatedView.Valid()); } } catch (Exception e) { GameContext.Logger.LogError(e); } return(ValidatedView.Invalid(ErrorCode.OPERATION_FAILED)); }
public static async Task <ValidatedView <AccountView> > RetrieveAccount(int accountId) { try { AccountModel accountModel = await Model <AccountModel> .AsQueryable() .FirstOrDefault(x => x.ID == accountId); if (accountModel == null) { return(ValidatedView <AccountView> .Invalid(ErrorCode.ACCOUNT_NOT_FOUND)); } AccountView accountView = Mapper <AccountModel> .Map <AccountView>(accountModel); accountView.GGRings = 64; ValidatedView <HangarView> validatedHangarView = await HangarService.RetrieveHangar(accountModel.ID, accountModel.ActiveShipID); if (!validatedHangarView.IsValid) { return(ValidatedView <AccountView> .Invalid(validatedHangarView.Message)); } accountView.CurrentHangar = validatedHangarView.Object; ValidatedView <VaultView> validatedVaultView = await RetrieveVault(accountId); if (!validatedVaultView.IsValid) { return(ValidatedView <AccountView> .Invalid(validatedVaultView.Message)); } accountView.Vault = validatedVaultView.Object; ValidatedView <CooldownView> validatedCooldownView = await RetrieveCooldown(accountId); if (!validatedCooldownView.IsValid) { return(ValidatedView <AccountView> .Invalid(validatedCooldownView.Message)); } accountView.Cooldown = validatedCooldownView.Object; accountView.Clan = new ClanOverview(); ValidatedView <ClanOverview> validatedClanOverview = await ClanService.RetrieveClanOverviewFromMember(accountId); if (validatedClanOverview.IsValid && validatedClanOverview.Object != null) { accountView.Clan = validatedClanOverview.Object; } return(ValidatedView <AccountView> .Valid(accountView)); } catch (Exception e) { GameContext.Logger.LogError(e); } return(ValidatedView <AccountView> .Invalid(ErrorCode.OPERATION_FAILED)); }