public bool SaveHangar(HangarDetailView hangar, out string message, out HttpStatusCode code) { message = ErrorCode.CONNECTION_FAILED; Api().CreateAuthenticated($"api/hangar", "post") .WithBody(hangar) .Execute(out HttpWebResponse response); if (response.TryGetStatusCode(out code) && code == HttpStatusCode.OK) { ValidatedView validatedView = response.GetReponseString() .DeserializeJsonSafe <ValidatedView>(); if (validatedView == null) { message = ErrorCode.ERROR_WHILE_READING_RESULT; } else { message = validatedView.Message; return(validatedView.IsValid); } } return(false); }
public bool RetrieveHangarDetailView(int hangarId, out HangarDetailView hangarDetailView, out string message, out HttpStatusCode code) { message = ErrorCode.CONNECTION_FAILED; hangarDetailView = null; Api().CreateAuthenticated($"api/hangar/{hangarId}", "get") .Execute(out HttpWebResponse response); if (response.TryGetStatusCode(out code) && code == HttpStatusCode.OK) { ValidatedView <HangarDetailView> validatedView = response.GetReponseString() .DeserializeJsonSafe <ValidatedView <HangarDetailView> >(); if (validatedView == null) { message = ErrorCode.ERROR_WHILE_READING_RESULT; } else { hangarDetailView = validatedView.Object; message = validatedView.Message; return(validatedView.IsValid); } } return(false); }
public async Task <IActionResult> Post([FromBody] HangarDetailView hangarDetailView) { if (HttpContext.TryGetCurrentSession(out AccountSessionView accountSessionView)) { return(Ok(await HangarService.UpdateHangar(accountSessionView.AccountID, hangarDetailView))); } return(Ok(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 <HangarDetailView> > RetrieveHangarDetailView(int accountId, int shipId) { try { ValidatedView <HangarView> validatedHangarView = await RetrieveHangar(accountId, shipId); if (!validatedHangarView.IsValid) { return(ValidatedView <HangarDetailView> .Invalid(validatedHangarView.Message)); } HangarDetailView hangarDetailView = Mapper <HangarView> .Map <HangarDetailView>(validatedHangarView.Object); hangarDetailView.IsActive = await Model <AccountModel> .AsQueryable() .Any(x => x.ID == accountId && x.ActiveShipID == shipId); return(ValidatedView <HangarDetailView> .Valid(hangarDetailView)); } catch (Exception e) { GameContext.Logger.LogError(e); } return(ValidatedView <HangarDetailView> .Invalid(ErrorCode.OPERATION_FAILED)); }
public bool RetrieveHangarDetailView(int hangarId, out HangarDetailView hangarDetailView, out string message) { return(RetrieveHangarDetailView(hangarId, out hangarDetailView, out message, out _)); }
public bool SaveHangar(HangarDetailView hangar, out string message) { return(SaveHangar(hangar, out message, out _)); }