public int DeleteCustomer(int customerId) { CustomerRequest request = new CustomerRequest(); request.RequestId = NewRequestId; request.AccessToken = AccessToken; request.ClientTag = ClientTag; request.Action = "Delete"; request.Criteria = new CustomerCriteria { CustomerId = customerId }; CustomerResponse response = ActionServiceClient.SetCustomers(request); if (request.RequestId != response.CorrelationId) { throw new ApplicationException("DeleteCustomer: RequestId and CorrelationId do not match."); } if (response.Acknowledge == AcknowledgeType.Failure) { throw new ApplicationException(response.Message); } return(response.RowsAffected); }
/// <summary> /// Logout from from the system. /// </summary> /// <returns>Success or failure flag.</returns> public bool Logout() { LogoutRequest request = new LogoutRequest(); request.RequestId = NewRequestId; request.ClientTag = ClientTag; request.AccessToken = AccessToken; LogoutResponse response = ActionServiceClient.Logout(request); return(response.Acknowledge == AcknowledgeType.Success); }
/// <summary> /// GetToken must be the first call into web service. /// This is irrespective of whether user is logging in or not. /// </summary> /// <returns>Unique access token that is valid for the duration of the session.</returns> public string GetToken() { TokenRequest request = new TokenRequest(); request.RequestId = NewRequestId; request.ClientTag = ClientTag; TokenResponse response = ActionServiceClient.GetToken(request); if (request.RequestId != response.CorrelationId) { throw new ApplicationException("GetToken: RequestId and CorrelationId do not match."); } return(response.AccessToken); }
/// <summary> /// Static constructor of provider. /// </summary> static Provider() { Client = new ActionServiceClient(); // Gets client tag from app.config configuration file ClientTag = ConfigurationManager.AppSettings.Get("ClientTag"); // Retrieve AccessToken as first step var request = PrepareRequest(new TokenRequest()); var response = Client.GetToken(request); // Store access token for subsequent service calls. AccessToken = response.AccessToken; }
/// <summary> /// Login to the system. /// </summary> /// <param name="username">User name.</param> /// <param name="password">Password.</param> /// <returns>Success or failure flag.</returns> public bool Login(string username, string password) { LoginRequest request = new LoginRequest(); request.RequestId = NewRequestId; request.ClientTag = ClientTag; request.AccessToken = AccessToken; request.UserName = username; request.Password = password; LoginResponse response = ActionServiceClient.Login(request); return(response.Acknowledge == AcknowledgeType.Success); }
/// <summary> /// Static constructor /// </summary> static Model() { Service = new ActionServiceClient(); // Gets client tag from app.config configuration file ClientTag = ConfigurationManager.AppSettings.Get("ClientTag"); // Retrieve AccessToken as first step TokenRequest request = new TokenRequest(); request.RequestId = NewRequestId; request.ClientTag = ClientTag; TokenResponse response = null; SafeProxy.DoAction<ActionServiceClient>(Service, client => { response = client.GetToken(request); }); // Store access token for subsequent service calls. AccessToken = response.AccessToken; }
public IList <Category> GetCategories() { ProductRequest request = new ProductRequest(); request.RequestId = NewRequestId; request.AccessToken = AccessToken; request.ClientTag = ClientTag; request.LoadOptions = new string[] { "Categories" }; ProductResponse response = ActionServiceClient.GetProducts(request); if (request.RequestId != response.CorrelationId) { throw new ApplicationException("GetCategories: RequestId and CorrelationId do not match."); } return(response.Categories); }
public ShoppingCart GetCart() { CartRequest request = new CartRequest(); request.RequestId = NewRequestId; request.AccessToken = AccessToken; request.ClientTag = ClientTag; request.Action = "Read"; CartResponse response = ActionServiceClient.GetCart(request); if (request.RequestId != response.CorrelationId) { throw new ApplicationException("GetCart: Request and CorrelationId do not match."); } return(response.Cart); }
/// <summary> /// Sets shipping method used to compute shipping charges. /// </summary> /// <param name="shippingMethod">The name of the shipper.</param> /// <returns>Updated shopping cart.</returns> public ShoppingCart SetShippingMethod(string shippingMethod) { CartRequest request = new CartRequest(); request.RequestId = NewRequestId; request.AccessToken = AccessToken; request.ClientTag = ClientTag; request.Action = "Update"; request.ShippingMethod = shippingMethod; CartResponse response = ActionServiceClient.SetCart(request); if (request.RequestId != response.CorrelationId) { throw new ApplicationException("SetShippingMethod: Request and CorrelationId do not match."); } return(response.Cart); }
/// <summary> /// Static constructor. /// </summary> static Provider() { Service = new ActionServiceClient(); // Gets client tag from app.config configuration file ClientTag = ConfigurationManager.AppSettings.Get("ClientTag"); // Retrieve AccessToken as first step TokenRequest request = new TokenRequest(); request.RequestId = NewRequestId; request.ClientTag = ClientTag; TokenResponse response = null; SafeProxy.DoAction <ActionServiceClient>(Service, client => { response = client.GetToken(request); }); // Store access token for subsequent service calls. AccessToken = response.AccessToken; }
public IList <Customer> GetCustomersWithOrderStatistics(string sortExpression) { CustomerRequest request = new CustomerRequest(); request.RequestId = NewRequestId; request.AccessToken = AccessToken; request.ClientTag = ClientTag; request.LoadOptions = new string[] { "Customers" }; request.Criteria = new CustomerCriteria { SortExpression = sortExpression, IncludeOrderStatistics = true }; CustomerResponse response = ActionServiceClient.GetCustomers(request); if (request.RequestId != response.CorrelationId) { throw new ApplicationException("GetCustomers: RequestId and CorrelationId do not match."); } return(response.Customers); }
/// <summary> /// Removes a line item from the shopping cart. /// </summary> /// <param name="productId">The item to be removed.</param> /// <returns>Updated shopping cart.</returns> public ShoppingCart RemoveItem(int productId) { CartRequest request = new CartRequest(); request.RequestId = NewRequestId; request.AccessToken = AccessToken; request.ClientTag = ClientTag; request.Action = "Delete"; request.CartItem = new ShoppingCartItem { Id = productId }; CartResponse response = ActionServiceClient.SetCart(request); if (request.RequestId != response.CorrelationId) { throw new ApplicationException("RemoveItem: Request and CorrelationId do not match."); } return(response.Cart); }
public Product GetProduct(int productId) { ProductRequest request = new ProductRequest(); request.RequestId = NewRequestId; request.AccessToken = AccessToken; request.ClientTag = ClientTag; request.LoadOptions = new string[] { "Product" }; request.Criteria = new ProductCriteria { ProductId = productId }; ProductResponse response = ActionServiceClient.GetProducts(request); if (request.RequestId != response.CorrelationId) { throw new ApplicationException("GetProductsByCategory: RequestId and CorrelationId do not match."); } return(response.Product); }
/// <summary> /// Adds an item to the shopping cart. /// </summary> /// <param name="productId">Unique product identifier or item.</param> /// <param name="name">Item name.</param> /// <param name="quantity">Quantity of items.</param> /// <param name="unitPrice">Unit price for each item.</param> /// <returns>Updated shopping cart.</returns> public ShoppingCart AddItem(int productId, string name, int quantity, double unitPrice) { CartRequest request = new CartRequest(); request.RequestId = NewRequestId; request.AccessToken = AccessToken; request.ClientTag = ClientTag; request.Action = "Create"; request.CartItem = new ShoppingCartItem { Id = productId, Name = name, Quantity = quantity, UnitPrice = unitPrice }; CartResponse response = ActionServiceClient.SetCart(request); if (request.RequestId != response.CorrelationId) { throw new ApplicationException("AddItem: Request and CorrelationId do not match."); } return(response.Cart); }
public Customer GetCustomer(int customerId) { CustomerRequest request = new CustomerRequest(); request.RequestId = NewRequestId; request.AccessToken = AccessToken; request.ClientTag = ClientTag; request.LoadOptions = new string[] { "Customer" }; request.Criteria = new CustomerCriteria { CustomerId = customerId }; CustomerResponse response = ActionServiceClient.GetCustomers(request); if (request.RequestId != response.CorrelationId) { throw new ApplicationException("GetCustomers: RequestId and CorrelationId do not match."); } return(response.Customer); }
/// <summary> /// Searches for products. /// </summary> /// <param name="productName">Product name.</param> /// <param name="priceRangeId">Price range identifier.</param> /// <param name="sortExpression">Sort order in which products are returned.</param> /// <returns>List of products that meet the search criteria.</returns> public IList <Product> SearchProducts(string productName, int priceRangeId, string sortExpression) { ProductRequest request = new ProductRequest(); request.RequestId = NewRequestId; request.AccessToken = AccessToken; request.ClientTag = ClientTag; request.LoadOptions = new string[] { "Products", "Search" }; double priceFrom = -1; double priceThru = -1; if (priceRangeId > 0) { PriceRangeItem pri = PriceRange.List[priceRangeId]; priceFrom = pri.RangeFrom; priceThru = pri.RangeThru; } request.Criteria = new ProductCriteria { ProductName = productName, PriceFrom = priceFrom, PriceThru = priceThru, SortExpression = sortExpression }; ProductResponse response = ActionServiceClient.GetProducts(request); if (request.RequestId != response.CorrelationId) { throw new ApplicationException("SearchProducts: Request and CorrelationId do not match."); } return(response.Products); }
public IList <Product> GetProducts(int categoryId, string sortExpression) { ProductRequest request = new ProductRequest(); request.RequestId = NewRequestId; request.AccessToken = AccessToken; request.ClientTag = ClientTag; request.LoadOptions = new string[] { "Products" }; request.Criteria = new ProductCriteria { CategoryId = categoryId, SortExpression = sortExpression }; ProductResponse response = ActionServiceClient.GetProducts(request); if (request.RequestId != response.CorrelationId) { throw new ApplicationException("GetProductsByCategory: RequestId and CorrelationId do not match."); } return(response.Products); }
public void UpdateCustomer(Customer customer) { CustomerRequest request = new CustomerRequest(); request.RequestId = NewRequestId; request.AccessToken = AccessToken; request.ClientTag = ClientTag; request.Action = "Update"; request.Customer = customer; CustomerResponse response = ActionServiceClient.SetCustomers(request); if (request.RequestId != response.CorrelationId) { throw new ApplicationException("UpdateCustomer: RequestId and CorrelationId do not match."); } // These messages are for public consumption. Includes validation errors. if (response.Acknowledge == AcknowledgeType.Failure) { throw new ApplicationException(response.Message); } }
public ActionServiceClient(EndpointConfiguration endpointConfiguration) : base(ActionServiceClient.GetBindingForEndpoint(endpointConfiguration), ActionServiceClient.GetEndpointAddress(endpointConfiguration)) { this.Endpoint.Name = endpointConfiguration.ToString(); ConfigureEndpoint(this.Endpoint, this.ClientCredentials); }
public ActionServiceClient() : base(ActionServiceClient.GetDefaultBinding(), ActionServiceClient.GetDefaultEndpointAddress()) { this.Endpoint.Name = EndpointConfiguration.BasicHttpBinding_IActionService.ToString(); ConfigureEndpoint(this.Endpoint, this.ClientCredentials); }
private static System.ServiceModel.EndpointAddress GetDefaultEndpointAddress() { return(ActionServiceClient.GetEndpointAddress(EndpointConfiguration.BasicHttpBinding_IActionService)); }
public ActionServiceClient(EndpointConfiguration endpointConfiguration, System.ServiceModel.EndpointAddress remoteAddress) : base(ActionServiceClient.GetBindingForEndpoint(endpointConfiguration), remoteAddress) { this.Endpoint.Name = endpointConfiguration.ToString(); ConfigureEndpoint(this.Endpoint, this.ClientCredentials); }
private static System.ServiceModel.Channels.Binding GetDefaultBinding() { return(ActionServiceClient.GetBindingForEndpoint(EndpointConfiguration.BasicHttpBinding_IActionService)); }