/// <summary> /// Initiatize instances of each controller. /// </summary> /// <param name="log">Azure logger.</param> /// <returns>A new instance of the Sourcing Controller.</returns> private static SourcingController InitializeSourcingController(ILogger log) { var itemController = new ItemController(log); var requirementController = new RequirementController(log, itemController); var locationController = new LocationController(log); var orderController = new OrderController(log, locationController); var shippingController = new ShippingController(log, itemController); var sourcingController = new SourcingController(log, itemController, locationController, shippingController, orderController, requirementController); return(sourcingController); }
/// <summary> /// Sets the invalidMPN flag to true on the ATG order line for the provided MPN. /// </summary> /// <param name="mpn">Master Product Number that was deemed invalid.</param> /// <param name="atgOrderRes">The ATG Order response object.</param> public void FlagInvalidMPN(string mpn, AtgOrderRes atgOrderRes) { try { var orderItems = SourcingController.GetOrderItemsByMPN(mpn, atgOrderRes); orderItems.ForEach(item => item.invalidMPN = true); var title = "Item is missing data."; var teamsMessage = new TeamsMessage(title, $"Item {mpn} is missing data.", "red", SourcingEngineFunctions.errorLogsUrl); teamsMessage.LogToTeams(teamsMessage); } catch (Exception ex) { var title = "Error in FlagInvalidMPNs"; var teamsMessage = new TeamsMessage(title, $"Order Id: {atgOrderRes.atgOrderId}. Error: {ex.Message}. Stacktrace: {ex.StackTrace}", "yellow", SourcingEngineFunctions.errorLogsUrl); teamsMessage.LogToTeams(teamsMessage); } }