private DeleteProviderClinicalInterestRequest CreateRequest()
 {
     var request = new DeleteProviderClinicalInterestRequest();
     request.ProviderId = _providerIdWithClinicalInterest;
     request.ClinicalInterestId = _existingProviderClinicalInterestId;
     return request;
 }
        public static void Save(ProviderAdminDetailView parent, SubEntity providerClinicalInterests, int providerId)
        {
            try
            {
                providerClinicalInterests.ErrorMessage = string.Empty;

                //Existing Records Added
                foreach (var record in providerClinicalInterests.Records.Where(r => r.Action == RecordActions.Added))
                {
                    var request = new AddProviderClinicalInterestRequest()
                    {
                        ProviderId = providerId,
                        ClinicalInterestId = int.Parse(parent.GetFieldValue(record.Fields, _clinicalInterestId))
                    };

                    parent.ProcessRequest<AddProviderClinicalInterestResponse>(request);
                }

                //New Records Created
                foreach (var record in providerClinicalInterests.Records.Where(r => r.Action == RecordActions.New))
                {
                    //Add New Language
                    var addClinicalInterestRequest = new AddClinicalInterestRequest()
                    {
                        Name = parent.GetFieldValue(record.Fields, _clinicalInterestName),
                        IsEnabled = true
                    };
                    var addedClinicalInterestId = parent.ProcessRequest<AddClinicalInterestResponse>(addClinicalInterestRequest).Id;

                    //Add newly created language to provider
                    var request = new AddProviderClinicalInterestRequest()
                    {
                        ProviderId = providerId,
                        ClinicalInterestId = addedClinicalInterestId,
                    };

                    parent.ProcessRequest<AddProviderClinicalInterestResponse>(request);
                }

                //Deletes
                foreach (var record in providerClinicalInterests.Records.Where(r => r.Action == RecordActions.Deleted))
                {
                    var request = new DeleteProviderClinicalInterestRequest()
                    {
                        ProviderId = providerId,
                        ClinicalInterestId = int.Parse(parent.GetFieldValue(record.Fields, _clinicalInterestId))
                    };
                    parent.ProcessRequest<DeleteProviderClinicalInterestResponse>(request);
                }
            }
            catch (Exception ex)
            {
                providerClinicalInterests.ErrorMessage = ex.Message;
                throw;
            }

            providerClinicalInterests = BuildClinicalInterestSubEntity(parent, providerId);
        }