示例#1
0
        public async Task <Result> Create(CreateNationalSocietyRequestDto dto)
        {
            if (_nyssContext.NationalSocieties.Any(ns => ns.Name.ToLower() == dto.Name.ToLower()))
            {
                return(Error <int>(ResultKey.NationalSociety.Creation.NameAlreadyExists));
            }

            var nationalSociety = new NationalSociety
            {
                Name            = dto.Name,
                ContentLanguage = await GetLanguageById(dto.ContentLanguageId),
                Country         = await GetCountryById(dto.CountryId),
                IsArchived      = false,
                StartDate       = DateTime.UtcNow
            };

            if (nationalSociety.ContentLanguage == null)
            {
                return(Error <int>(ResultKey.NationalSociety.Creation.LanguageNotFound));
            }

            if (nationalSociety.Country == null)
            {
                return(Error <int>(ResultKey.NationalSociety.Creation.CountryNotFound));
            }

            await _nyssContext.AddAsync(nationalSociety);

            await _nyssContext.SaveChangesAsync();

            _loggerAdapter.Info($"A national society {nationalSociety} was created");
            return(Success(nationalSociety.Id));
        }
        public async Task CreateNationalSociety_WhenSuccessful_ShouldReturnSuccess()
        {
            // Arrange
            _testData.BasicData.Data.GenerateData().AddToDbContext();
            var nationalSocietyReq = new CreateNationalSocietyRequestDto
            {
                Name = BasicNationalSocietyServiceTestData.NationalSocietyName,
                ContentLanguageId = BasicNationalSocietyServiceTestData.ContentLanguageId,
                CountryId         = BasicNationalSocietyServiceTestData.CountryId
            };

            // Actual
            await _nationalSocietyService.Create(nationalSocietyReq);

            // Assert
            await _nyssContextMock.Received(1).AddAsync(Arg.Any <NationalSociety>());
        }
        public async Task CreateNationalSociety_WhenNameAlreadyExists_ShouldReturnError()
        {
            // Arrange
            _testData.BasicData.Data.GenerateData().AddToDbContext();
            var nationalSocietyReq = new CreateNationalSocietyRequestDto
            {
                Name              = BasicNationalSocietyServiceTestData.ExistingNationalSocietyName,
                CountryId         = BasicNationalSocietyServiceTestData.CountryId,
                ContentLanguageId = BasicNationalSocietyServiceTestData.ContentLanguageId
            };

            // Actual
            var result = await _nationalSocietyService.Create(nationalSocietyReq);

            // Assert
            result.IsSuccess.ShouldBeFalse();
            result.Message.Key.ShouldBe(ResultKey.NationalSociety.Creation.NameAlreadyExists);
        }
        public async Task CreateNationalSociety_WhenLanguageOrCountryNotFound_ShouldReturnError(int countryId, int contentLanguageId)
        {
            // Arrange
            _testData.BasicData.Data.GenerateData().AddToDbContext();
            var nationalSocietyReq = new CreateNationalSocietyRequestDto
            {
                Name              = BasicNationalSocietyServiceTestData.NationalSocietyName,
                CountryId         = countryId,
                ContentLanguageId = contentLanguageId
            };

            // Actual
            var result = await _nationalSocietyService.Create(nationalSocietyReq);

            // Assert
            result.IsSuccess.ShouldBeFalse();
            result.Message.Key.ShouldBeOneOf(ResultKey.NationalSociety.Creation.CountryNotFound, ResultKey.NationalSociety.Creation.LanguageNotFound);
        }
示例#5
0
 public async Task <Result> Create([FromBody] CreateNationalSocietyRequestDto nationalSociety) =>
 await _nationalSocietyService.Create(nationalSociety);