Catel.Data.ModelBase.BackupData.RestoreBackup C# (CSharp) Метод

RestoreBackup() публичный Метод

Restores the backup to the object.
public RestoreBackup ( ) : void
Результат void
            public void RestoreBackup()
            {
                Dictionary<string, object> oldPropertyValues = null;

                using (var stream = new MemoryStream(_propertyValuesBackup))
                {
                    try
                    {
                        var properties = new List<MemberValue>();

                        var serializer = _object.Serializer;
                        if (serializer != null)
                        {
                            properties = serializer.DeserializeMembers(_object.GetType(), stream, null);
                        }

                        oldPropertyValues = properties.ToDictionary(property => property.Name, property => property.Value);
                    }
                    catch (Exception ex)
                    {
                        Log.Error(ex, "Failed to deserialize the data for backup, which is weird. However, for Silverlight, Windows Phone and Windows 8 there is no other option");
                    }
                }

                if (oldPropertyValues == null)
                {
                    return;
                }

                foreach (KeyValuePair<string, object> propertyValue in oldPropertyValues)
                {
                    if (PropertyDataManager.IsPropertyRegistered(_object.GetType(), propertyValue.Key))
                    {
                        // Set value so the PropertyChanged event is invoked
                        _object.SetValue(propertyValue.Key, propertyValue.Value);
                    }
                }

                _object.IsDirty = (bool)_objectValuesBackup[IsDirty];
            }
            #endregion