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); }
public async Task <Result> Create([FromBody] CreateNationalSocietyRequestDto nationalSociety) => await _nationalSocietyService.Create(nationalSociety);