Ejemplo n.º 1
0
        public static void Deliver(LogicLevel level, LogicDeliverable deliverable)
        {
            Debugger.DoAssert(deliverable != null, "Deliverable is null!");

            if (deliverable.GetDeliverableType() == 5)
            {
                LogicDeliverableBundle bundle = (LogicDeliverableBundle)deliverable;

                for (int i = 0; i < bundle.GetDeliverableCount(); i++)
                {
                    LogicDeliveryHelper.Deliver(level, bundle.GetDeliverable(i));
                }
            }
            else if (!deliverable.Deliver(level))
            {
                LogicDeliverable compensation = deliverable.Compensate(level);

                if (compensation != null)
                {
                    if (!compensation.Deliver(level))
                    {
                        Debugger.Error("Delivery compensation failed!");
                    }
                }
            }
        }
        public static LogicDeliverable GetLogicDeliverable(LogicJSONObject jsonObject)
        {
            LogicDeliverable deliverable = LogicDeliverableFactory.CreateByType(LogicStringUtil.ConvertToInt(LogicJSONHelper.GetString(jsonObject, "type")));

            deliverable.ReadFromJSON(jsonObject);
            return(deliverable);
        }