private void ProposalAccepted(EnergyAcceptMessage message)
        {
            if (message.header.Receiver == _name)
            {
                Boolean status        = false;
                float   energyCanSell = 0;

                float enAvailable = getEnergyLevel() - (_enPeak + _enSold);

                if (enAvailable > 0)
                {
                    energyCanSell = enAvailable >= message.energy ? message.energy : enAvailable;

                    status   = true;
                    _enSold += energyCanSell;

                    XMLLogger.WriteLocalActivity("Ok, " + energyCanSell + " KW/h sold to " + message.header.Sender);

                    EnergyLink link = new EnergyLink(message.peerName, energyCanSell, _price);
                    consumers.Add(link);

                    //Advise the Local Resolver About the energy status change.
                    Connector.channel.updateEnergyStatus(MessageFactory.createUpdateStatusMessage(_resolverName, _name, _enSold, _enBought));

                    XMLLogger.WriteLocalActivity("Updating Stutus");
                    XMLLogger.WriteLocalActivity("Peer " + message.header.Sender + " - Energy Sold: " + _enSold);
                    XMLLogger.WriteLocalActivity("Peer " + message.header.Sender + " - Energy Bought: " + _enBought);
                }

                EndProposalMessage respMessage = MessageFactory.createEndProposalMessage(
                    message.header.MessageID,
                    message.header.Sender,
                    _name,
                    status,
                    energyCanSell,
                    _price
                    );

                if (message.header.Sender == _resolverName)
                {
                    Connector.channel.forwardEnergyReply(respMessage);
                }
                else
                {
                    Connector.channel.endProposal(respMessage);
                }
            }
        }
        private void EvaluateProposal()
        {
            var m = (from element in _proposalList
                     orderby element.price ascending
                     select element).First();

            XMLLogger.WriteLocalActivity("The lowest price is " + m.price + " provided by " + m.header.Sender);

            EnergyAcceptMessage respMessage = MessageFactory.createEnergyAcceptMessage(
                m.header.MessageID,
                m.header.Sender,
                _name,
                this._name,
                _enPeak - (getEnergyLevel() + _enBought));

            Connector.channel.acceptProposal(respMessage);
        }
        private void EvaluateProposal()
        {
            var m = (from element in _proposalList
                     orderby element.price ascending
                     select element).First();

            EnergyAcceptMessage respMessage = MessageFactory.createEnergyAcceptMessage(
                m.header.MessageID,
                m.header.Sender,
                _name,
                _originPeerName,
                _enLookUp);

            Connector.channel.acceptProposal(respMessage);

            _proposalList.Clear();
            _sem.Release();
        }