public void LinkChildrenToNewDeliveryChain(DeliveryChain chain, string parentChainId) { //_deliverychain.Where(x => x.ParentID == chain.ChildID && x.ChainID.Contains(parentChainId)).Select(c => //{ // c.ParentID = chain.ParentID; // return c; //}).ToList(); //// Check if chain to be deleted is a 1st tier partner //if (chain.ID == chain.ParentNodeID && chain.ParentID == chain.ChildID) //{ // _deliverychain.Where(x => x.ParentNodeID == chain.ID).Select(c => // { // c.ParentID = c.ChildID; // c.ParentType = c.ChildType; // c.ParentNodeID = c.ID; // return c; // }).ToList(); //} //else //{ _deliverychain.Where(x => x.ParentNodeID == chain.ID).Select(c => { c.ParentID = chain.ParentID; c.ParentNodeID = chain.ParentNodeID; return(c); }).ToList(); //} }
public DeliveryChain FindParentByChildId(Int32 id) { DeliveryChain child = _deliverychain.FirstOrDefault(x => x.ID == id); DeliveryChain parent = _deliverychain.FirstOrDefault(y => y.ID == child.ParentNodeID); return(parent); }
public void PromoteChildrenToFirstTier(DeliveryChain chain) { string highestFirstTier; if (_deliverychain.Any(x => x.ChainID.Length < 3)) { List <DeliveryChain> TierOnePartners = _deliverychain.Where(x => x.ChainID.Length < 3).ToList(); highestFirstTier = (Int64.Parse(TierOnePartners.MaxBy(y => y.ChainID).ChainID) + 1).ToString(); } else { highestFirstTier = "1"; } //_deliverychain.Where(x => x.ParentNodeID == chain.ID).Select(c => // { // c.ParentID = c.ChildID; // c.ParentType = c.ChildType; // c.ParentNodeID = c.ID; // c.ChainID = highestFirstTier; // return c; // }); List <DeliveryChain> deletedChildren = _deliverychain.Where(x => x.ParentNodeID == chain.ID && x.ParentNodeID != x.ID).ToList(); foreach (DeliveryChain child in deletedChildren) { _deliverychain.Remove(child); child.ParentID = child.ChildID; child.ParentType = child.ChildType; child.ParentNodeID = child.ID; child.ChainID = highestFirstTier; highestFirstTier = (Int64.Parse(highestFirstTier) + 1).ToString(); _deliverychain.Add(child); } }
public DeliveryChain BuildFromPartner() { _deliveryChain = new DeliveryChain { ComponentID = _componentId, ParentID = Int32.Parse(_supplierVm.SupplierID), ChildID = Int32.Parse(_supplierVm.SupplierID), ParentType = "P", // First Tier Suppliers will have both Parent and Child Types set to P ChildType = "P", LastUpdate = DateTime.Now, Status = "A", UserID = _user }; return(_deliveryChain); }
public async Task <DeliveryChain> BuildFromChain() { _deliveryChain = new DeliveryChain { ComponentID = _deliveryChainVm.ComponentID, ParentID = _deliveryChainVm.ParentID, ParentType = _deliveryChainVm.ParentType, //ParentName = _deliveryChainVm.ParentName, ParentNodeID = _deliveryChainVm.ID, LastUpdate = DateTime.Now, Status = "A", UserID = _user }; await SetChildName(); return(_deliveryChain); }
public string NextChainIDFromPartnerHierarchy(Int32 parentId) { DeliveryChain parent = _deliverychain.FirstOrDefault(x => x.ID == parentId); if (_deliverychain.Any(x => x.ParentNodeID == parent.ID && (x.ParentID != x.ChildID))) { //Parent has children. Get the highest chainId and increment - ChainID is a string. Int64 chainId = Int64.Parse(_deliverychain.Where(x => x.ParentNodeID == parent.ID).MaxBy(y => y.ChainID).ChainID); return((chainId + 1).ToString()); } else { //Add 01 to the end of the parent chain ID. return(parent.ChainID + "01"); } }
public PartnerVMBuilder(DeliveryChain deliveryChain) { _DeliveryChain = deliveryChain; }
public DeliveryChainUI(DeliveryChain delivery) { }