Exemple #1
0
        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);
        }
Exemple #3
0
        /// <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);
        }
Exemple #4
0
        /// <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);
        }
Exemple #6
0
        /// <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;
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        /// <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);
        }
Exemple #10
0
        /// <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;
        }
Exemple #11
0
        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);
        }
Exemple #12
0
        /// <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);
        }
Exemple #13
0
        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);
        }
Exemple #14
0
        /// <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);
        }
Exemple #15
0
        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);
        }
Exemple #16
0
        /// <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);
        }
Exemple #17
0
        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);
        }
Exemple #18
0
        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);
            }
        }
Exemple #19
0
 public ActionServiceClient(EndpointConfiguration endpointConfiguration) :
     base(ActionServiceClient.GetBindingForEndpoint(endpointConfiguration), ActionServiceClient.GetEndpointAddress(endpointConfiguration))
 {
     this.Endpoint.Name = endpointConfiguration.ToString();
     ConfigureEndpoint(this.Endpoint, this.ClientCredentials);
 }
Exemple #20
0
 public ActionServiceClient() :
     base(ActionServiceClient.GetDefaultBinding(), ActionServiceClient.GetDefaultEndpointAddress())
 {
     this.Endpoint.Name = EndpointConfiguration.BasicHttpBinding_IActionService.ToString();
     ConfigureEndpoint(this.Endpoint, this.ClientCredentials);
 }
Exemple #21
0
 private static System.ServiceModel.EndpointAddress GetDefaultEndpointAddress()
 {
     return(ActionServiceClient.GetEndpointAddress(EndpointConfiguration.BasicHttpBinding_IActionService));
 }
Exemple #22
0
 public ActionServiceClient(EndpointConfiguration endpointConfiguration, System.ServiceModel.EndpointAddress remoteAddress) :
     base(ActionServiceClient.GetBindingForEndpoint(endpointConfiguration), remoteAddress)
 {
     this.Endpoint.Name = endpointConfiguration.ToString();
     ConfigureEndpoint(this.Endpoint, this.ClientCredentials);
 }
Exemple #23
0
 private static System.ServiceModel.Channels.Binding GetDefaultBinding()
 {
     return(ActionServiceClient.GetBindingForEndpoint(EndpointConfiguration.BasicHttpBinding_IActionService));
 }