public VirtualElement FlatElementsGetElementBasedOnId(Guid ElementId, VirtualElementType ElementType, bool IncludeDeleted) { lock (FlatElementsLock) { if (IncludeDeleted) { return(this.FlatElements.FirstOrDefault(x => x.ElementId.Equals(ElementId) && x.ElementType == ElementType)); } else { return(this.FlatElements.FirstOrDefault(x => x.ElementId.Equals(ElementId) && !x.IsDeleted && x.ElementType == ElementType)); } } }
/// <summary> /// Pour le rechargement depuis la base de donnée d'un VirtualElement existant /// </summary> /// <param name="pElementType"></param> /// <param name="pElementId"></param> /// <param name="pPathRelative"></param> public VirtualElement(VirtualElementType pElementType, Guid pElementId, string pPathRelative) { this._ElementId = pElementId; this.ElementType = pElementType; if (pElementType == VirtualElementType.File) { this._CurrentName = Path.GetFileName(pPathRelative); } else { this._CurrentName = GetFolderNameFromPath(pPathRelative); } this.TargetNameAfterSync = this.CurrentName; this._PathToRoot = Tools.GetParentPath(pPathRelative) + Path.DirectorySeparatorChar; }
public VirtualElement FlatElementsGetElementBasedOnPath(String RelativePath, VirtualElementType ElementType, bool IncludeDeleted, bool SearchTargetNameFirst = false) { lock (FlatElementsLock) { if (String.IsNullOrEmpty(RelativePath)) { return((VirtualElement)this); } else { VirtualElement VE = null; if (SearchTargetNameFirst) { if (IncludeDeleted) { VE = this.FlatElements.FirstOrDefault(x => x.TargetPathRelativeAfterSync.Equals(RelativePath, StringComparison.OrdinalIgnoreCase) && x.ElementType == ElementType); } else { VE = this.FlatElements.FirstOrDefault(x => x.TargetPathRelativeAfterSync.Equals(RelativePath, StringComparison.OrdinalIgnoreCase) && !x.IsDeleted && x.ElementType == ElementType); } if (VE != null) { return(VE); } } if (IncludeDeleted) { VE = this.FlatElements.FirstOrDefault(x => x.PathRelative.Equals(RelativePath, StringComparison.OrdinalIgnoreCase) && x.ElementType == ElementType); } else { VE = this.FlatElements.FirstOrDefault(x => x.PathRelative.Equals(RelativePath, StringComparison.OrdinalIgnoreCase) && !x.IsDeleted && x.ElementType == ElementType); } return(VE); } } }