public void add_new_ClinicalInterest()
        {
            //setup
            var handler = CreateHandler();

            var request = new AddClinicalInterestRequest();
            request.Name = "Test";
            request.IsEnabled = true;

            //act
            var response = HandleRequest<AddClinicalInterestResponse>(handler, request);

            //assert
            using (var context = _objectContextFactory.CreateObjectContext())
            {
                context.ContextOptions.LazyLoadingEnabled = true;
                context.ContextOptions.ProxyCreationEnabled = true;

                var clinicalInterest = context.CreateObjectSet<ClinicalInterest>().Single(g => g.Id == response.Id);

                Assert.AreNotEqual(null, clinicalInterest);
                Assert.AreEqual("Test", clinicalInterest.Name);
                Assert.AreEqual(true, clinicalInterest.IsEnabled);
            }
        }
        public void add_duplicate_ClinicalInterest()
        {
            //setup
            var handler = CreateHandler();

            var request = new AddClinicalInterestRequest();
            request.Name = "Golf";
            request.IsEnabled = true;

            //act
            var response = HandleRequest<AddClinicalInterestResponse>(handler, 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);
        }
        private void Save()
        {
            _clinicalInterestsId = int.Parse(GetFieldValue(_viewModel.Fields, _id), CultureInfo.InvariantCulture);

            if (_clinicalInterestsId == 0)
            {
                var addRequest = new AddClinicalInterestRequest();

                var nameValue = GetFieldValue(_viewModel.Fields, _name);
                addRequest.Name = nameValue;
                var isEnabledValue = GetFieldValue(_viewModel.Fields, _isEnabled);
                addRequest.IsEnabled = bool.Parse(isEnabledValue);

                _clinicalInterestsId = ProcessRequest<AddClinicalInterestResponse>(addRequest).Id;
            }
            else
            {
                //Language Record
                if (_viewModel.Action == RecordActions.Edited)
                {
                    var updateRequest = new UpdateClinicalInterestRequest();

                    updateRequest.Id = _clinicalInterestsId;
                    var nameValue = GetFieldValue(_viewModel.Fields, _name);
                    updateRequest.Name = nameValue;
                    var isEnabledValue = GetFieldValue(_viewModel.Fields, _isEnabled);
                    updateRequest.IsEnabled = bool.Parse(isEnabledValue);

                    ProcessRequest<UpdateClinicalInterestResponse>(updateRequest);
                }
            }
        }