public override IEnumerable <StateVariable> GetState()
 {
     return(new[]
     {
         new StateVariable
         {
             Name = "SelectedSource.ResourceID",
             Type = StateVariable.StateType.Input,
             Value = SelectedSource.ResourceID.ToString()
         },
         new StateVariable
         {
             Name = "ToPath",
             Type = StateVariable.StateType.Input,
             Value = ToPath
         },
         new StateVariable
         {
             Name = "IsFilesSelected",
             Type = StateVariable.StateType.Input,
             Value = IsFilesSelected.ToString()
         },
         new StateVariable
         {
             Name = "IsFoldersSelected",
             Type = StateVariable.StateType.Input,
             Value = IsFoldersSelected.ToString()
         },
         new StateVariable
         {
             Name = "IsFilesAndFoldersSelected",
             Type = StateVariable.StateType.Input,
             Value = IsFilesAndFoldersSelected.ToString()
         },
         new StateVariable
         {
             Name = "IsRecursive",
             Type = StateVariable.StateType.Input,
             Value = IsRecursive.ToString()
         },
         new StateVariable
         {
             Name = "Result",
             Type = StateVariable.StateType.Output,
             Value = Result
         }
     });
 }
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = base.GetHashCode();
         hashCode = (hashCode * 397) ^ (SelectedSource != null ? SelectedSource.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (Files != null ? Files.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ IncludeMediaInfo.GetHashCode();
         hashCode = (hashCode * 397) ^ IsRecursive.GetHashCode();
         hashCode = (hashCode * 397) ^ IncludeDeleted.GetHashCode();
         hashCode = (hashCode * 397) ^ (ToPath != null ? ToPath.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (DisplayName != null ? DisplayName.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ IsFilesSelected.GetHashCode();
         hashCode = (hashCode * 397) ^ IsFoldersSelected.GetHashCode();
         hashCode = (hashCode * 397) ^ IsFilesAndFoldersSelected.GetHashCode();
         return(hashCode);
     }
 }