Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #5
0
 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();
                 }
             }
         }
     }
 }
Exemple #6
0
 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));
     }
 }
Exemple #7
0
        /// <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);
        }