/// <summary> /// Remove a work site in work site linked by identifier. /// </summary> /// <param name="currentIdentifier">identifier</param> /// <returns>Removed work site</returns> public IWorkSite RemoveWorkSite(string currentIdentifier) { IWorkSite workSite = SelectWorkSite(currentIdentifier); if (workSite == null) { return(null); } this._workSites.Remove(workSite); return(workSite); }
/// <summary> /// Insert a work site before the current work site. /// </summary> /// <param name="currentIdentifier">current work site</param> /// <param name="insertWorkSite">Insert work site</param> /// <returns>Insert result true or false.</returns> public bool InsertWorkSite(string currentIdentifier, IWorkSite insertWorkSite) { IWorkSite workSite = SelectWorkSite(currentIdentifier); //Linked list is null if (this._workSites.Count == 0) { return(false); } LinkedListNode <IWorkSite> currentNode = this._workSites.Find(workSite); //Not contain target work site. if (workSite == null) { return(false); } this._workSites.AddBefore(currentNode, insertWorkSite); return(true); }
/// <summary> /// Update an existing work site. /// </summary> /// <param name="currentIdentifier">Identifier</param> /// <param name="newWorkSite">New work site</param> /// <returns>Update result true or false.</returns> public bool UpdateWorkSite(string currentIdentifier, IWorkSite newWorkSite) { IWorkSite oldWorkSite = SelectWorkSite(currentIdentifier); if (oldWorkSite == null) { return(false); } LinkedListNode <IWorkSite> currentNode = this._workSites.Find(oldWorkSite); LinkedListNode <IWorkSite> preNode = currentNode.Previous; // First node if (preNode == null) { LinkedListNode <IWorkSite> nextNode = currentNode.Next; this._workSites.Remove(currentNode); this._workSites.AddBefore(nextNode, newWorkSite); return(true); } this._workSites.Remove(currentNode); this._workSites.AddAfter(preNode, newWorkSite); return(true); }
/// <summary> /// Add a work site into the work site linked. /// </summary> /// <param name="workSite">The add of work site.</param> /// <returns>The count of the work site linked.</returns> public int AddWorkSite(IWorkSite workSite) { this._workSites.AddLast(workSite); return(this._workSites.Count); }