public async void Run_SearchCustomerTest() { ShowTestOnTerminal("SearchCustomer"); UpdateCustomerRequest setupRequest = new UpdateCustomerRequest { Customer = new Customer { FirstName = "Test", LastName = "Customer", CompanyName = "Test Company", EmailAddress = "*****@*****.**", SmsNumber = "(123) 123-1234", }, }; output.WriteLine("Setup request: {0}", setupRequest); CustomerResponse setupResponse = await blockchyp.UpdateCustomerAsync(setupRequest); output.WriteLine("Setup Response: {0}", setupResponse); CustomerSearchRequest request = new CustomerSearchRequest { Query = "123123", }; output.WriteLine("Request: {0}", request); CustomerSearchResponse response = await blockchyp.CustomerSearchAsync(request); output.WriteLine("Response: {0}", response); Assert.True(response.Success, "response.Success"); }
public IList <Customer> FindCustomers(CustomerSearchRequest model) { if (model.Name != null) { model.Name = "%" + model.Name + "%"; } using (var conn = new SqlConnection(GetConnectionString())) { return(conn.Query <Customer>(@"SELECT c.[Id] ,c.[Name] ,c.[Phone] ,g.Name as Gender ,ci.Name as [City] ,r.Name as [Region] ,c.[LastPurchase] ,cl.Name as [Classification] , u.Login as [Seller] FROM [Customer] c inner join Gender g on g.id = c.genderid inner join City ci on ci.id = c.cityid inner join Region r on r.id = c.regionid inner join Classification cl on cl.id = c.classificationid inner join UserSys u on u.id = c.userid where (@Name is null or c.Name like @Name) and (@GenderId is null or GenderId = @GenderId) and (@CityId is null or CityId = @CityId) and (@RegionId is null or c.RegionId = @RegionId) and (@ClassificationId is null or ClassificationId = @ClassificationId) and (@SellerId is null or UserId = @SellerId) and (@LastPurchase is null or LastPurchase >= @LastPurchase) and (@Until is null or LastPurchase <= @Until)", model).ToList()); } }
/// <summary> /// Display a student user's subscription information, or offer a number of membership plans /// </summary> /// <remarks> /// Create a new Subscription model /// Get the current user's details from the database /// Check to see if the user has a subscription. /// If the user is subscribed, /// Checks the financial gateway for the matching customer record as the user. /// When the match is found, add the relevant subscription information to the data model. /// Send the model along with the View /// </remarks> /// <returns> /// The details of the student's subscription if the student has a membership. /// The list of membership plans available if not subscribed. /// </returns> // GET: Subscription public ActionResult Index() { SubscriptionViewModel model = new SubscriptionViewModel(); using (_db) { ApplicationUser user = _db.Users.First(u => u.UserName.Equals(User.Identity.Name)); //Ternary operator to evaluate if a user has a subscription model.IsSubscribed = (user.MemberLevel != null); if (model.IsSubscribed) { model.Username = user.FirstName + " " + user.LastName; var request = new CustomerSearchRequest().Email.Is(User.Identity.Name); ResourceCollection <Customer> collection = PaymentGateways.Gateway.Customer.Search(request); if (collection.Ids.Count != 0) { foreach (var entry in collection.FirstItem.CreditCards) { foreach (var sub in entry.Subscriptions) { if (sub.Status == SubscriptionStatus.ACTIVE) { model.LastPaymentDate = sub.PaidThroughDate.Value.Date; model.NextDueDate = sub.NextBillingDate.Value.Date; model.SubscriptionId = sub.Id; } } } } } } return(View(model)); }
private async void btnClick_Click(object sender, EventArgs e) { try { APIService.Username = txtUsername.Text; APIService.Password = txtPassword.Text; if (string.IsNullOrEmpty(txtUsername.Text) || string.IsNullOrEmpty(txtPassword.Text)) { MessageBox.Show("All fields are required! Try again.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var request = new CustomerSearchRequest { Username = txtUsername.Text }; var customer = await _apiService.Get <List <Data.Model.Customer> >(request); if (customer.Count == 0) { MessageBox.Show("Customer with this credentials don't exist! Try again.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } else { frmIndex frm = new frmIndex(); frm.Show(); this.Hide(); } } catch (Exception err) { MessageBox.Show(err.Message, "Wrong username or password", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public static List <CustomerModel> CustomerListExport(string state, string site, bool isProduction) { BusinessFlowContext.SetContext(site, isProduction); var customerList = new List <CustomerModel>(); var customerSearch = new CustomerSearchRequest(); var stateCriterion = new AdditionalCriterion(); stateCriterion.CriterionID = "customer_region_cd"; stateCriterion.CriterionType = AdditionalCriterionType.Database; stateCriterion.Parameters = new string[] { state }; customerSearch.MaxRows = 50000; customerSearch.Filter = CustomerSearchFilter.Active; customerSearch.AddCriterion(stateCriterion); customerSearch.AddCriterion("lu_dt", AdditionalColumnType.Database, DateTime.Today.AddYears(-3).ToShortDateString(), AdditionalCriterionCondition.GreaterThan); var customers = BusinessFlow.WebServices.Customer.Search(customerSearch); if (customers.Customers.Rows.Count == 50000) { throw new NotImplementedException(state + " is just TOO BIG!!"); } foreach (dsCustomerList.CustomersRow customer in customers.Customers) { customerList.Add(SafeCreate(customer)); } return(customerList); }
private string GetCustomerId(string email) { var query = new CustomerSearchRequest(); query.Email.Is(email); return(this.gateway.Value.Customer.Search(query).OfType <Customer>().FirstOrDefault()?.Id); }
public async Task <IActionResult> Index() { CheckoutViewModel model = new CheckoutViewModel(); if (User.Identity.IsAuthenticated) { var user = await _context.Users .FirstOrDefaultAsync( x => x.UserName == User.Identity.Name); model.ContactEmail = user.Email; model.FirstName = user.FirstName; model.LastName = user.LastName; CustomerSearchRequest customerSearchRequest = new CustomerSearchRequest(); customerSearchRequest.Email.Is(User.Identity.Name); var customers = await _braintreeGateway.Customer.SearchAsync(customerSearchRequest); if (customers.Ids.Any()) { Customer customer = customers.FirstItem; model.CreditCards = customer.CreditCards; } } return(View(model)); }
public ActionResult Booking(FormCollection form) { TicketViewModel model = new TicketViewModel(); List <Seat> seats = new List <Seat>(); var eventId = form["eventID"]; int eId = int.Parse(eventId); var seatList = form["seatList"].Split(','); TempData["seatList"] = seatList; using (_db) { LiveEvent newEvent = _db.LiveEvents .Where(ev => ev.EventId == eId) .Include(ev => ev.Venue) .Include(ev => ev.Seats) .FirstOrDefault(); TempData["Event"] = newEvent; foreach (string seatNo in seatList) { if (newEvent != null) { Seat seat = (from s in newEvent.Seats where s.SeatNumber == seatNo select s).First(); seats.Add(seat); seat.Events.Add(newEvent); seat.Status = Seat.SeatBookingStatus.Reserved; } model.Event = newEvent; model.Seats = seats; _db.SaveChanges(); } } //Payment token generation var customerRequest = new CustomerSearchRequest().Email.Is(User.Identity.Name); ResourceCollection <Customer> collection = PaymentGateways.Gateway.Customer.Search(customerRequest); string clientToken; if (collection.Ids.Count != 0) { string custId = collection.FirstItem.Id; clientToken = PaymentGateways.Gateway.ClientToken.generate( new ClientTokenRequest { CustomerId = custId } ); } else { clientToken = PaymentGateways.Gateway.ClientToken.generate(); } ViewBag.ClientToken = clientToken; return(View(model)); }
public void Search_OnCreatedAt() { CustomerRequest request = new CustomerRequest(); Customer customer = gateway.Customer.Create(request).Target; DateTime createdAt = customer.CreatedAt.Value; DateTime threeHoursEarlier = createdAt.AddHours(-3); DateTime oneHourEarlier = createdAt.AddHours(-1); DateTime oneHourLater = createdAt.AddHours(1); CustomerSearchRequest searchRequest = new CustomerSearchRequest(). Id.Is(customer.Id). CreatedAt.Between(oneHourEarlier, oneHourLater); Assert.AreEqual(1, gateway.Customer.Search(searchRequest).MaximumCount); searchRequest = new CustomerSearchRequest(). Id.Is(customer.Id). CreatedAt.GreaterThanOrEqualTo(oneHourEarlier); Assert.AreEqual(1, gateway.Customer.Search(searchRequest).MaximumCount); searchRequest = new CustomerSearchRequest(). Id.Is(customer.Id). CreatedAt.LessThanOrEqualTo(oneHourLater); Assert.AreEqual(1, gateway.Customer.Search(searchRequest).MaximumCount); searchRequest = new CustomerSearchRequest(). Id.Is(customer.Id). CreatedAt.Between(threeHoursEarlier, oneHourEarlier); Assert.AreEqual(0, gateway.Customer.Search(searchRequest).MaximumCount); }
public static List <CustomerModel> CustomerListExport(IEnumerable <int> zipCodes, string site, bool isProduction) { BusinessFlowContext.SetContext(site, isProduction); var customerList = new List <CustomerModel>(); var customerSearch = new CustomerSearchRequest(); var stateCriterion = new AdditionalCriterion(); stateCriterion.CriterionID = "customer_postal_code"; stateCriterion.CriterionType = AdditionalCriterionType.Database; customerSearch.MaxRows = 20000; customerSearch.Filter = CustomerSearchFilter.Active; customerSearch.AddCriterion(stateCriterion); customerSearch.AddCriterion("lu_dt", AdditionalColumnType.Database, DateTime.Today.AddYears(-4).ToShortDateString(), AdditionalCriterionCondition.GreaterThan); for (var i = 0; i < zipCodes.Count(); i += 10) { stateCriterion.Parameters = zipCodes.Skip(i).Take(10).Select(z => z.ToString()).ToArray(); var customers = BusinessFlow.WebServices.Customer.Search(customerSearch); foreach (dsCustomerList.CustomersRow customer in customers.Customers) { customerList.Add(SafeCreate(customer)); } } return(customerList); }
public HttpResponseMessage search(CustomerSearchRequest requestInfo) { var orgs = _IOrgcustService.GetCustomersByFilter(requestInfo); var result = PlatformMappingHelper.Map <IList <OrgCust>, IList <CustomerDTO> >(orgs.ToList()).ToList(); if (result == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } return(Request.CreateResponse <IEnumerable <CustomerDTO> >(HttpStatusCode.OK, result)); }
public List <CustomerDTO> SearchCustomer(CustomerSearchRequest request) { var customers = _customerRepository.All.Where(x => !x.IsDeleted && x.DeletedBy == null); if (!string.IsNullOrWhiteSpace(request.SearchText)) { customers = customers.Where(c => c.FullName.Contains(request.SearchText)); } return(DomainDTOMapper.ToCustomerDTOs(customers.ToList())); }
public ActionResult Index(CustomerSearchRequest request) { CustomerViewModel viewModel = new CustomerViewModel(); var cList = customerService.FindCustomers(request); viewModel.data = cList.Customers; viewModel.recordsTotal = cList.TotalCount; viewModel.recordsFiltered = cList.TotalCount; return(Json(viewModel, JsonRequestBehavior.AllowGet)); }
public HttpResponseMessage MetricsByDocType(CustomerSearchRequest requestInfo) { var docTypeList = _IOrgdoctypService.GetOrgdoctyps().Where(p => p.OrgId == requestInfo.orgId).Select(s => s.Id).ToList(); var result = _IWkflowinstanceService.GetWkflowinstances().Where(p => p.WkflowDefId == 4 && p.OrgId == requestInfo.orgId && (requestInfo.StartDate == null || p.CreateDate > requestInfo.StartDate) && (requestInfo.EndDate == null || p.CreateDate > requestInfo.EndDate)).Where(q => docTypeList.Contains((int)q.WkflowInstanceDocs.FirstOrDefault().Doc.OrgDocTypId)).GroupBy(g => g.WkflowInstanceDocs.FirstOrDefault().Doc.OrgDocTyp.Descript).Select(s => new { Name = s.Key, Value = s.Count() }); if (result == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } return(Request.CreateResponse <IEnumerable <object> >(HttpStatusCode.OK, result)); }
/// <summary> /// Searches for customers. /// </summary> /// <param name="request">A CustomerSearchRequest instance containing the search criteria.</param> /// <returns>A CustomerSearchResult instance containing the results of the customer search.</returns> /// <exception cref="ApiException">Thrown when a <see cref="Fault"/> document is returned.</exception> /// <remarks> /// The search can be configured using a simple query language, which provides most common filter and operator functionality. /// The identifier for an attribute to use in a query condition is always the ID of the attribute as defined in the type definition. /// For custom defined attributes the prefix "c_" is required in the search term (e.g. c_color = {1}), while for system attributes no prefix is used (e.g. name = {4}). /// </remarks> public CustomerSearchResult Search(CustomerSearchRequest request) { var authorization = GetOcapiAuthorizationToken(); var searchUrl = $"{Configuration.DataApiConfiguration.Url}{BASE_PATH}"; var headers = GetWebHeaders(searchUrl, authorization); var searchResponse = ServiceManager.HttpPost <CustomerSearchResult>(searchUrl, headers, GetBytes(request)); return(searchResponse); }
private async void btnShow_Click(object sender, EventArgs e) { var search = new CustomerSearchRequest() { Search = txtSearch.Text }; //calling API var result = await _apiService.Get <List <Model.Customer> >(search); dgvCustomers.DataSource = result; }
public async Task RunAsync(string[] args) { await Parser.Default .ParseArguments <CustomerSearchApplicationOption>(args) .WithParsedAsync(async option => { var searchRequest = new CustomerSearchRequest(option.Id); var result = await _service.SearchByIdAsync(searchRequest); HandleSearchResult(result); // _consoleWriter.WriteLine($"The Customer Id was {option.Id}"); //return Task.CompletedTask; }); }
public async Task <IActionResult> Index([FromBody] CustomerSearchRequest request) { try { var response = await _customerAppService.Search(request); return(Json(response)); } catch (Exception e) { _logger.LogError(e, Common.Common.GetMethodName(), request); throw; } }
public void Search_OnPayPalAccountEmail() { var request = new CustomerRequest { PaymentMethodNonce = Nonce.PayPalFuturePayment }; var customer = gateway.Customer.Create(request).Target; var search = new CustomerSearchRequest(). Id.Is(customer.Id). PayPalAccountEmail.Is(customer.PayPalAccounts[0].Email); Assert.AreEqual(1, gateway.Customer.Search(search).MaximumCount); }
public async Task Filtiranje() { if (SelectedType != null) { CustomerSearchRequest request = new CustomerSearchRequest(); request.CustomerTypeId = SelectedType.CustomerTypeId; var lista = await _serviceCustomer.Get <List <Data.Model.Customer> >(request); customerList.Clear(); foreach (var item in lista) { customerList.Add(item); } } }
public List <Data.Customer> Get(CustomerSearchRequest request) { var query = _context.Customer.Include(x => x.City).AsQueryable(); if (!string.IsNullOrWhiteSpace(request.FirstName) || !string.IsNullOrWhiteSpace(request.LastName)) { query = query.Where(x => x.FirstName.StartsWith(request.FirstName) || x.LastName.StartsWith(request.LastName)); } if (!string.IsNullOrWhiteSpace(request.CityName)) { query = query.Where(x => x.City.CityName.StartsWith(request.CityName)); } query = query.OrderBy(x => x.FirstName); return(_mapper.Map <List <Data.Customer> >(query.ToList())); }
public async Task <CustomerItemsResponse> Get(CustomerSearchRequest request) { var url = "customers/"; url = url.AppendParameter("id", request.id); url = url.AppendParameter("skip", request.skip); url = url.AppendParameter("limit", request.limit); url = url.AppendParameter("search", request.search); url = url.AppendParameter("sortkey", request.sortkey); url = url.AppendParameter("sortdirection", request.sortdirection); url = url.AppendParameter("gateway_id", request.gateway_id); url = url.AppendParameter("archived", request.archived); url = url.AppendParameter("reference", request.reference); url = url.AppendParameter("payment_source_id", request.payment_source_id); return(await _serviceHelper.Get <CustomerItemsResponse>(url, overrideConfigSecretKey : _overrideConfigSecretKey)); }
public async Task <List <Model.Customer> > Get(CustomerSearchRequest request) { var query = _context.Customers.AsQueryable(); if (!string.IsNullOrWhiteSpace(request?.Search)) { query = query.Where(x => x.FirstName.Contains(request.Search) || x.LastName.Contains(request.Search) || x.City.Contains(request.Search) || x.Adress.Contains(request.Search)); } var list = await query.ToListAsync(); return(await Task.FromResult(_mapper.Map <List <Model.Customer> >(list))); }
public async Task <IActionResult> Index(CustomerSearchRequest searchRequest) { try { var model = await _customerService.GetAllCustomersAsync(); if (searchRequest != null) { model = await _customerService.GetCustomerBySearchTermsAsync(searchRequest); } return(View(model)); } catch (ArgumentNullException) { var emptyList = new List <CustomerResponse>(); return(View(emptyList)); } }
public static List <CustomerModel> CustomerPricePointExport(string priceLevelCode, string site, bool isProduction) { var customerList = new List <CustomerModel>(); var customerSearch = new CustomerSearchRequest(); var priceLevelGuid = GetPricePointGuid(priceLevelCode); customerSearch.AddCriterion("customer_closed", AdditionalColumnType.Database, "0"); customerSearch.AddCriterion("customer_suspended", AdditionalColumnType.Database, "0"); customerSearch.AddCriterion("item_price_level_guid", AdditionalColumnType.Database, priceLevelGuid.ToString()); customerSearch.MaxRows = 10000; var customers = BusinessFlow.WebServices.Customer.Search(customerSearch); foreach (dsCustomerList.CustomersRow customer in customers.Customers) { customerList.Add(SafeCreate(customer, priceLevelCode)); } return(customerList); }
private async void btnSearch_Click(object sender, EventArgs e) { var search = new CustomerSearchRequest() { FirstName = txtCustomer.Text, LastName = txtLastName.Text, Phone = txtPhoneNumber.Text, Email = txtEmail.Text }; var result = await _apiService.Get <List <Data.Model.Customer> >(search); dgvAllCustomers.AutoGenerateColumns = false; dgvAllCustomers.DataSource = result; if (result.Count == 0) { MessageBox.Show("There are no results for this search", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
public static List <CustomerModel> CustomerPointInTimeExport(DateTime since, string site, bool isProduction) { BusinessFlowContext.SetContext(site, isProduction); var customerList = new List <CustomerModel>(); var customerSearch = new CustomerSearchRequest(); customerSearch.AddCriterion("customer_closed", AdditionalColumnType.Database, "0"); customerSearch.AddCriterion("customer_suspended", AdditionalColumnType.Database, "0"); customerSearch.AddCriterion("lu_dt", AdditionalColumnType.Database, since.ToShortDateString(), AdditionalCriterionCondition.GreaterThan); customerSearch.MaxRows = 10000; var customers = BusinessFlow.WebServices.Customer.Search(customerSearch); foreach (dsCustomerList.CustomersRow customer in customers.Customers) { customerList.Add(SafeCreate(customer)); } return(customerList); }
private void Load(CustomerSearchRequest model) { var currentUser = db.GetByEmail(HttpContext.User.Identity.Name); if (currentUser.IsAdmin == false) { model.SellerId = currentUser.Id; } var customers = db.FindCustomers(model); PopulateCityDropDownList(model.CityId); PopulateGenderDropDownList(model.GenderId); PopulateSellerDropDownList(model.SellerId); PopulateRegionDropDownList(model.RegionId); PopulateClassificationDropDownList(model.ClassificationId); ViewBag.Customers = customers; ViewBag.IsAdmin = currentUser.IsAdmin; }
public List <CustomerListResponse> SearchCustomer(CustomerSearchRequest searchRequest) { using (DataAccess dataAccess = new DataAccess()) { var CustomerList = from customer in dataAccess.Customers where (customer.StatusID == true && (customer.Name.StartsWith(searchRequest.query) || customer.Surname.StartsWith(searchRequest.query) || (customer.Name + " " + customer.Surname).StartsWith(searchRequest.query))) join city in dataAccess.Cities on customer.CityID equals city.CityID select new CustomerListResponse { CustomerID = customer.CustomerID, Name = customer.Name, Surname = customer.Surname, Email = customer.Email, Password = customer.Password, CityName = city.CityName.ToUpper(), Photo = customer.Photo }; return(CustomerList.ToList()); } }
public ActionResult SendPayment(int?paymentId) { if (paymentId == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Payment payment = _db.Payments .Where(p => p.PaymentId == paymentId) .Include(u => u.User) .Single(); if (payment == null) { return(HttpNotFound()); } //Generate payment token var customerRequest = new CustomerSearchRequest().Email.Is(User.Identity.Name); ResourceCollection <Customer> collection = PaymentGateways.Gateway.Customer.Search(customerRequest); string clientToken; if (collection.Ids.Count != 0) { string custId = collection.FirstItem.Id; clientToken = PaymentGateways.Gateway.ClientToken.generate( new ClientTokenRequest { CustomerId = custId } ); } else { clientToken = PaymentGateways.Gateway.ClientToken.generate(); } ViewBag.ClientToken = clientToken; ViewBag.Message = TempData["message"]; return(View(payment)); }
public void Search_OnCreatedAt() { CustomerRequest request = new CustomerRequest(); Customer customer = gateway.Customer.Create(request).Target; DateTime createdAt = customer.CreatedAt.Value; DateTime threeHoursEarlier = createdAt.AddHours(-3); DateTime oneHourEarlier = createdAt.AddHours(-1); DateTime oneHourLater = createdAt.AddHours(1); CustomerSearchRequest searchRequest = new CustomerSearchRequest(). Id.Is(customer.Id). CreatedAt.Between(oneHourEarlier, oneHourLater); Assert.AreEqual(1, gateway.Customer.Search(searchRequest).MaximumCount); searchRequest = new CustomerSearchRequest(). Id.Is(customer.Id). CreatedAt.GreaterThanOrEqualTo(oneHourEarlier); Assert.AreEqual(1, gateway.Customer.Search(searchRequest).MaximumCount); searchRequest = new CustomerSearchRequest(). Id.Is(customer.Id). CreatedAt.LessThanOrEqualTo(oneHourLater); Assert.AreEqual(1, gateway.Customer.Search(searchRequest).MaximumCount); searchRequest = new CustomerSearchRequest(). Id.Is(customer.Id). CreatedAt.Between(threeHoursEarlier, oneHourEarlier); Assert.AreEqual(0, gateway.Customer.Search(searchRequest).MaximumCount); }
public void Search_OnAllTextFields() { string creditCardToken = string.Format("cc{0}", new Random().Next(1000000).ToString()); CustomerRequest request = new CustomerRequest { Company = "Braintree", Email = "*****@*****.**", Fax = "5551231234", FirstName = "Tom", LastName = "Smith", Phone = "5551231235", Website = "http://example.com", CreditCard = new CreditCardRequest { CardholderName = "Tim Toole", Number = "4111111111111111", ExpirationDate = "05/2012", Token = creditCardToken, BillingAddress = new CreditCardAddressRequest { Company = "Braintree", CountryName = "United States of America", ExtendedAddress = "Suite 123", FirstName = "Drew", LastName = "Michaelson", Locality = "Chicago", PostalCode = "12345", Region = "IL", StreetAddress = "123 Main St" } } }; Customer customer = gateway.Customer.Create(request).Target; customer = gateway.Customer.Find(customer.Id); CustomerSearchRequest searchRequest = new CustomerSearchRequest(). Id.Is(customer.Id). FirstName.Is("Tom"). LastName.Is("Smith"). Company.Is("Braintree"). Email.Is("*****@*****.**"). Website.Is("http://example.com"). Fax.Is("5551231234"). Phone.Is("5551231235"). AddressFirstName.Is("Drew"). AddressLastName.Is("Michaelson"). AddressLocality.Is("Chicago"). AddressPostalCode.Is("12345"). AddressRegion.Is("IL"). AddressCountryName.Is("United States of America"). AddressStreetAddress.Is("123 Main St"). AddressExtendedAddress.Is("Suite 123"). PaymentMethodToken.Is(creditCardToken). CardholderName.Is("Tim Toole"). CreditCardNumber.Is("4111111111111111"). CreditCardExpirationDate.Is("05/2012"); ResourceCollection<Customer> collection = gateway.Customer.Search(searchRequest); Assert.AreEqual(1, collection.MaximumCount); Assert.AreEqual(customer.Id, collection.FirstItem.Id); }
public void Search_FindDuplicateCardsGivenPaymentMethodToken() { CreditCardRequest creditCard = new CreditCardRequest { Number = "4111111111111111", ExpirationDate = "05/2012" }; CustomerRequest jimRequest = new CustomerRequest { FirstName = "Jim", CreditCard = creditCard }; CustomerRequest joeRequest = new CustomerRequest { FirstName = "Jim", CreditCard = creditCard }; Customer jim = gateway.Customer.Create(jimRequest).Target; Customer joe = gateway.Customer.Create(joeRequest).Target; CustomerSearchRequest searchRequest = new CustomerSearchRequest(). PaymentMethodTokenWithDuplicates.Is(jim.CreditCards[0].Token); ResourceCollection<Customer> collection = gateway.Customer.Search(searchRequest); List<string> customerIds = new List<string>(); foreach (Customer customer in collection) { customerIds.Add(customer.Id); } Assert.IsTrue(customerIds.Contains(jim.Id)); Assert.IsTrue(customerIds.Contains(joe.Id)); }
public void Search_OnPayPalAccountEmail() { var request = new CustomerRequest { PaymentMethodNonce = Nonce.PayPalFuturePayment }; var customer = gateway.Customer.Create(request).Target; var search = new CustomerSearchRequest(). Id.Is(customer.Id). PayPalAccountEmail.Is(customer.PayPalAccounts[0].Email); Assert.AreEqual(1, gateway.Customer.Search(search).MaximumCount); }
public void Customer_Add() { var api = Credentials.GetAPI(); var request = new CustomerAddRequest(Credentials.EnterpriseCode, Credentials.DealerNumber, Settings.ServerName); var customer = new { FirstName = "Tom", LastName = "Monck", Email = "*****@*****.**" }; // DT requires that you do a search for the entity first before you add. // They are trying to avoid duplicate customer records. // The search method returns a datatoken that is active for 15 minutes that you can use in an add request. string dataToken = null; try { var customerRequest = new CustomerSearchRequest(Credentials.EnterpriseCode, Credentials.DealerNumber) { FirstName = customer.FirstName.ToUpper(), LastName = customer.LastName.ToUpper(), Email = customer.Email.ToUpper() }; var searchResponse = api.FindCustomers(customerRequest); dataToken = searchResponse.DataToken; } catch (OpenTrackException openTrackException) { if (openTrackException.ErrorCode != "CS02") throw; var dataTokenElements = openTrackException.Response.GetElementsByTagName("DataToken"); if (dataTokenElements.Count > 0) { dataToken = dataTokenElements[0].InnerText; } request.Customer = new Customer { DataToken = dataToken, TypeCode = "C", LastName = "Smith", FirstName = "John", MiddleName = "O", Salutation = "Mr", Gender = "Male", Language = "English", Address1 = "123 Main St", Address2 = "Apt 103", Address3 = "Test", City = "Raleigh", County = "Wake", StateCode = "NC", ZipCode = "27612", PhoneNumber = "555-555-5555", BusinessPhone = "555-555-5555", BusinessExt = "426", FaxNumber = "", BirthDate = "", DriversLicense = "", Contact = "", PreferredContact = "", MailCode = "", TaxExmptNumber = "", AssignedSalesperson = "", CustomerType = "R", PreferredPhone = "", CellPhone = "", PagePhone = "", OtherPhone = "", OtherPhoneDesc = "", Email1 = "*****@*****.**", Email2 = "", OptionalField = "", AllowContactByPostal = "", AllowContactByEmail = "Yes", AllowContactByPhone = "", BusinessPhoneExtension = "", InternationalBusinessPhone = "", InternationalCellPhone = "", ExternalCrossReferenceKey = "", InternationalFaxNumber = "", InternationalOtherPhone = "", InternationalHomePhone = "", CustomerPreferredName = "", InternationalPagerPhone = "", PreferredLanguage = "", InternationalZipCode = "" }; var response = api.AddCustomer(request); Assert.NotNull(response); } }
/// <summary> /// Performs a direct search query again the BrainTree API /// </summary> /// <param name="query"> /// The <see cref="CustomerSearchRequest"/> /// </param> /// <returns> /// The <see cref="ResourceCollection{Customer}"/>. /// </returns> public ResourceCollection<Customer> Search(CustomerSearchRequest query) { var attempt = this.TryGetApiResult(() => this.BraintreeGateway.Customer.Search(query)); return attempt.Success ? attempt.Result : null; }