public void SettleCost(ResourceAmount cost, SettleMode mode = SettleMode.Pay) { switch (mode) { case SettleMode.Pay: Wheat -= cost.Wheat; Lumber -= cost.Lumber; break; case SettleMode.Refund: Wheat += (int)(cost.Wheat * _DefaultReturnFactor); Lumber += (int)(cost.Lumber * _DefaultReturnFactor); break; default: goto case SettleMode.Pay; } }
public static AmqpLinkSettings GetLinkSettings(bool forSender, string address, SettleMode settleType, int credit = 0, bool dynamic = false) { AmqpLinkSettings settings = null; // create a setting for sender settings = new AmqpLinkSettings(); settings.LinkName = string.Format("link-{0}", Guid.NewGuid().ToString("N")); settings.Role = !forSender; Target target = new Target(); target.Address = address; Source source = new Source(); source.Address = address; source.DistributionMode = "move"; settings.Source = source; settings.Target = target; settings.SettleType = settleType; if (!forSender) { settings.TotalLinkCredit = (uint)credit; settings.AutoSendFlow = credit > 0; if (dynamic) { source.Address = null; source.Dynamic = true; } } else { settings.InitialDeliveryCount = 0; if (dynamic) { target.Address = null; target.Dynamic = true; } } settings.AddProperty("x-opt-just-testing", "ignore me"); return settings; }
public static AmqpLinkSettings GetLinkSettings(bool forSender, string address, SettleMode settleType, int credit = 0, bool dynamic = false) { AmqpLinkSettings settings = null; // create a setting for sender settings = new AmqpLinkSettings(); settings.LinkName = string.Format("link-{0}", Guid.NewGuid().ToString("N")); settings.Role = !forSender; Target target = new Target(); target.Address = address; Source source = new Source(); source.Address = address; source.DistributionMode = "move"; settings.Source = source; settings.Target = target; settings.SettleType = settleType; if (!forSender) { settings.TotalLinkCredit = (uint)credit; settings.AutoSendFlow = credit > 0; if (dynamic) { source.Address = null; source.Dynamic = true; } } else { settings.InitialDeliveryCount = 0; if (dynamic) { target.Address = null; target.Dynamic = true; } } settings.AddProperty("x-opt-just-testing", "ignore me"); return(settings); }