private void UpdateObject(RouteDevice _newRouteDevice, ref RouteDevice _oldRouteDevice)
 {
     try
     {
         foreach (PropertyInfo RouteDevicePropInfo in _newRouteDevice.GetType().GetProperties().ToList())
         {
             _oldRouteDevice.GetType().GetProperty(RouteDevicePropInfo.Name).SetValue(_oldRouteDevice, _newRouteDevice.GetType().GetProperty(RouteDevicePropInfo.Name).GetValue(_newRouteDevice));
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         throw;
     }
 }
 public RouteDevice AddNewRouteDevice(RouteDevice _RouteDevice)
 {
     try
     {
         using (var context = new VeraEntities())
         {
             context.RouteDevice.Add(_RouteDevice);
             int numOfInserted = context.SaveChanges();
             return(numOfInserted > 0 ? _RouteDevice : null);
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
        public RouteDevice UpdateRouteDevice(RouteDevice _RouteDevice)
        {
            try
            {
                using (var context = new VeraEntities())
                {
                    var oldRouteDevice = context.RouteDevice.FirstOrDefault(u => u.Id == _RouteDevice.Id);
                    if (oldRouteDevice != null)
                    {
                        UpdateObject(_RouteDevice, ref oldRouteDevice);
                        var numberOfUpdatedRouteDevice = context.SaveChanges();
                        return(numberOfUpdatedRouteDevice > 0 ? _RouteDevice : null);
                    }

                    return(null);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }