public async Task <IActionResult> AddBike([FromBody] AddUpdateBikeRequest newBikeDetails) { if (!ModelState.IsValid) { return(new ContentResult { StatusCode = (int)HttpStatusCode.BadRequest, Content = JsonConvert.SerializeObject(ModelState.Values.SelectMany(v => v.Errors)) }); } // Ensure ownerUserId for bike is valid var checkOwnerResponse = await this._CheckOwnerUserIdIsValidVendor(newBikeDetails.OwnerUserId); if (checkOwnerResponse != null) { return(checkOwnerResponse); } string addBikeUrl = $"http://{_bikesService}/api/bikes"; var response = await HttpHelper.PostAsync(addBikeUrl, new StringContent( JsonConvert.SerializeObject(newBikeDetails), Encoding.UTF8, "application/json"), this.Request); if (response.IsSuccessStatusCode) { var createdBike = JsonConvert.DeserializeObject <Bike>(await response.Content.ReadAsStringAsync()); return(new JsonResult(createdBike)); } return(await HttpHelper.ReturnResponseResult(response)); }
public async Task <IActionResult> UpdateBike(string bikeId, [FromBody] AddUpdateBikeRequest newBikeDetails) { // Ensure ownerUserId for bike is valid var checkOwnerResponse = await this._CheckOwnerUserIdIsValidVendor(newBikeDetails.OwnerUserId); if (checkOwnerResponse != null) { return(checkOwnerResponse); } string getUpdateBikeUrl = $"http://{_bikesService}/api/bikes/{bikeId}"; var getResponse = await HttpHelper.GetAsync(getUpdateBikeUrl, this.Request); if (getResponse.IsSuccessStatusCode) { var existingBikeDetails = JsonConvert.DeserializeObject <Bike>(await getResponse.Content.ReadAsStringAsync()); var updatedBikeDetails = new AddUpdateBikeRequest { Manufacturer = string.IsNullOrEmpty(newBikeDetails.Manufacturer) ? existingBikeDetails.Manufacturer : newBikeDetails.Manufacturer, Model = string.IsNullOrEmpty(newBikeDetails.Model) ? existingBikeDetails.Model : newBikeDetails.Model, HourlyCost = newBikeDetails.HourlyCost ?? existingBikeDetails.HourlyCost, ImageUrl = newBikeDetails.ImageUrl ?? existingBikeDetails.ImageUrl, Type = string.IsNullOrEmpty(newBikeDetails.Type) ? existingBikeDetails.Type : newBikeDetails.Type, SuitableHeightInMeters = newBikeDetails.SuitableHeightInMeters ?? existingBikeDetails.SuitableHeightInMeters, MaximumWeightInKg = newBikeDetails.MaximumWeightInKg ?? existingBikeDetails.MaximumWeightInKg, OwnerUserId = existingBikeDetails.OwnerUserId }; var updateResponse = await HttpHelper.PutAsync(getUpdateBikeUrl, new StringContent( JsonConvert.SerializeObject(updatedBikeDetails), Encoding.UTF8, "application/json"), this.Request); if (updateResponse.IsSuccessStatusCode) { return(await GetBike(bikeId)); } return(await HttpHelper.ReturnResponseResult(updateResponse)); } return(await HttpHelper.ReturnResponseResult(getResponse)); }