public async Task <IActionResult> LockSeat() { var lockSeatParams = new LockSeatParams { SelectedWagon = new WagonAvailableSeatCount { SelectionHint = null, WagonName = "5 ستاره فدك با عصرانه", CircularNumberSerial = 356, RateCode = 89, PathCode = 1, WagonType = 604, TrainNumber = 346, CircularPeriod = 980301, ExitTime = "18:50:00", MoveDate = new DateTime(2019, 12, 19, 00, 00, 00), IsCompartment = true, CompartmentCapicity = 4, Degree = 1, Capacity = 16.0M, Cost = 1400000, CountingAll = 16, HasAirConditioning = true, HasMedia = true, FullPrice = 1899500, TimeOfArrival = "06:00", RetStatus = 1, DisabledReason = "", SoldCount = 0, RationCode = 2, MinutesToExitDateTime = 4769 }, FromStation = 1, ToStation = 191, Gender = (int)Gender.Family, SeatCount = 1, SellMaster = 1, IsExclusiveCompartment = false }; var token = (await _db.AuthTokens.ToListAsync()).SingleOrDefault(); if (await _fadakTrainApi.ValidateTokenWithRequestAsync(token.Value, Company.Fadak)) { var res = await _fadakTrainApi.LockSeatAsync(token.Value, lockSeatParams, Company.Fadak); if (res.Status) { return(Ok(res)); } else { if (res.Unauthorized) { //login again return(Unauthorized(res)); } else { return(BadRequest(res)); } } } else { return(Unauthorized("دوباره لاگین کنید"));; } }
/// <summary> /// /// </summary> /// <param name="authToken"></param> /// <param name="lockSeatParams"></param> /// <param name="company"></param> /// <returns></returns> public async Task <ServiceResult <LockSeatResult> > LockSeatAsync(string authToken, LockSeatParams lockSeatParams, Company company) { var result = new ServiceResult <LockSeatResult>(); _http.DefaultRequestHeaders.Clear(); _http.DefaultRequestHeaders.Add("Authorization", Constants.PreToken + authToken); _content = new StringContent( JsonConvert.SerializeObject(lockSeatParams), UTF8Encoding.UTF8, "application/json"); _response = await _http.PostAsync(company.ToBaseUrl(ApiUrl.LockSeat), _content); if (_response.IsSuccessStatusCode) { var res = JsonConvert.DeserializeObject <IrTrainResult <LockSeatResult> >(await _response.Content.ReadAsStringAsync()); error = res.ExceptionId.GetSystemErrorMessage(res.ExceptionMessage); if (res.ExceptionId == 0 && res.ExceptionMessage == null) { result.Status = true; result.Result = res.Result; } else { result.Status = false; result.Message = error; } } else if (_response.StatusCode == HttpStatusCode.Unauthorized) { result.Status = false; result.Unauthorized = true; result.Message = "مشکل در اعتبار سنجی دوباره لاگین کنید"; } else { result.Status = false; result.Message = error; } return(result); }