public async Task CreateAlertContacts(IAlertContact entity)
        {
            // Act
            await _repository.CreateAsync(entity);

            // Assert
            var readEntity = await _repository.GetAsync(entity.Id);

            Assert.Equal(entity.Id, readEntity.Id);
        }
        public async Task GetByIdAllTypes(IAlertContact entity)
        {
            // Arrange
            await _repository.CreateAsync(entity);

            // Act
            var readEntity = await _repository.GetAsync(entity.Id);

            // Assert
            Assert.Equal(entity.Id, readEntity.Id);
            Assert.Equal(entity.GetType(), readEntity.GetType());
        }
        public async Task GetByIdGenericAllTypes(IAlertContact entity)
        {
            // Arrange
            await _repository.CreateAsync(entity);

            var method = _repository.GetType().GetMethods()
                         .Single(m => m.Name == "GetAsync" && m.IsGenericMethod);
            var generic = method.MakeGenericMethod(entity.GetType());

            // Act
            var readEntity = (IAlertContact)(await(dynamic) generic.Invoke(_repository, new object[] { entity.Id }));

            // Assert
            Assert.Equal(entity.Id, readEntity.Id);
            Assert.Equal(entity.GetType(), readEntity.GetType());
        }
        public Task CreateAsync(IAlertContact alertContact)
        {
            if (alertContact == null)
            {
                throw new ArgumentNullException(nameof(alertContact));
            }

            var documentcollectionUri = _configs.DocumentCollectionUri;

            var jObject = JObject.FromObject(alertContact, JsonSerializer.Create(Constants.JsonSerializerSettings));

            // add type
            jObject.Add("_type", JValue.CreateString(DocumentType));

            var json = jObject.ToString();

            var document = JsonSerializable.LoadFrom <Document>(new MemoryStream(Encoding.UTF8.GetBytes(json)));

            return(_client.CreateDocumentAsync(documentcollectionUri, document, null, true));
        }