public FileUploadController(IProductAPI productAPI, IOrderAPI orderAPI, ITimeAPI timeAPI, ICampaignAPI campaignAPI) { _productAPI = productAPI; _orderAPI = orderAPI; _timeAPI = timeAPI; _campaignAPI = campaignAPI; }
public OrderController(IOrderAPI orderAPI, IEventPublisher eventPublisher, IConsulClient consulClient, IHttpClientFactory httpClient) { _orderAPI = orderAPI; _eventPublisher = eventPublisher; _consulClient = consulClient; this._factory = httpClient; }
public static void Main(string[] args) { IOrderAPI api = null; // Your implementation string accessToken = null; // Your access token if (api == null || string.IsNullOrWhiteSpace(accessToken)) { Console.WriteLine("You need to set the api and the accessToken."); return; } var orders = new List <Order>(); var startDate = DateTime.Now.AddDays(-30); if (api != null) { api.DeserializeAccessToken(accessToken); int numberOfPages; var currentPage = 1; const int pageSize = 50; do { try { orders.AddRange(api.GetOrderList( startDate, 19, 7, out _, out numberOfPages, currentPage, pageSize )); } catch (Exception e) { Console.WriteLine( $"Execption while querying page {currentPage} with pageSize {pageSize} and startDate {startDate}"); Console.WriteLine(e); throw; } } while (++currentPage <= numberOfPages); if (api.SerializeAccessToken() != accessToken) { Console.WriteLine("The access token was modified."); } } Console.WriteLine($"Loaded {orders.Count} order(s)."); foreach (var order in orders) { var isValid = true; var uniqueIdentifier = string.IsNullOrWhiteSpace(order.Id) ? order.OrderNumber : order.Id; if (string.IsNullOrWhiteSpace(order.Id)) { isValid = false; Console.WriteLine($"Order {uniqueIdentifier}: Missing {nameof(order.Id)}"); } if (string.IsNullOrWhiteSpace(order.OrderNumber)) { isValid = false; Console.WriteLine($"Order {uniqueIdentifier}: Missing {nameof(order.OrderNumber)}"); } if (order.CreatedAt == default) { isValid = false; Console.WriteLine($"Order {uniqueIdentifier}: {nameof(order.CreatedAt)} was not set."); } if (string.IsNullOrWhiteSpace(order.Currency)) { isValid = false; Console.WriteLine($"Order {uniqueIdentifier}: Missing {nameof(order.Currency)}"); } else if (order.Currency.Trim().Length != 3) { isValid = false; Console.WriteLine( $"Order {uniqueIdentifier}: {nameof(order.Currency)} must be a valid 3 letter currency code."); } if (order.InvoiceAddress == null) { isValid = false; Console.WriteLine($"Order {uniqueIdentifier}: Missing {nameof(order.InvoiceAddress)}"); } else { isValid &= _validateAddress($"{uniqueIdentifier}.{nameof(order.InvoiceAddress)}", order.InvoiceAddress); } if (order.ShippingAddress == null) { isValid = false; Console.WriteLine($"Order {uniqueIdentifier}: Missing {nameof(order.ShippingAddress)}"); } else { isValid &= _validateAddress($"{uniqueIdentifier}.{nameof(order.ShippingAddress)}", order.ShippingAddress); } if (isValid && string.IsNullOrWhiteSpace(order.ShippingAddress.Email) && string.IsNullOrWhiteSpace(order.InvoiceAddress.Email)) { isValid = false; Console.WriteLine( $"Order {uniqueIdentifier}: Missing a Email in {nameof(order.InvoiceAddress)} or {nameof(order.ShippingAddress)}"); } if (!string.IsNullOrWhiteSpace(order.IsCancellationFor) && !order.IsCanceled) { isValid = false; Console.WriteLine( $"Order {uniqueIdentifier}: {nameof(order.IsCancellationFor)} is set but {nameof(order.IsCanceled)} is false."); } if (order.OrderItems == null) { isValid = false; Console.WriteLine($"Order {uniqueIdentifier}: Missing {nameof(order.OrderItems)}"); } else if (!order.OrderItems.Any()) { isValid = false; Console.WriteLine($"Order {uniqueIdentifier}: The order has no OrderItems and should be excluded."); } else { _validateOrderItems(uniqueIdentifier, order); } if (orders.Any(o => o.Id == order.Id && o.GetHashCode() != order.GetHashCode())) { isValid = false; Console.WriteLine($"Order {uniqueIdentifier}: There is more than one order with the same id."); } Console.WriteLine($"Order {uniqueIdentifier} is {(isValid ? "valid" : "invalid")}."); Console.WriteLine(); } }