private void AddWeight()
        {
            
            var vri = ValiadateAddWeight();
            if (!vri.IsValid)
            {
                string message = vri.Results.Aggregate("Invalid ..........\n", (current, rs) => current + ("\t" + rs.ErrorMessage + "\n"));
                MessageBox.Show(message, "Weigh and Receive Delivery");
                return;
            }

            string warningMessage = "";
            decimal totaltareweight =ContainerLookUpList.Where(s => s.IsChecked && s.IsCheckable).Sum(s => s.ContainerType.TareWeight);
            if(!_commodityReweighed)
                Weight = GrossWeight - totaltareweight;
            else
                Weight = GrossWeight - NoOfContainer*selectedCT.TareWeight;
            var item = new WeighReceiveItem();
            item.BatchNumber = GetBatchNumber();
            item.Commodity = SelectedCommodity;
            item.GradeTo = GradeTo;
            item.DeliveredWeight = DeliveredWeight;
            item.Grade = Grade;
            item.Weight = Weight;
            item.TareWeight = selectedCT.TareWeight;
            if (_commodityReweighed)
            {
                if (Weight <= 0)
                {
                    MessageBox.Show("Item with zero weight cannot be added", "Agrimanagr Warning", MessageBoxButton.OK);
                    return;
                }

                ValidateWeights(warningMessage, item);
            }
            else
            {
                ValidateWeights(warningMessage, item);
               // item.Weight = Weight;
            }
           
            LineItem.Add(item);
            _commodityReweighed = false;
            ClearWeighDetails();

            RemainingWeight = ContainerLookUpList.Where(l => !l.IsChecked).Sum(l => l.Weight);
        }
        private void ValidateWeights(string warningMessage, WeighReceiveItem item)
        {


            if (item.DeliveredWeight < Weight)
                warningMessage = "Received weight is more than Delivered Weight.";
            else if (item.DeliveredWeight > Weight)
                warningMessage = "Received weight is less than Delivered weight.";

            if (!string.IsNullOrEmpty(warningMessage) && item.DeliveredWeight != Weight)
            {
                var replace = MessageBox.Show(warningMessage + "\ndo you want to replace delivered weight?",
                                              "Agrimanagr Warning", MessageBoxButton.YesNo);
                item.Weight = replace == MessageBoxResult.Yes ? Weight : item.DeliveredWeight;
            }

            if (string.IsNullOrEmpty(warningMessage))
                item.Weight = item.DeliveredWeight;
        }
        private void AutoAddWeight()
        {
            foreach (var group in ContainerLookUpList.GroupBy(p => new { p.Commodity ,p.CommodityGrade}))
            {
                var item = new WeighReceiveItem();

                item.BatchNumber = GetBatchNumber();
                item.DeliveredWeight = group.Sum(s => s.Weight);
                item.Grade = group.Key.CommodityGrade;
                item.GradeTo = group.Key.CommodityGrade;
                item.Commodity = group.Key.Commodity;
                item.Weight = group.Sum(s=>s.Weight);
                LineItem.Add(item);
            }
            
        }