Exemple #1
0
        /// <summary>
        /// Logs in to the service.
        /// </summary>
        /// <param name="userName">User name.</param>
        /// <param name="password">Password.</param>
        public void Login(string userName, string password)
        {
            LoginRequest request = new LoginRequest();

            request.RequestId   = NewRequestId;
            request.AccessToken = AccessToken;
            request.ClientTag   = ClientTag;

            request.UserName = userName;
            request.Password = password;

            LoginResponse response = null;

            SafeProxy.DoAction <ActionServiceClient>(Service, client =>
                                                     { response = client.Login(request); });

            if (request.RequestId != response.CorrelationId)
            {
                throw new ApplicationException("Login: RequestId and CorrelationId do not match.");
            }

            if (response.Acknowledge != AcknowledgeType.Success)
            {
                throw new ApplicationException(response.Message);
            }
        }
Exemple #2
0
        /// <summary>
        /// Gets an observable collection of orders for a given customer.
        /// </summary>
        /// <param name="customerId">Unique customer identifier.</param>
        /// <returns>List of orders.</returns>
        public ObservableCollection <OrderModel> GetOrders(int customerId)
        {
            OrderRequest request = new OrderRequest();

            request.RequestId   = NewRequestId;
            request.AccessToken = AccessToken;
            request.ClientTag   = ClientTag;

            request.LoadOptions = new string[] { "Orders", "OrderDetails" };
            request.Criteria    = new OrderCriteria {
                CustomerId = customerId, SortExpression = "OrderId ASC"
            };

            OrderResponse response = null;

            SafeProxy.DoAction <ActionServiceClient>(Service, client =>
                                                     { response = client.GetOrders(request); });

            if (request.RequestId != response.CorrelationId)
            {
                throw new ApplicationException("GetOrders: RequestId and CorrelationId do not match.");
            }

            if (response.Acknowledge != AcknowledgeType.Success)
            {
                throw new ApplicationException(response.Message);
            }

            return(Mapper.FromDataTransferObjects(response.Orders));
        }
Exemple #3
0
        /// <summary>
        /// Deletes a customer record.
        /// </summary>
        /// <param name="customerId">Unique customer identifier.</param>
        /// <returns>Number of records affected. Should be 1.</returns>
        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 = null;

            SafeProxy.DoAction <ActionServiceClient>(Service, client =>
                                                     { response = client.SetCustomers(request); });

            if (request.RequestId != response.CorrelationId)
            {
                throw new ApplicationException("DeleteCustomer: RequestId and CorrelationId do not match.");
            }

            if (response.Acknowledge != AcknowledgeType.Success)
            {
                throw new ApplicationException(response.Message);
            }

            return(response.RowsAffected);
        }
Exemple #4
0
        /// <summary>
        /// Updates an existing customer in the database.
        /// </summary>
        /// <param name="customer">The updated customer.</param>
        /// <returns>Number or records affected. Should be 1.</returns>
        public int UpdateCustomer(CustomerModel customer)
        {
            CustomerRequest request = new CustomerRequest();

            request.RequestId   = NewRequestId;
            request.AccessToken = AccessToken;
            request.ClientTag   = ClientTag;

            request.Action   = "Update";
            request.Customer = Mapper.ToDataTransferObject(customer);

            CustomerResponse response = null;

            SafeProxy.DoAction <ActionServiceClient>(Service, client =>
                                                     { response = client.SetCustomers(request); });

            if (request.RequestId != response.CorrelationId)
            {
                throw new ApplicationException("UpdateCustomer: RequestId and CorrelationId do not match.");
            }

            if (response.Acknowledge != AcknowledgeType.Success)
            {
                throw new ApplicationException(response.Message);
            }

            // Update version
            customer.Version = response.Customer.Version;

            return(response.RowsAffected);
        }
Exemple #5
0
        /// <summary>
        /// Gets a specific customer.
        /// </summary>
        /// <param name="customerId">Unique customer identifier.</param>
        /// <returns>Customer.</returns>
        public CustomerModel 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 = null;

            SafeProxy.DoAction <ActionServiceClient>(Service, client =>
                                                     { response = client.GetCustomers(request); });


            if (request.RequestId != response.CorrelationId)
            {
                throw new ApplicationException("GetCustomer: RequestId and CorrelationId do not match.");
            }

            if (response.Acknowledge != AcknowledgeType.Success)
            {
                throw new ApplicationException(response.Message);
            }

            return(Mapper.FromDataTransferObject(response.Customer, this));
        }
Exemple #6
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;
        }