private List <object> GetPropertyViewModelsFromResponse(Shared.Enums.PropertyType propertyType, PropertySearchResultModel result, PropertySearchRequestModel searchModel) { if (result == null || result.ResponseObject == null) { return(null); } List <object> entities = null; switch (propertyType) { case Shared.Enums.PropertyType.AIRCRAFT: AircraftsResponse aircraftsResponse = result.ResponseObject as AircraftsResponse; if (aircraftsResponse == null) { throw new Exception("Could not convert response to AircraftsResponse"); } if (aircraftsResponse.Aircraft != null && aircraftsResponse.Aircraft.Length > 0) { //List<AircraftViewModel> aircrafts = SaveAircrafts(aircraftsResponse, result.RequestId, searchModel); List <AircraftViewModel> aircrafts = new List <AircraftViewModel>(); for (int i = 0; i < aircraftsResponse.Aircraft.Length; i++) { AircraftViewModel airViewModel = aircraftsResponse.Aircraft[i].ToViewModel(); airViewModel.ExtensionRequestId = result.RequestId; if (regixCertificateSettings.SaveEntityWithSearchedIdentifier && searchModel.IdentifierTypeCode == "MSN") { airViewModel.MsnserialNumber = searchModel.Identifier; } aircrafts.Add(airViewModel); } entities = (aircrafts).Cast <object>().ToList(); } break; case Shared.Enums.PropertyType.VEHICLE: if (regixCertificateSettings.UseVehicleV3) { GetMotorVehicleRegistrationInfoV3Response vehiclesResponse = result.ResponseObject as GetMotorVehicleRegistrationInfoV3Response; if (vehiclesResponse == null) { throw new Exception("Could not convert response to GetMotorVehicleRegistrationInfoV3Response"); } if (vehiclesResponse.Response != null && vehiclesResponse.Response.Results.Length > 0 && vehiclesResponse.Response.Results[0].VehicleData != null) { List <VehicleViewModel> vehicles = new List <VehicleViewModel>(); VehicleViewModel vehicleViewModel = vehiclesResponse.Response.Results[0].ToViewModel(); vehicleViewModel.ExtensionRequestId = result.RequestId; if (regixCertificateSettings.SaveEntityWithSearchedIdentifier) { vehicleViewModel.RegistrationNumber = searchModel.Identifier; } vehicles.Add(vehicleViewModel); entities = (vehicles).Cast <object>().ToList(); } } else { MotorVehicleRegistrationResponse vehiclesResponse = result.ResponseObject as MotorVehicleRegistrationResponse; if (vehiclesResponse == null) { throw new Exception("Could not convert response to MotorVehicleRegistrationResponse"); } if (vehiclesResponse.Vehicles != null && vehiclesResponse.Vehicles.Length > 0) { //List<Data.Vehicle> vehicles = await SaveVehicles(vehiclesResponse, result.RequestId, searchModel, useSearchIdentifier); List <VehicleViewModel> vehicles = new List <VehicleViewModel>(); foreach (RegiX.Client.ResponseModels.Vehicle vehicle in vehiclesResponse.Vehicles) { VehicleViewModel vehicleViewModel = vehicle.ToViewModel(); vehicleViewModel.ExtensionRequestId = result.RequestId; if (regixCertificateSettings.SaveEntityWithSearchedIdentifier) { vehicleViewModel.RegistrationNumber = searchModel.Identifier; } vehicles.Add(vehicleViewModel); } entities = (vehicles).Cast <object>().ToList(); } } break; case Shared.Enums.PropertyType.VESSEL: RegistrationInfoByOwnerResponse vesselResponse = result.ResponseObject as RegistrationInfoByOwnerResponse; if (vesselResponse == null) { throw new Exception("Could not convert response to RegistrationInfoByOwnerResponse"); } if (vesselResponse.VesselInfo != null) { VesselViewModel vesselViewModel = vesselResponse.VesselInfo.ToViewModel(); vesselViewModel.ExtensionRequestId = result.RequestId; vesselViewModel = SetVesselStatusInModel(vesselViewModel); entities = new List <object>(); entities.Add(vesselViewModel); } break; case Shared.Enums.PropertyType.AGRIFORMACHINERY: AgriculturalMachineryCollectionModel machines = result.ResponseObject as AgriculturalMachineryCollectionModel; entities = (machines.Machines).Cast <object>().ToList(); break; default: break; } return(entities); }
private static BaseResponse ParseResponseToObject <T>(XElement node) { try { if (node == null) { throw new Exception("Node element is null"); } BaseResponse parsedObject = null; if (typeof(T) == typeof(AircraftsResponse)) { parsedObject = new AircraftsResponse(); using (StringReader reader = new StringReader(node.ToString())) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(AircraftsResponse)); parsedObject = (AircraftsResponse)xmlSerializer.Deserialize(reader); return(parsedObject); } } else if (typeof(T) == typeof(MotorVehicleRegistrationResponse)) { parsedObject = new MotorVehicleRegistrationResponse(); using (StringReader reader = new StringReader(node.ToString())) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(MotorVehicleRegistrationResponse)); parsedObject = (MotorVehicleRegistrationResponse)xmlSerializer.Deserialize(reader); return(parsedObject); } } else if (typeof(T) == typeof(GetMotorVehicleRegistrationInfoV3Response)) { parsedObject = new GetMotorVehicleRegistrationInfoV3Response(); using (StringReader reader = new StringReader(node.ToString())) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(GetMotorVehicleRegistrationInfoV3Response)); parsedObject = (GetMotorVehicleRegistrationInfoV3Response)xmlSerializer.Deserialize(reader); return(parsedObject); } } else if (typeof(T) == typeof(ValidPersonResponse)) { parsedObject = new ValidPersonResponse(); using (StringReader reader = new StringReader(node.ToString())) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(ValidPersonResponse)); parsedObject = (ValidPersonResponse)xmlSerializer.Deserialize(reader); return(parsedObject); } } else if (typeof(T) == typeof(ValidUICResponse)) { parsedObject = new ValidUICResponse(); using (StringReader reader = new StringReader(node.ToString())) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(ValidUICResponse)); parsedObject = (ValidUICResponse)xmlSerializer.Deserialize(reader); return(parsedObject); } } else if (typeof(T) == typeof(RegistrationInfoByOwnerResponse)) { parsedObject = new RegistrationInfoByOwnerResponse(); using (StringReader reader = new StringReader(node.ToString())) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(RegistrationInfoByOwnerResponse)); parsedObject = (RegistrationInfoByOwnerResponse)xmlSerializer.Deserialize(reader); return(parsedObject); } } return(null); } catch (Exception ex) { throw new Exception("Error parsing response to object: " + ex.Message); } }