public async Task CreatePhoneBookRecord_When_Validation_Has_Failed_Do_Not_Invoke_All_Interfaces()
        {
            // Arrange

            var mockPhoneBookRespository = new Mock <IRepository <PhoneBook> >();

            var mockValidate = new Mock <IValidatorObject <PhoneBookDto> >();

            mockValidate.Setup(x => x.ValidateWithResultAsync(It.IsAny <PhoneBookDto>(),
                                                              It.IsAny <CancellationToken>())).ReturnsAsync(FailedFakeValidationResponse());

            var addPhoneBookRecord = new AddPhoneBookRecord(mockPhoneBookRespository.Object,
                                                            mockValidate.Object);

            // Act

            var phonebookDto = new PhoneBookDto
            {
                FirstName   = "Test Firstname",
                Surname     = "Test Surname",
                PhoneNumber = "0215365215"
            };
            await addPhoneBookRecord.CreatePhoneBookRecord(phonebookDto,
                                                           It.IsAny <CancellationToken>());

            // Assert

            mockValidate.Verify(x => x.ValidateWithResultAsync(It.IsAny <PhoneBookDto>(),
                                                               It.IsAny <CancellationToken>()), Times.Once);

            // This should not be invoked

            mockPhoneBookRespository.Verify(x => x.Add(It.IsAny <PhoneBook>()), Times.Never);
        }
        public async Task CreatePhoneBookRecord_Success()
        {
            // Arrange

            var mockPhoneBookRespository = new Mock <IRepository <PhoneBook> >();

            var mockValidate = new Mock <IValidatorObject <PhoneBookDto> >();

            mockValidate.Setup(x => x.ValidateWithResultAsync(It.IsAny <PhoneBookDto>(),
                                                              It.IsAny <CancellationToken>())).ReturnsAsync(SuccessFakeValidationResponse());

            var addPhoneBookRecord = new AddPhoneBookRecord(mockPhoneBookRespository.Object,
                                                            mockValidate.Object);

            // Act

            var phonebookDto = new PhoneBookDto {
                FirstName   = "Test Firstname",
                Surname     = "Test Surname",
                PhoneNumber = "0215365215"
            };
            await addPhoneBookRecord.CreatePhoneBookRecord(phonebookDto,
                                                           It.IsAny <CancellationToken>());

            // Assert

            mockValidate.Verify(x => x.ValidateWithResultAsync(It.IsAny <PhoneBookDto>(),
                                                               It.IsAny <CancellationToken>()), Times.Once);

            mockPhoneBookRespository.Verify(x => x.Add(It.IsAny <PhoneBook>()), Times.Once);
        }
示例#3
0
        public async Task <ActionResult <PhoneBookDto> > Post([FromBody] PhoneBookDto value)
        {
            var created = await _phoneBookService.CreatePhoneBook(value);

            if (created)
            {
                return(Ok(value));
            }
            return(BadRequest("Either Duplicate primary key added or no phone book name"));
        }
示例#4
0
        public static Directory MapById(PhoneBookDto phoneBookDto, List <EntryBookDto> entryBook)
        {
            Directory           phoneBook  = new Directory();
            List <EntryBookDto> entryBooks = new List <EntryBookDto>();

            phoneBook.PhoneBookId   = phoneBookDto.PhoneBookId;
            phoneBook.PhoneBookName = phoneBookDto.PhoneBookName;
            phoneBook.Entries       = entryBook;

            return(phoneBook);
        }
        public async Task <ActionResult <ValidationResponseDto> > AddPhoneBook([FromBody] PhoneBookDto phoneBook,
                                                                               [FromServices] IAddPhoneBookRecord addPhoneBookRecord,
                                                                               CancellationToken cancellationtoken)
        {
            var response = await addPhoneBookRecord.CreatePhoneBookRecord(phoneBook, cancellationtoken);

            if (!response.IsValid)
            {
                return(BadRequest(response));
            }

            return(Ok(response));
        }
示例#6
0
        public async Task <bool> CreatePhoneBook(PhoneBookDto phoneBookDto)
        {
            var obj = _dbContext.PhoneBookDto.Where(x => x.PhoneBookId == phoneBookDto.PhoneBookId).FirstOrDefault();

            if (obj == null && !(String.IsNullOrEmpty(phoneBookDto.PhoneBookName)))
            {
                await _dbContext.PhoneBookDto.AddAsync(phoneBookDto);

                int phoneEntry = await _dbContext.SaveChangesAsync();

                if (phoneEntry != 0)
                {
                    return(true);
                }
                return(false);
            }
            return(false);
        }
示例#7
0
        public async Task <ValidationResponseDto> CreatePhoneBookRecord(PhoneBookDto phoneBookDto,
                                                                        CancellationToken cancellationToken = default(CancellationToken))
        {
            var validationResponse = await this.validator.ValidateWithResultAsync(phoneBookDto, cancellationToken);

            if (!validationResponse.IsValid)
            {
                return(validationResponse);
            }

            // TODO: add autofac to map objects
            var phonebook = new PhoneBook();

            phonebook.FirstName   = phoneBookDto.FirstName;
            phonebook.Surname     = phoneBookDto.Surname;
            phonebook.PhoneNumber = phoneBookDto.PhoneNumber;

            await this.repository.Add(phonebook);

            return(validationResponse);
        }
        public async Task <bool> CreatePhoneBook(PhoneBookDto phoneBookDto)
        {
            var created = await _phoneBookRepo.CreatePhoneBook(phoneBookDto);

            return(created);
        }
示例#9
0
 public async Task CreatePhoneBook(PhoneBookDto phoneBookDto)
 {
     await _phoneBookService.CreatePhoneBook(phoneBookDto);
 }
        public async Task <ActionResult <PhoneBookDto> > Post([FromBody] PhoneBookDto value)
        {
            await _phoneBookService.CreatePhoneBook(value);

            return(Ok(value));
        }