public static void Delete(string deliveryNo, DateTime date) { List <Shipment> shipments = service.GetDelivery(AuthenticationHelper.CompanyId.Value, SessionHelper.SOBId, deliveryNo, date).ToList(); List <long> orderIds = shipments.Select(rec => rec.OrderId).ToList(); List <Shipment> lotsShipments = shipments.Where(rec => rec.LotNoId > 0 && !string.IsNullOrEmpty(rec.SerialNo)).ToList(); List <long> lotstobeDeleted = shipments.Where(rec => rec.LotNoId > 0).Select(cri => cri.LotNoId.Value).ToList(); deleteLots(lotstobeDeleted); if (lotsShipments != null && lotsShipments.Count() > 0) { foreach (var lotNoShipment in lotsShipments) { List <string> serials = lotNoShipment.SerialNo.Split(new char[] { ',' }).ToList(); deleteSerials(serials, lotNoShipment.LotNoId.Value); } } service.DeleteDelivery(AuthenticationHelper.CompanyId.Value, SessionHelper.SOBId, deliveryNo, date); updateOrders(orderIds); }