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

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

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

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

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

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

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

            //act
            var response = HandleRequest<AddProviderTypeResponse>(handler, request);
        }
        public void add_duplicate_ProviderType()
        {
            //setup
            var handler = CreateHandler();

            var request = new AddProviderTypeRequest();
            request.Name = "ProviderType No1";
            request.IsEnabled = true;

            //act
            var response = HandleRequest<AddProviderTypeResponse>(handler, request);
        }
        public static void Save(ProviderAdminDetailView parent, SubEntity providerTypes, int providerId)
        {
            try
            {
                providerTypes.ErrorMessage = string.Empty;

                //Existing Records Added
                foreach (var record in providerTypes.Records.Where(r => r.Action == RecordActions.Added))
                {
                    var request = new AddProviderProviderTypeRequest()
                    {
                        ProviderId = providerId,
                        ProviderTypeId = int.Parse(parent.GetFieldValue(record.Fields, _providerTypeId))
                    };

                    parent.ProcessRequest<AddProviderProviderTypeResponse>(request);
                }

                //New Records Created
                foreach (var record in providerTypes.Records.Where(r => r.Action == RecordActions.New))
                {
                    //Add New Provider Type
                    var addTypeRequest = new AddProviderTypeRequest()
                    {
                        Name = parent.GetFieldValue(record.Fields, _providerTypeName),
                        IsEnabled = true
                    };
                    var addedTypeId = parent.ProcessRequest<AddProviderTypeResponse>(addTypeRequest).Id;

                    //Add newly created type to provider
                    var request = new AddProviderProviderTypeRequest()
                    {
                        ProviderId = providerId,
                        ProviderTypeId = addedTypeId
                    };

                    parent.ProcessRequest<AddProviderProviderTypeResponse>(request);
                }

                //Deletes
                foreach (var record in providerTypes.Records.Where(r => r.Action == RecordActions.Deleted))
                {
                    var request = new DeleteProviderProviderTypeRequest()
                    {
                        ProviderId = providerId,
                        ProviderTypeId = int.Parse(parent.GetFieldValue(record.Fields, _providerTypeId))
                    };
                    parent.ProcessRequest<DeleteProviderProviderTypeResponse>(request);
                }
            }
            catch (Exception ex)
            {
                providerTypes.ErrorMessage = ex.Message;
                throw;
            }

            providerTypes = BuildProviderTypesSubEntity(parent, providerId);
        }
        private void Save()
        {
            _providerTypesId = int.Parse(GetFieldValue(_viewModel.Fields, _id), CultureInfo.InvariantCulture);

            if (_providerTypesId == 0)
            {
                var addRequest = new AddProviderTypeRequest();

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

                _providerTypesId = ProcessRequest<AddProviderTypeResponse>(addRequest).Id;
            }
            else
            {
                if (_viewModel.Action == RecordActions.Edited)
                {
                    var updateRequest = new UpdateProviderTypeRequest();

                    var idValue = GetFieldValue(_viewModel.Fields, _id);
                    updateRequest.Id = int.Parse(idValue, CultureInfo.InvariantCulture);
                    var nameValue = GetFieldValue(_viewModel.Fields, _name);
                    updateRequest.Name = nameValue;
                    var isEnabledValue = GetFieldValue(_viewModel.Fields, _isEnabled);
                    updateRequest.IsEnabled = bool.Parse(isEnabledValue);

                    ProcessRequest<UpdateProviderTypeResponse>(updateRequest);
                }
            }
        }