/// <summary> /// Adds a new customer to the database. /// </summary> /// <param name="customer">Customer.</param> /// <returns>Number of records affected. If all worked well, then should be 1.</returns> public int AddCustomer(CustomerModel customer) { CustomerRequest request = new CustomerRequest(); request.RequestId = NewRequestId; request.AccessToken = AccessToken; request.ClientTag = ClientTag; request.Action = "Create"; 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("AddCustomer: RequestId and CorrelationId do not match."); if (response.Acknowledge != AcknowledgeType.Success) throw new ApplicationException(response.Message); // Update version & new customerId customer.Version = response.Customer.Version; customer.CustomerId = response.Customer.CustomerId; return response.RowsAffected; }
/// <summary> /// Maps single customer data transfer object to customer model. /// </summary> /// <param name="customer">The customer data transfer object.</param> /// <param name="provider">Provider.</param> /// <returns></returns> internal static CustomerModel FromDataTransferObject(Customer customer, IProvider provider) { CustomerModel customerModel = new CustomerModel(provider); customerModel.CustomerId = customer.CustomerId; customerModel.Company = customer.Company; customerModel.City = customer.City; customerModel.Country = customer.Country; customerModel.Orders = FromDataTransferObjects(customer.Orders); customerModel.Version = customer.Version; return customerModel; }
/// <summary> /// Maps customer model object to customer data transfer object. /// </summary> /// <param name="customer">Customer model object.</param> /// <returns>Customer data transfer object.</returns> internal static Customer ToDataTransferObject(CustomerModel customer) { return new Customer { CustomerId = customer.CustomerId, Company = customer.Company, City = customer.City, Country = customer.Country, Version = customer.Version }; }