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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }