private BasicActionEnum BuildFileEventChain(string FilePath, Int32 CurrentIndex, List <FSSyncEvent> WorkingList, ref string FinalFileName) { BasicActionEnum ReturnValue = BasicActionEnum.None; BasicActionEnum RecursiveResult = BasicActionEnum.None; FSSyncEvent TempEvent; //Has the file been renamed TempEvent = WorkingList.Find(x => x.Action.Equals(BasicActionEnum.Renamed) && x.OldOrCurrentFilePathFull.Equals(FilePath) && x.Index > CurrentIndex); if (TempEvent != null) { //Log(String.Format("****File {0} was renamed {1}", FilePath, TempEvent.NewFilePath)); FinalFileName = TempEvent.NewFilePathFull; ReturnValue = BasicActionEnum.Renamed; RecursiveResult = BuildFileEventChain(TempEvent.NewFilePathFull, TempEvent.Index, WorkingList, ref FinalFileName); if (RecursiveResult != BasicActionEnum.None) { ReturnValue = RecursiveResult; } WorkingList.Remove(TempEvent); } //Has the file been deleted TempEvent = WorkingList.Find(x => x.Action.Equals(BasicActionEnum.Deleted) && x.OldOrCurrentFilePathFull.Equals(FilePath) && x.Index > CurrentIndex); if (TempEvent != null) { ReturnValue = BasicActionEnum.Deleted; //Log(String.Format("****File {0} was deleted ", TempEvent.FilePath)); WorkingList.Remove(TempEvent); } return(ReturnValue); }
public FSSyncEvent(BasicActionEnum pAction, string sOldOrCurrentFilePathFull, string sNewFilePathFull, Int32 pIndex = 0) { this.Index = pIndex; this.Action = pAction; this.OldOrCurrentFilePathFull = sOldOrCurrentFilePathFull; this.NewFilePathFull = sNewFilePathFull; }