Я создаю ионное приложение, которое позволяет проверять оборудование для таблиц "checkequipment", в котором хранятся идентификатор транспортного средства, дата checkID (первичный ключ) и "checkEquipmentLine": где хранится оборудование, statusid и checkequipmentID, все выполнено. через mvc asp.net api
Размещение чекового оборудования работает нормально, но добавление линий чекового оборудования не работает вообще, несмотря на то, что я пропускаю правильные значения. Я получаю сообщение об ошибке
HttpErrorResponse {headers: HttpHeaders, status: 409, statusText: "OK", url: "https://localhost:44365/api/CheckEquipmentLine", ok: false,…}
ошибка: null
заголовки: HttpHeaders {normalizedNames: Map (0), lazyUpdate: null, lazyInit: ƒ}
сообщение: «Реакция отказа Http для https://localhost:44365/api/CheckEquipmentLine: 409 OK»
name: "HttpErrorResponse"
ok: false
status: 409
statusText: "OK"
url: "https://localhost:44365/api/CheckEquipmentLine"
proto : HttpResponseBase
Push-код в сервисе API
AddCheckEquipment(VID) { //Fully works
let postData = {
"DateChecked": this.today.toISOString().substring(0, 10),
"VehicleID": VID
}
this.http.post(this.apiUrl+"/CheckEquipment", postData,{
headers: { 'Content-Type': 'application/json',
'Accept': 'application/json',
'Access-Control-Allow-Methods': 'Post'
}}).subscribe(data => {
console.log(data['_body']);
}, error => {
console.log(error);
});
}
AddCheckEquipmentLine(SID,EID, CEQ) { //not working
let postData = {
"EquipmentID": EID,
"CheckEquipmetStatusID": CEQ,
"CheckEqupmentID": SID
}
console.log("Equipment ID: " +postData.EquipmentID + " Status id: " + postData.CheckEquipmetStatusID + " Check Equipment ID " + postData.CheckEqupmentID); // is correct
this.http.post(this.apiUrl+"/CheckEquipmentLine", postData,{
headers: { 'Content-Type': 'application/json',
'Accept': 'application/json',
'Access-Control-Allow-Methods': 'Post'
}}).subscribe(data => {
console.log(data['_body']);
}, error => {
console.log(error);
});
}
код на странице ts
async CompleteCheck(){
if(!this.Registration){
this.noCar = "Please choose a car to do the service for";
}else{
this.api.AddCheckEquipment(this.Registration);
console.log("Check Equipment made");
this.api.getLastEquipmentCheckForCar(this.Registration).toPromise().then(response => {
this.SID = response;
this.SID = this.SID.CheckEquipmentID;
console.log(this.SID);
this.statuslist.forEach(element => {
console.log(element.id + " Status ID: " + element.statusID);
this.api.AddCheckEquipmentLine(this.Registration, element.id, element.statusID);
})
});
}
}
код в API
public IHttpActionResult PostCheckEquipmentLine(CheckEquipmentLine checkEquipmentLine)
{
db.Configuration.ProxyCreationEnabled = false;
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.CheckEquipmentLines.Add(checkEquipmentLine);
try
{
db.SaveChanges();
}
catch (DbUpdateException)
{
if (CheckEquipmentLineExists(checkEquipmentLine.EquipmentID))
{
return Conflict();
}
else
{
throw;
}
}
Я включил сервисный код для addcheckequipment, который работает нормально и должен идти первым, так как это родительская таблица, но я не уверенпочему линия проверки оборудования