private void SetupServiceItemsDataSource(long serviceItemGroupId)
 {
     CurrentServiceItems = CurrentServiceItemGroups != null && CurrentServiceItemGroups.Count > 0
         ? ServiceItems.Where(si => si.ServiceItemGroupId == serviceItemGroupId).ToList()
         : new List <ServiceItemWithServiceItemGroupDTO>();
     ServiceItemsBindingList             = new BindingList <ServiceItemWithServiceItemGroupDTO>(CurrentServiceItems);
     serviceItemsDataGridView.DataSource = ServiceItemsBindingList;
 }
        private void UpdateServiceItemsList()
        {
            if (CurrentServiceItems == null)
            {
                return;
            }

            foreach (var serviceItem in CurrentServiceItems)
            {
                var existingServiceItem = ServiceItems
                                          .Where(si => si.Id == serviceItem.Id)
                                          .FirstOrDefault();

                if (existingServiceItem != null)
                {
                    var index = ServiceItems.IndexOf(existingServiceItem);
                    ServiceItems[index] = existingServiceItem;
                }
                else
                {
                    serviceItem.ServiceItemGroupId = CurrentServiceItemGroupId;
                    ServiceItems.Add(serviceItem);
                }
            }

            foreach (var serviceItemId in DeletedServiceItems)
            {
                var existingServiceItem = ServiceItems
                                          .Where(si => si.Id == serviceItemId)
                                          .FirstOrDefault();

                if (existingServiceItem != null)
                {
                    var index = ServiceItems.IndexOf(existingServiceItem);
                    ServiceItems.RemoveAt(index);
                }
            }
        }