Ejemplo n.º 1
0
        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();
            //}
        }
Ejemplo n.º 2
0
        public DeliveryChain FindParentByChildId(Int32 id)
        {
            DeliveryChain child  = _deliverychain.FirstOrDefault(x => x.ID == id);
            DeliveryChain parent = _deliverychain.FirstOrDefault(y => y.ID == child.ParentNodeID);

            return(parent);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 6
0
        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");
            }
        }
Ejemplo n.º 7
0
 public PartnerVMBuilder(DeliveryChain deliveryChain)
 {
     _DeliveryChain = deliveryChain;
 }
Ejemplo n.º 8
0
 public DeliveryChainUI(DeliveryChain delivery)
 {
 }