using System; using System.Collections.Generic; using System.Net.Security; using System.ServiceModel; using HeuristicLab.Services.Optimization.Billing.Model; namespace HeuristicLab.Services.Optimization.Billing.Interfaces { [ServiceContract(ProtectionLevel = ProtectionLevel.EncryptAndSign)] public interface IOptimizationBilling { [OperationContract] IList GetProducts(); IList GetProductByName(string productName); // payment methods via enumeration [OperationContract] void SaveOrder(Order order); [OperationContract] IList GetOrdersByState(OrderState state); IList GetOrders(string userName); void UpdateOrder(Order order); IList GetInvoices(string userName); void SaveInvoice(Invoice invoice); User GetUser(string userName); void SaveUser(User user); IList GetUsageRecords(string userName); IList GetUsageRecords(string username, DateTime from, DateTime to); } }