public static DvseMeter Update(DvseMeter meter)
        {
            if (meter == null)
            {
                throw new ArgumentNullException("meter");
            }

            if (meter.Parameters == null || meter.Parameters.Count < 1)
            {
                throw new ArgumentException("meter is incomplete, meter.Parameters invalid");
            }

            using (var context = ApplicationDbContext.Create())
            {
                var existing = GetOne(meter.DvseMeterId);
                if (existing == null)
                {
                    throw new InvalidOperationException("No meter to update found with id: " + meter.DvseMeterId);
                }

                context.Parameters.AddOrUpdate(meter.Parameters.ToArray());
                context.DvseMeters.AddOrUpdate(meter);
                context.SaveChanges();

                return meter;
            }
        }
        public static StationDto Create(Station s, ProductionOrder order = null, DvseMeter meter = null)
        {
            var dto = new StationDto()
            {
                ComPort = s.ComPort,
                ComParamStatus = s.ComParamStatus,
                ScanMatrixStatus = s.ScanMatrixStatus,
                ScanPcbStatus = s.ScanPcbStatus,
                OrderUniqueId = s.OrderUniqueId,
                Order = order,
                ConfigurationOptions = s.ConfigurationOptions,
                MeterNo = s.MeterNo,
                Meter = meter,
                Number = s.Number,
                ParameterInfoSetName = order != null ? order.ParameterInfoSetName : string.Empty
            };

            return dto;
        }