public static PsaTraceDto FromEntityToDto(PsaTraceEntity source) { PsaTraceDto target = new PsaTraceDto(); target.Id = source.Id; target.Address = source.Address; target.Application = source.Application; target.Date = source.Date; target.Format = source.Format; target.Manufacturer = source.Manufacturer; target.Mileage = source.Mileage; target.Phone = source.Phone; target.PhoneChannel = source.PhoneChannel; target.PsaDatasetId = source.PsaDatasetEntityId; target.SavesetId = source.SavesetId; target.ToolSerialNumber = source.ToolSerialNumber; target.VehicleModelName = source.VehicleModelName; target.Vin = source.Vin; foreach (PsaParametersSetEntity parametersSet in source.PsaParametersSet) { target.ParametersSets.Add( PsaParametersSetAssembler.FromEntityToDto(parametersSet)); } return(target); }
public static PsaTraceDto FromDomainObjectToDto(PsaTrace source) { PsaTraceDto target = new PsaTraceDto(); target.Id = source.Id; target.Address = source.Address; target.Application = source.Application; target.Date = source.Date; target.Format = source.Format; target.Manufacturer = (int)source.Manufacturer; target.Mileage = source.Mileage; target.Phone = source.Phone; target.PhoneChannel = source.PhoneChannel; target.PsaDatasetId = source.PsaDatasetId; target.SavesetId = source.SavesetId; target.ToolSerialNumber = source.ToolSerialNumber; target.VehicleModelName = source.VehicleModelName; target.Vin = source.Vin; List <PsaParametersSetDto> tracesDtoList = new List <PsaParametersSetDto>(); foreach (PsaParametersSet parametersSet in source.ParametersSets) { tracesDtoList.Add(PsaParametersSetAssembler.FromDomainObjectToDto(parametersSet)); } target.ParametersSets = tracesDtoList.ToArray(); return(target); }
public static PsaTrace FromDtoToDomainObject(PsaTraceDto source) { PsaTrace target = new PsaTrace(); target.Id = source.Id; target.Address = source.Address; target.Application = source.Application; target.Date = source.Date; target.Format = source.Format; target.Manufacturer = (Manufacturer)source.Manufacturer; target.Mileage = source.Mileage; target.Phone = source.Phone; target.PhoneChannel = source.PhoneChannel; target.PsaDatasetId = source.PsaDatasetId; target.SavesetId = source.SavesetId; target.ToolSerialNumber = source.ToolSerialNumber; target.VehicleModelName = source.VehicleModelName; target.Vin = source.Vin; foreach (PsaParametersSetDto parametersSet in source.ParametersSets) { target.ParametersSets.Add( PsaParametersSetAssembler.FromDtoToDomainObject(parametersSet)); } return(target); }
public static PsaTrace FromDtoToDomainObject(PsaTraceDto source) { var target = new PsaTrace { Id = source.Id, Address = source.Address, Application = source.Application, Date = source.Date, Format = source.Format, Manufacturer = (Manufacturer)source.Manufacturer, Mileage = source.Mileage, Phone = source.Phone, PhoneChannel = source.PhoneChannel, PsaDatasetId = source.PsaDatasetId, SavesetId = source.SavesetId, ToolSerialNumber = source.ToolSerialNumber, VehicleModelName = source.VehicleModelName, Vin = source.Vin }; foreach (PsaParametersSetDto parametersSet in source.ParametersSets) { target.ParametersSets.Add( PsaParametersSetAssembler.FromDtoToDomainObject(parametersSet)); } return(target); }
private static void Persist(List <PsaDataset> datasets) { foreach (PsaDataset psaDataset in datasets) { PsaDatasetDto dataset = PsaDatasetAssembler.FromDomainObjectToDto(psaDataset); if (IsKnownDataset(dataset)) { foreach (PsaTraceDto traceDto in dataset.Traces) { // skip known traces if (!IsKnownTrace(traceDto)) { // persist trace for existing dataset using (VTSDatabase database = new VTSDatabase()) { Guid guid = dataset.Guid; long datasetId = database.PsaDataset.First(d => d.Guid == guid).Id; traceDto.PsaDatasetId = datasetId; VTSWebService.DataAccess.PsaTrace traceEntity = PsaTraceAssembler.FromDtoToEntity(traceDto); database.PsaTrace.Add(traceEntity); database.SaveChanges(); } } } } else { List <PsaTraceDto> bufferList = new List <PsaTraceDto>(dataset.Traces); foreach (PsaTraceDto traceDto in bufferList) // to remove known traces { if (IsKnownTrace(traceDto)) { DateTime date = traceDto.Date; string vin = traceDto.Vin; PsaTraceDto dtoToRemove = dataset.Traces.FirstOrDefault(t => t.Date == date && t.Vin == vin); if (dtoToRemove == null) { throw new Exception("Trace not found here!"); } dataset.Traces.Remove(dtoToRemove); } } if (dataset.Traces.Count > 0) // if there are still some new { VTSWebService.DataAccess.PsaDataset datasetEntity = PsaDatasetAssembler.FromDtoToEntity(dataset); using (VTSDatabase database = new VTSDatabase()) { string vin = dataset.Traces.First().Vin; datasetEntity.VehicleEntityId = database.Vehicle.First(v => v.Vin == vin).Id; database.PsaDataset.Add(datasetEntity); database.SaveChanges(); } } } } }
private static bool IsKnownTrace(PsaTraceDto dto) { using (VTSDatabase database = new VTSDatabase()) { string vin = dto.Vin; DateTime date = dto.Date; return(database.PsaTrace.Any(t => t.Date == date && t.Vin == vin)); } }
/// <summary> /// Persists dataset with all duplicate protections. /// </summary> /// <returns>Persisted dataset guid.</returns> public Guid Persist(PsaDatasetDto dataset) { Guid updatedDatasetGuid = Guid.Empty; if (IsKnownDataset(dataset)) { foreach (PsaTraceDto traceDto in dataset.Traces) { // skip known traces, skip empty traces if (!IsKnownTrace(traceDto) && traceDto.ParametersSets.Count > 0) { // persist trace for existing dataset using (VTSDatabase database = new VTSDatabase()) { Guid guid = dataset.Guid; PsaDatasetEntity entity = database.PsaDataset.FirstOrDefault(d => d.Guid == guid); if (entity != null) { traceDto.PsaDatasetId = entity.Id; } PsaTrace traceEntity = PsaTraceAssembler.FromDtoToEntity(traceDto); database.PsaTrace.Add(traceEntity); database.SaveChanges(); updatedDatasetGuid = dataset.Guid; // to update analytic data based on updated dataset } } } } else { List <PsaTraceDto> bufferList = new List <PsaTraceDto>(dataset.Traces); foreach (PsaTraceDto traceDto in bufferList) // to remove known traces { if (IsKnownTrace(traceDto) && traceDto.ParametersSets.Count > 0) { DateTime date = traceDto.Date; string vin = traceDto.Vin; PsaTraceDto dtoToRemove = dataset.Traces.FirstOrDefault(t => t.Date == date && t.Vin == vin); if (dtoToRemove == null) { throw new Exception("Trace not found here!"); } dataset.Traces.Remove(dtoToRemove); } } if (dataset.Traces.Count > 0) // if there are still some new { string vin = dataset.Traces.First().Vin; if (!VinChecker.IsValid(vin)) { throw new FaultException <VtsWebServiceException>( new VtsWebServiceException(String.Format("Cannot save data for invalid vin {0}", vin))); } PsaDatasetEntity datasetEntity = PsaDatasetAssembler.FromDtoToEntity(dataset); using (VTSDatabase database = new VTSDatabase()) { datasetEntity.VehicleEntityId = database.Vehicle.First(v => v.Vin == vin).Id; database.PsaDataset.Add(datasetEntity); database.SaveChanges(); updatedDatasetGuid = dataset.Guid; // to update analytic data based on updated dataset } } } return(updatedDatasetGuid); }