public static async Task <ValidatedView> UpdateHangar(int accountId, HangarView hangarView) { if (!hangarView.IsValid(out string message)) { return(ValidatedView.Invalid(message)); } try { HangarModel hangarModel = Mapper <HangarView> .Map(hangarView, new HangarModel { AccountID = accountId }); hangarModel.Configuration_1 = Mapper <ConfigurationView> .Map <Configuration>(hangarView.Configuration_1); hangarModel.Configuration_2 = Mapper <ConfigurationView> .Map <Configuration>(hangarView.Configuration_2); ReplaceOneResult result = await Model <HangarModel> .AsCollection() .ReplaceOneAsync(x => x.AccountID == accountId && x.ShipID == hangarView.ShipID, hangarModel); if (result.IsModifiedCountAvailable && result.ModifiedCount == 1) { return(ValidatedView.Valid()); } } catch (Exception e) { GameContext.Logger.LogError(e); } return(ValidatedView.Invalid(ErrorCode.OPERATION_FAILED)); }
public static async Task <ValidatedView> UpdateHangar(int accountId, HangarDetailView hangarDetailView) { if (!hangarDetailView.IsValid(out string message)) { return(ValidatedView.Invalid(message)); } try { if (GameManager.Get(accountId, out PlayerController controller) && !controller.ZoneAssembly.CanEquip) { return(ValidatedView.Invalid(ErrorCode.EQUIPMENT_NOT_POSSIBLE)); } HangarModel hangarModel = await Model <HangarModel> .AsQueryable() .FirstOrDefault(x => x.AccountID == accountId && x.ShipID == hangarDetailView.ShipID); if (hangarModel == null) { return(ValidatedView <HangarView> .Invalid(ErrorCode.NO_HANGAR_FOUND)); } if (controller != null && controller.HangarAssembly.Ship.ID == hangarDetailView.ShipID) { HangarView hangarView = Mapper <HangarModel> .Map <HangarView>(hangarModel); hangarView.Configuration_1 = hangarDetailView.Configuration_1; hangarView.Configuration_2 = hangarDetailView.Configuration_2; UpdateHangarIngame(accountId, hangarView); } else { hangarModel.Configuration_1 = Mapper <ConfigurationView> .Map <Configuration>(hangarDetailView.Configuration_1); hangarModel.Configuration_2 = Mapper <ConfigurationView> .Map <Configuration>(hangarDetailView.Configuration_2); ReplaceOneResult result = await Model <HangarModel> .AsCollection() .ReplaceOneAsync(x => x.AccountID == accountId && x.ShipID == hangarDetailView.ShipID, hangarModel); } return(ValidatedView.Valid()); } catch (Exception e) { GameContext.Logger.LogError(e); } return(ValidatedView.Invalid(ErrorCode.OPERATION_FAILED)); }
public static async Task <ValidatedView> ActivateHangar(int accountId, int shipId) { try { if (GameManager.Get(accountId, out PlayerController controller) && !controller.ZoneAssembly.CanEquip) { return(ValidatedView.Invalid(ErrorCode.EQUIPMENT_NOT_POSSIBLE)); } HangarModel hangarModel = await Model <HangarModel> .AsQueryable() .FirstOrDefault(x => x.AccountID == accountId && x.ShipID == shipId); if (hangarModel == null) { return(ValidatedView <HangarView> .Invalid(ErrorCode.NO_HANGAR_FOUND)); } if (await Model <AccountModel> .AsQueryable() .Any(x => x.ID == accountId && x.ActiveShipID == shipId)) { return(ValidatedView.Invalid(ErrorCode.HANGAR_ALREADY_ACTIVE)); } if (controller != null) { HangarView hangarView = Mapper <HangarModel> .Map <HangarView>(hangarModel); hangarView.Configuration_1 = Mapper <Configuration> .Map <ConfigurationView>(hangarModel.Configuration_1); hangarView.Configuration_2 = Mapper <Configuration> .Map <ConfigurationView>(hangarModel.Configuration_2); UpdateHangarIngame(accountId, hangarView); } await Model <AccountModel> .AsCollection() .UpdateOneAsync(x => x.ID == accountId, new UpdateDefinitionBuilder <AccountModel>() .Set(x => x.ActiveShipID, shipId)); return(ValidatedView.Valid()); } catch (Exception e) { GameContext.Logger.LogError(e); } return(ValidatedView.Invalid(ErrorCode.OPERATION_FAILED)); }
public static async Task <ValidatedView <HangarView> > RetrieveHangar(int accountId, int shipId) { try { HangarModel hangarModel = await Model <HangarModel> .AsQueryable() .FirstOrDefault(x => x.AccountID == accountId && x.ShipID == shipId); if (hangarModel == null) { return(ValidatedView <HangarView> .Invalid(ErrorCode.NO_HANGAR_FOUND)); } HangarView hangarView = Mapper <HangarModel> .Map <HangarView>(hangarModel); hangarView.Configuration_1 = Mapper <Configuration> .Map <ConfigurationView>(hangarModel.Configuration_1); hangarView.Configuration_2 = Mapper <Configuration> .Map <ConfigurationView>(hangarModel.Configuration_2); return(ValidatedView <HangarView> .Valid(hangarView)); } catch (Exception e) { GameContext.Logger.LogError(e); } return(ValidatedView <HangarView> .Invalid(ErrorCode.OPERATION_FAILED)); }