/// <summary>
        /// ID=a<x<w~a<x<b,c<x<d,...,z<x<w
        /// </summary>
        /// <param name="ID">The identifier.</param>
        private void Explode(string ID)
        {
            var IDoldIDnew = ID.Split('~');

            if (IDoldIDnew.Count() == 2)
            {
                var inputChannelOfTheOriginalXCellOrToExplodeToReconnect = ListOfInputChannels.FirstOrDefault(channel => channel.XCellOrigin.Id == IDoldIDnew[0]);
                if (inputChannelOfTheOriginalXCellOrToExplodeToReconnect != null)
                {
                    var newXCellOrExplode = new XCellORExplode(IDoldIDnew[1], Layer);
                    inputChannelOfTheOriginalXCellOrToExplodeToReconnect.XCellOrigin = newXCellOrExplode;
                    newXCellOrExplode.ListOfOutputChannels.Add(inputChannelOfTheOriginalXCellOrToExplodeToReconnect);

                    var newRegions = IDoldIDnew[1].Split(',');
                    foreach (var region in newRegions)
                    {
                        var channelConnectedToAnXceldaFuzzy = Layer.ListOfInputChannels.FirstOrDefault(channel => channel.XCellOrigin.Id == region);
                        if (channelConnectedToAnXceldaFuzzy != null)
                        {
                            var newInputChannelForNewXCellOrExplode = new Channel();
                            newInputChannelForNewXCellOrExplode.XCellDestiny = newXCellOrExplode;
                            newInputChannelForNewXCellOrExplode.XCellOrigin  = channelConnectedToAnXceldaFuzzy.XCellOrigin;
                            newXCellOrExplode.ListOfInputChannels.Add(newInputChannelForNewXCellOrExplode);
                        }
                    }

                    newXCellOrExplode.AssignLevel();
                }
            }
        }
        public override void SendOutputData() //Systole
        {
            //var lowerLimit = IN - RegionsManager.r;
            //var upperLimit = IN + RegionsManager.r;
            //if (RegionsManager.TryToAddANewRegion(lowerLimit, upperLimit))//RegionsManager.CheckIfRegionIsAvailable(lowerLimit, upperLimit))
            //{
            //    var xCellFuzzyNew = new XCellFuzzy($"{lowerLimit}<{Id}<{upperLimit}", Layer, RegionsManager.R);
            //    xCellFuzzyNew.ListOfInputChannels.Add(ListOfInputChannels[0]);
            //    //RegionsManager.TryToAddANewRegion(lowerLimit, upperLimit);
            //    ListOfXCellFuzzy.Add(xCellFuzzyNew);
            //    //xCellFuzzyNew.GetInputData();
            //    //Recalculate_r();
            //}

            //foreach (var xCellFuzzy in ListOfXCellFuzzy)
            //{
            //    xCellFuzzy.GetInputData();
            //    xCellFuzzy.SendOutputData();
            //}

            XCellFuzzy xCellFuzzyWithGreaterOutput = null;
            double     greaterOutput = 0;

            foreach (var xCellFuzzy in ListOfXCellFuzzy.Where(xCellFuzz => xCellFuzz.ListOfOutputChannels[0].IsActive && xCellFuzz.ListOfOutputChannels[0].Aij > 0))
            {
                if (!ORExplodeLayer.ListOfXCellsOrExplode.Any(xCellORExplode => xCellORExplode.Id == xCellFuzzy.Id))
                {
                    var xCellOrExplode = new XCellORExplode(xCellFuzzy.Id, this.Layer);
                    ORExplodeLayer.ListOfXCellsOrExplode.Add(xCellOrExplode);
                    ORExplodeLayer.ListOfInputChannels.Add(xCellFuzzy.ListOfOutputChannels[0]);
                }
                if (xCellFuzzy.ListOfOutputChannels[0].Aij > greaterOutput)
                {
                    greaterOutput = xCellFuzzy.ListOfOutputChannels[0].Aij;
                    xCellFuzzyWithGreaterOutput = xCellFuzzy;
                }
            }

            if (xCellFuzzyWithGreaterOutput != null)
            {
                var outputChannelFound = ListOfOutputChannels.FirstOrDefault(outputChannel => outputChannel.XCellOrigin.Id == xCellFuzzyWithGreaterOutput.Id);
                if (outputChannelFound == null)
                {
                    ListOfOutputChannels.Add(xCellFuzzyWithGreaterOutput.ListOfOutputChannels[0]);
                }
            }
        }