public NonValidatedOrderResponse ValidateMultipleOrders(List <int> orderIdList, string userEmail) { NonValidatedOrderResponse response = new NonValidatedOrderResponse(); List <API_LIST_ORDERS_SSCC_FOR_APPROVAL_Result> result = new List <API_LIST_ORDERS_SSCC_FOR_APPROVAL_Result>(); //Fetch the non-validated SSCC list for the order ids using (var dbEntity = new BACKUP_SRL_20180613Entities()) { result = dbEntity.API_LIST_ORDERS_SSCC_FOR_APPROVAL(string.Join(",", orderIdList)).ToList(); } if (result.Any()) { //Validate the SSCCs found SSCCListRepository repository = new SSCCListRepository(); List <string> output = repository.ValidateMultipleSSCC(result.Select(item => item.SSCC).ToList(), userEmail); if (output != null && output.Any()) { //In case some SSCC are not validated, then fetch the order numbers and SSCC numbers of these SSCCs. List <API_LIST_ORDERS_SSCC_FOR_APPROVAL_Result> nonValidatedList = new List <API_LIST_ORDERS_SSCC_FOR_APPROVAL_Result>(); output.ForEach(s => { nonValidatedList.AddRange(result.Where(item => item.SSCC == s)); }); response = nonValidatedList.ConvertNonValidatedOrder(); } } return(response); }
public NonValidatedOrderResponse ValidateMultipleOrders(List <int> orderIdList) { log.Info(string.Format(LogMessages.RequestMethod, RequestContext.Principal.Identity.Name, $"Order\\ApproveOrders?orderIdList={string.Join(",", orderIdList) }")); NonValidatedOrderResponse response = new NonValidatedOrderResponse(); response = _repo.ValidateMultipleOrders(orderIdList, RequestContext.Principal.Identity.Name); if (response.NonValidatedOrderList != null && response.NonValidatedOrderList.Any()) { throw HttpMessageExceptionBuilder.Build(HttpStatusCode.Accepted, HttpMessageType.Warn, JsonConvert.SerializeObject(string.Join(",", response.NonValidatedOrderList.Select(item => item.OrderNumber))), Messages.ValidateMultipleOrder, Messages.ValidateMultipleOrderHeader); } return(response); }
public static NonValidatedOrderResponse ConvertNonValidatedOrder(this List <API_LIST_ORDERS_SSCC_FOR_APPROVAL_Result> result) { NonValidatedOrderResponse response = new NonValidatedOrderResponse(); if (result.Any()) { //Get SSCC list for each non validated order List <string> orderNumbers = result.Select(r => r.ORD_ORDER_NUMBER).Distinct().ToList(); if (orderNumbers.Count > 0) { response.NonValidatedOrderList = new List <NonValidatedOrder>(); foreach (string ordNumber in orderNumbers) { NonValidatedOrder nonValidatedOrder = new NonValidatedOrder { OrderNumber = ordNumber, SSCCs = result.Where(r => r.ORD_ORDER_NUMBER == ordNumber).Select(r => r.SSCC).ToList() }; response.NonValidatedOrderList.Add(nonValidatedOrder); } } } return(response); }