I have an API that fetches all data completely. I tested this case by unit test and the result is ok.
API:
<code> [Route("/home/PackageStatus")]
[Authorize(Roles = "Guard,User,Beneficiary,Developer,Guest,Admin")]
[HttpGet]
public IActionResult PackageStatus()
{
try
{
PackageStatusResult data = new PackageStatusResult();
data.LastPackageData = new LastPackageData();
data.LastCommand = new LastPackageCommand();
data.Drives = new List<Drive>();
data.Pumps = new List<Pump>();
data.WorkPlans = new List<DailyWorkPlan>();
using (SpmsTest1Context db = new SpmsTest1Context())
{
data.Drives = db.Drive.ToList();
data.Pumps = db.Pump.ToList();
data.LastPackageData = db.LastPackageData.First();
data.Package = db.Package.First();
data.WorkPlans = db.DailyWorkPlan.ToList();
data.LastCommand = db.LastPackageCommand.First();
data.Message = db.Message.First().Description;
}
return Ok(new JsonData()
{
IsSuccess = true,
Message = "دریافت اطلاعات از دیتابیس با موفقیت انجام شد. ",
Data = data
});
}
catch (Exception e)
{
return BadRequest(new JsonData()
{
IsSuccess = false,
Message ="خطای سیستمی",
Data = null
});
}
}
</code>
<code> [Route("/home/PackageStatus")]
[Authorize(Roles = "Guard,User,Beneficiary,Developer,Guest,Admin")]
[HttpGet]
public IActionResult PackageStatus()
{
try
{
PackageStatusResult data = new PackageStatusResult();
data.LastPackageData = new LastPackageData();
data.LastCommand = new LastPackageCommand();
data.Drives = new List<Drive>();
data.Pumps = new List<Pump>();
data.WorkPlans = new List<DailyWorkPlan>();
using (SpmsTest1Context db = new SpmsTest1Context())
{
data.Drives = db.Drive.ToList();
data.Pumps = db.Pump.ToList();
data.LastPackageData = db.LastPackageData.First();
data.Package = db.Package.First();
data.WorkPlans = db.DailyWorkPlan.ToList();
data.LastCommand = db.LastPackageCommand.First();
data.Message = db.Message.First().Description;
}
return Ok(new JsonData()
{
IsSuccess = true,
Message = "دریافت اطلاعات از دیتابیس با موفقیت انجام شد. ",
Data = data
});
}
catch (Exception e)
{
return BadRequest(new JsonData()
{
IsSuccess = false,
Message ="خطای سیستمی",
Data = null
});
}
}
</code>
[Route("/home/PackageStatus")]
[Authorize(Roles = "Guard,User,Beneficiary,Developer,Guest,Admin")]
[HttpGet]
public IActionResult PackageStatus()
{
try
{
PackageStatusResult data = new PackageStatusResult();
data.LastPackageData = new LastPackageData();
data.LastCommand = new LastPackageCommand();
data.Drives = new List<Drive>();
data.Pumps = new List<Pump>();
data.WorkPlans = new List<DailyWorkPlan>();
using (SpmsTest1Context db = new SpmsTest1Context())
{
data.Drives = db.Drive.ToList();
data.Pumps = db.Pump.ToList();
data.LastPackageData = db.LastPackageData.First();
data.Package = db.Package.First();
data.WorkPlans = db.DailyWorkPlan.ToList();
data.LastCommand = db.LastPackageCommand.First();
data.Message = db.Message.First().Description;
}
return Ok(new JsonData()
{
IsSuccess = true,
Message = "دریافت اطلاعات از دیتابیس با موفقیت انجام شد. ",
Data = data
});
}
catch (Exception e)
{
return BadRequest(new JsonData()
{
IsSuccess = false,
Message ="خطای سیستمی",
Data = null
});
}
}
On the other hand, I have a component that calls this API
component :
<code>const package2 = () => {
const [fetchDataStatus, setfetchDataStatus] = useState("");
const [info, setInfo] = useState({
isSuccess: false,
message:"",
data: {
Drives: [],
Pumps: [],
LastPackageData: {
driveConnection1: false,
coolingWater1: false,
frequency1: 0,
power1: 0,
current1: 0,
fault1: "0",
pumpOutputPressure1: 0,
coolingWaterTemprature1: 0,
driveConnection2: false,
coolingWater2: false,
frequency2: 0,
power2: 0,
current2: 0,
fault2: "0",
pumpOutputPressure2: 0,
coolingWaterTemprature2: 0,
phaseControl: false
},
Package: {
},
WorkPlans: [{
id: 0,
thrustPressure:0
}],
LastCommand: {
isActive: false,
workPlan: 0,
frequency: 0,
thrustPressure: 0,
isActivePump1: false,
isActivePump2: false,
fromScada: false
},
message: ""
}
});
useInterval(
() => {
setfetchDataStatus("loading");
fetch('/home/PackageStatus')
.then(response => response.json())
.then((response) => {
if (!response) {
setfetchDataStatus("loading-lost");
} else {
setfetchDataStatus("loading-ok");
}
setInfo(response);
//console.log(data);
}).catch(error => {
setfetchDataStatus("loading-error");
console.error('Fetch error:', error);
});
//.then((data) => {
// console.log(data);
//});
},
500
);
function handleOnFocus(e: ChangeEvent<HTMLInputElement>) {
e.target.blur();
}
function handleWorkPlanChange(event: ChangeEvent<HTMLSelectElement>): void {
throw new Error("Function not implemented.");
}
return (
<React.Fragment>
</React.Fragment>
)
};
export default package2;
</code>
<code>const package2 = () => {
const [fetchDataStatus, setfetchDataStatus] = useState("");
const [info, setInfo] = useState({
isSuccess: false,
message:"",
data: {
Drives: [],
Pumps: [],
LastPackageData: {
driveConnection1: false,
coolingWater1: false,
frequency1: 0,
power1: 0,
current1: 0,
fault1: "0",
pumpOutputPressure1: 0,
coolingWaterTemprature1: 0,
driveConnection2: false,
coolingWater2: false,
frequency2: 0,
power2: 0,
current2: 0,
fault2: "0",
pumpOutputPressure2: 0,
coolingWaterTemprature2: 0,
phaseControl: false
},
Package: {
},
WorkPlans: [{
id: 0,
thrustPressure:0
}],
LastCommand: {
isActive: false,
workPlan: 0,
frequency: 0,
thrustPressure: 0,
isActivePump1: false,
isActivePump2: false,
fromScada: false
},
message: ""
}
});
useInterval(
() => {
setfetchDataStatus("loading");
fetch('/home/PackageStatus')
.then(response => response.json())
.then((response) => {
if (!response) {
setfetchDataStatus("loading-lost");
} else {
setfetchDataStatus("loading-ok");
}
setInfo(response);
//console.log(data);
}).catch(error => {
setfetchDataStatus("loading-error");
console.error('Fetch error:', error);
});
//.then((data) => {
// console.log(data);
//});
},
500
);
function handleOnFocus(e: ChangeEvent<HTMLInputElement>) {
e.target.blur();
}
function handleWorkPlanChange(event: ChangeEvent<HTMLSelectElement>): void {
throw new Error("Function not implemented.");
}
return (
<React.Fragment>
</React.Fragment>
)
};
export default package2;
</code>
const package2 = () => {
const [fetchDataStatus, setfetchDataStatus] = useState("");
const [info, setInfo] = useState({
isSuccess: false,
message:"",
data: {
Drives: [],
Pumps: [],
LastPackageData: {
driveConnection1: false,
coolingWater1: false,
frequency1: 0,
power1: 0,
current1: 0,
fault1: "0",
pumpOutputPressure1: 0,
coolingWaterTemprature1: 0,
driveConnection2: false,
coolingWater2: false,
frequency2: 0,
power2: 0,
current2: 0,
fault2: "0",
pumpOutputPressure2: 0,
coolingWaterTemprature2: 0,
phaseControl: false
},
Package: {
},
WorkPlans: [{
id: 0,
thrustPressure:0
}],
LastCommand: {
isActive: false,
workPlan: 0,
frequency: 0,
thrustPressure: 0,
isActivePump1: false,
isActivePump2: false,
fromScada: false
},
message: ""
}
});
useInterval(
() => {
setfetchDataStatus("loading");
fetch('/home/PackageStatus')
.then(response => response.json())
.then((response) => {
if (!response) {
setfetchDataStatus("loading-lost");
} else {
setfetchDataStatus("loading-ok");
}
setInfo(response);
//console.log(data);
}).catch(error => {
setfetchDataStatus("loading-error");
console.error('Fetch error:', error);
});
//.then((data) => {
// console.log(data);
//});
},
500
);
function handleOnFocus(e: ChangeEvent<HTMLInputElement>) {
e.target.blur();
}
function handleWorkPlanChange(event: ChangeEvent<HTMLSelectElement>): void {
throw new Error("Function not implemented.");
}
return (
<React.Fragment>
</React.Fragment>
)
};
export default package2;
When I run Project 3 fields of data load but others do not.
lastCommand, message, and dailyWorkplan are loaded only!!!!
What is the problem?