public async Task Read_ValidInput_ReturnsCorrectData(int id) { #region Arrange var dbContext = new ApplicationDbContext(_dbContextOptions); await dbContext.Database.EnsureDeletedAsync(); var language = new Domain.Language { Name = "Name" }; dbContext.Languages.Add(language); await dbContext.SaveChangesAsync(); var expectedLanguage = new LanguageModel { ID = id, Name = language.Name }; var appLanguage = new Language(dbContext); #endregion #region Act var actualLanguage = await appLanguage.Read(id); #endregion #region Assert Assert.Equal(expectedLanguage.ID, actualLanguage.ID); Assert.Equal(expectedLanguage.Name, actualLanguage.Name); #endregion }
public async Task Create_InvalidInput_ReturnsNull(string description, int languageID, int length, string releaseDate, string title) { #region Arrange var dbContext = new ApplicationDbContext(_dbContextOptions); await dbContext.Database.EnsureDeletedAsync(); var language = new Domain.Language { Name = "Name" }; dbContext.Languages.Add(language); await dbContext.SaveChangesAsync(); var newMovie = new AdminMovieModel { Description = description, LanguageID = languageID, Length = length, ReleaseDate = DateTime.Parse(releaseDate), Name = title }; var appMovie = new Movie(dbContext); #endregion #region Act var actualMovie = await appMovie.Create(newMovie); #endregion #region Assert Assert.Null(actualMovie); #endregion }
public async Task Update_InvalidInput_ReturnsNull(int id, string name) { #region Arrange var dbContext = new ApplicationDbContext(_dbContextOptions); await dbContext.Database.EnsureDeletedAsync(); var language = new Domain.Language { Name = "Name" }; dbContext.Languages.Add(language); await dbContext.SaveChangesAsync(); var newLanguage = new AdminLanguageModel { ID = id, Name = name }; var appLanguage = new Language(dbContext); #endregion #region Act var actualLanguage = await appLanguage.Update(newLanguage); #endregion #region Assert Assert.Null(actualLanguage); #endregion }
private void InitBindingList() { if (_bindingEntities == null) { _bindingEntities = new BindingTemplate <Domain.Country>(); } if (_bindingEntities.Count > 0) { _bindingEntities.Clear(); } if (_countrylist != null) { foreach (Domain.Country c in _countrylist) { if (c.LanguageID > 0) { Domain.Language lng = ClientEnvironment.LanguageService.FindById(c.CountryLanguage); c.LanguageName = (lng != null) ? lng.Name : String.Empty; } } _bindingEntities.CopyList(_countrylist); } if (gridControlCountries.DataSource == null) { gridControlCountries.DataSource = _bindingEntities; } }
private void UpdateValuesInLanguageVersion(ItemFile itemFile, Item item) { foreach (Field field in item.Fields) { if (field.Shared) { SortedSet <FieldValue> fields = itemFile.SharedFieldValues; UpdateField(item, fields, field); } else { Domain.Language language = itemFile.Languages.FirstOrDefault(l => l.LanguageName == field.Language.Name); if (language == null) { language = new Domain.Language() { LanguageName = field.Language.Name }; itemFile.Languages.Add(language); } Domain.Version version = language.Versions.FirstOrDefault(v => v.VersionNumber == item.Version.Number); if (version == null) { version = new Domain.Version() { VersionNumber = item.Version.Number }; language.Versions.Add(version); } UpdateField(item, version.FieldValues, field); } } }
public async Task Create_ValidRequest_ReturnsJsonResponseAndCreated(string description, int languageID, int length, string releaseDate, string name) { #region Arrange await DeleteDbContent(); var client = GetHttpClient(); var dbContext = GetDbContext(); var language = new Domain.Language { Name = "Name" }; dbContext.Languages.Add(language); await dbContext.SaveChangesAsync(); var newMovie = new AdminMovieModel { Description = description, LanguageID = languageID, Length = length, ReleaseDate = DateTime.Parse(releaseDate), Name = name }; var expectedMovie = new MovieModel { ID = 1, Description = description, Language = new LanguageModel { ID = language.ID, Name = language.Name }, Length = length, ReleaseDate = releaseDate, Name = name }; #endregion #region Act var response = await client.PostAsJsonAsync("/api/movie", newMovie); var responseBody = await response.Content.ReadAsStreamAsync(); var actualMovie = await JsonSerializer.DeserializeAsync <MovieModel>(responseBody); #endregion #region Assert Assert.Equal(HttpStatusCode.Created, response.StatusCode); Assert.Equal(expectedMovie.ID, actualMovie.ID); Assert.Equal(expectedMovie.Description, actualMovie.Description); Assert.Equal(expectedMovie.Language.ID, actualMovie.Language.ID); Assert.Equal(expectedMovie.Language.Name, actualMovie.Language.Name); Assert.Equal(expectedMovie.Length, actualMovie.Length); Assert.Equal(expectedMovie.ReleaseDate, actualMovie.ReleaseDate); Assert.Equal(expectedMovie.Name, actualMovie.Name); #endregion }
public async Task Update_InvalidRequest_ReturnsJsonResponseAndBadRequestWithErrors(int id, string description, int languageID, int length, string releaseDate, string name, IEnumerable <string> expectedErrorNames, IEnumerable <string> expectedErrorMessages) { #region Arrange await DeleteDbContent(); var client = GetHttpClient(); var dbContext = GetDbContext(); var language = new Domain.Language { Name = "Name" }; dbContext.Languages.Add(language); dbContext.Languages.Add(new Domain.Language { Name = "New Name" }); await dbContext.SaveChangesAsync(); var movie = new Domain.Movie { Description = "Description", LanguageID = language.ID, Length = 104, ReleaseDate = "04-10-2010", Name = "Name" }; dbContext.Movies.Add(movie); await dbContext.SaveChangesAsync(); var newMovie = new AdminMovieModel { Description = description, LanguageID = languageID, Length = length, ReleaseDate = DateTime.Parse(releaseDate), Name = name }; #endregion #region Act var response = await client.PutAsJsonAsync($"/api/movie/{id}", newMovie); var responseBody = await response.Content.ReadAsStreamAsync(); var actualMovie = await JsonSerializer.DeserializeAsync <JsonElement>(responseBody); var errorProp = actualMovie.GetProperty("errors"); var errors = errorProp.EnumerateObject(); #endregion #region Assert Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); Assert.Equal(expectedErrorNames.Count(), errors.Count()); Assert.All(expectedErrorNames, errorName => Assert.Contains(errorName, errors.Select(prop => prop.Name))); Assert.All(expectedErrorMessages, errorMessage => Assert.Contains(errorMessage, errors.Select(prop => prop.Value[0].ToString()))); #endregion }
public async Task Create_ValidInput_ReturnsCorrectData(string description, int languageID, int length, string releaseDate, string title) { #region Arrange var dbContext = new ApplicationDbContext(_dbContextOptions); await dbContext.Database.EnsureDeletedAsync(); var language = new Domain.Language { Name = "Name" }; dbContext.Languages.Add(language); await dbContext.SaveChangesAsync(); var newMovie = new AdminMovieModel { ID = 1, Description = description, LanguageID = languageID, Length = length, ReleaseDate = DateTime.Parse(releaseDate), Name = title }; var expectedMovie = new MovieModel { ID = 1, Description = description, Language = new LanguageModel { ID = languageID, Name = language.Name }, Length = length, ReleaseDate = releaseDate, Name = title }; var appMovie = new Movie(dbContext); #endregion #region Act var actualMovie = await appMovie.Create(newMovie); #endregion #region Assert Assert.Equal(expectedMovie.ID, actualMovie.ID); Assert.Equal(expectedMovie.Description, actualMovie.Description); Assert.Equal(expectedMovie.Language.ID, actualMovie.Language.ID); Assert.Equal(expectedMovie.Language.Name, actualMovie.Language.Name); Assert.Equal(expectedMovie.Length, actualMovie.Length); Assert.Equal(expectedMovie.ReleaseDate, actualMovie.ReleaseDate); Assert.Equal(expectedMovie.Name, actualMovie.Name); #endregion }
public override void Delete() { //XtraMessageBox.Show(this, "Delete", this.Name, MessageBoxButtons.OK); List <long> ids = new List <long>(); foreach (int rowHandle in mainGridView.GetSelectedRows()) { Domain.Language lang = (Domain.Language)mainGridView.GetRow(rowHandle); ids.Add(lang.ID); } ClientEnvironment.LanguageService.DeleteListByID(ids); RefreshData(); }
public async Task ConnectGenre_ValidRequest_ReturnsJsonResponseAndOk(int id, int genreID) { #region Arrange await DeleteDbContent(); var client = GetHttpClient(); var dbContext = GetDbContext(); var language = new Domain.Language(); dbContext.Languages.Add(language); await dbContext.SaveChangesAsync(); dbContext.Genres.Add(new Domain.Genre()); dbContext.Movies.Add(new Domain.Movie { LanguageID = language.ID, ReleaseDate = "04-10-2010" }); await dbContext.SaveChangesAsync(); var expectedMovie = new MovieModel { ID = id, Genres = new List <GenreModel> { new GenreModel { ID = genreID } } }; #endregion #region Act var response = await client.PostAsJsonAsync($"/api/movie/{id}/genres", genreID); var responseBody = await response.Content.ReadAsStreamAsync(); var actualMovie = await JsonSerializer.DeserializeAsync <MovieModel>(responseBody); #endregion #region Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal(expectedMovie.ID, actualMovie.ID); Assert.Equal(expectedMovie.Genres.Count(), actualMovie.Genres.Count()); Assert.Equal(expectedMovie.Genres.ToList()[0].ID, actualMovie.Genres.ToList()[0].ID); #endregion }
public async Task Update_LanguageDoesNotExist_ReturnsEmptyMovieModel(int id, string description, int languageID, int length, string releaseDate, string title, int expectedID) { #region Arrange var dbContext = new ApplicationDbContext(_dbContextOptions); await dbContext.Database.EnsureDeletedAsync(); var language = new Domain.Language { Name = "Name" }; dbContext.Languages.Add(language); var movie = new Domain.Movie { Description = "Description", LanguageID = language.ID, Length = 104, ReleaseDate = "04-10-2010", Name = "Title" }; dbContext.Movies.Add(movie); await dbContext.SaveChangesAsync(); var newMovie = new AdminMovieModel { ID = id, Description = description, LanguageID = languageID, Length = length, ReleaseDate = DateTime.Parse(releaseDate), Name = title }; var appMovie = new Movie(dbContext); #endregion #region Act var actualMovie = await appMovie.Update(newMovie); #endregion #region Assert Assert.NotNull(actualMovie); Assert.Equal(expectedID, actualMovie.ID); #endregion }
public override void Edit() { Domain.Language l = (Domain.Language)mainGridView.GetRow(mainGridView.FocusedRowHandle); if (l == null) { return; } FormLanguage f = new FormLanguage(); f.Text = GetLocalized("Edit Language"); f.Language = l; if (f.ShowDialog(OwnerForm) == DialogResult.OK) { ClientEnvironment.LanguageService.SaveOrUpdate(f.Language); } RefreshData(); }
public async Task <LanguageModel> Create(AdminLanguageModel adminLanguageModel) { if (_languageValidation.IsInputValid(adminLanguageModel)) { var language = new Domain.Language { Name = adminLanguageModel.Name }; _applicationDbContext.Languages.Add(language); await _applicationDbContext.SaveChangesAsync(); return(await Read(language.ID)); } return(null); }
public async Task Create_LanguageDoesNotExist_ReturnsJsonResponseAndNotFoundWithErrors(string description, int languageID, int length, string releaseDate, string name, IEnumerable <string> expectedErrorNames, IEnumerable <string> expectedErrorValues) { #region Arrange await DeleteDbContent(); var client = GetHttpClient(); var dbContext = GetDbContext(); var language = new Domain.Language { Name = "Name" }; dbContext.Languages.Add(language); await dbContext.SaveChangesAsync(); var newMovie = new AdminMovieModel { Description = description, LanguageID = languageID, Length = length, ReleaseDate = DateTime.Parse(releaseDate), Name = name }; #endregion #region Act var response = await client.PostAsJsonAsync("/api/movie", newMovie); var responseBody = await response.Content.ReadAsStreamAsync(); var actualMovie = await JsonSerializer.DeserializeAsync <JsonElement>(responseBody); var errorProp = actualMovie.GetProperty("errors"); var errors = errorProp.EnumerateObject(); #endregion #region Assert Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); Assert.Equal(expectedErrorNames.Count(), errors.Count()); Assert.All(expectedErrorNames, errorName => Assert.Contains(errorName, errors.Select(prop => prop.Name))); Assert.All(expectedErrorValues, errorValue => Assert.Contains(errorValue, errors.Select(prop => prop.Value[0].ToString()))); #endregion }
public async Task ReadAll_MoviesExist_ReturnsJsonResponseAndOk() { #region Arrange await DeleteDbContent(); var client = GetHttpClient(); var dbContext = GetDbContext(); var langauge = new Domain.Language(); dbContext.Languages.Add(langauge); await dbContext.SaveChangesAsync(); dbContext.Movies.Add(new Domain.Movie { LanguageID = langauge.ID, ReleaseDate = "04-10-2010" }); dbContext.Movies.Add(new Domain.Movie { LanguageID = langauge.ID, ReleaseDate = "04-10-2010" }); await dbContext.SaveChangesAsync(); int expectedCount = 2; #endregion #region Act var response = await client.GetAsync("/api/movie"); var responseBody = await response.Content.ReadAsStreamAsync(); var actualMovies = await JsonSerializer.DeserializeAsync <IEnumerable <MovieModel> >(responseBody); #endregion #region Assert Assert.NotNull(actualMovies); Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal(expectedCount, actualMovies.Count()); #endregion }
public void EditEntity(Domain.Language aLang) { if (!ReadOnly) { Domain.Language l = (Domain.Language)gridViewLanguages.GetRow(gridViewLanguages.FocusedRowHandle); if (l != null) { using (FormLanguage2 f = new FormLanguage2()) { //f.Text = Localizer.GetLocalized("Edit Language"); f.Language = l; if (f.ShowDialog(OwnerForm) == DialogResult.OK) { // ClientEnvironment.LanguageService.SaveOrUpdate(f.Language); _bindingLanguageList.ResetItemById(f.Language.ID); } } } } }
public async Task ReadAll_MoviesExist_ReturnsAllMovies() { #region Arrange var dbContext = new ApplicationDbContext(_dbContextOptions); await dbContext.Database.EnsureDeletedAsync(); var language = new Domain.Language { Name = "Name" }; dbContext.Languages.Add(language); await dbContext.SaveChangesAsync(); int expectedAmount = 2; dbContext.Movies.AddRange( Enumerable.Range(1, expectedAmount).Select(x => new Domain.Movie { ID = x, Description = $"Description {x}", LanguageID = language.ID, Length = 114, ReleaseDate = "4-10-2010", Name = $"Title {x}" }) ); await dbContext.SaveChangesAsync(); var appMovie = new Movie(dbContext); #endregion #region Act var result = await appMovie.ReadAll(); #endregion #region Assert var actualAmount = Assert.IsAssignableFrom <IEnumerable <MovieModel> >(result).Count(); Assert.Equal(expectedAmount, actualAmount); #endregion }
public async Task Read_ValidRequest_ReturnsJsonResponseAndOk(int id) { #region Arrange await DeleteDbContent(); var client = GetHttpClient(); var dbContext = GetDbContext(); var language = new Domain.Language { Name = "Name" }; dbContext.Languages.Add(language); await dbContext.SaveChangesAsync(); var expectedLanguage = new LanguageModel { ID = language.ID, Name = language.Name }; #endregion #region Act var response = await client.GetAsync($"/api/language/{id}"); var responseBody = await response.Content.ReadAsStreamAsync(); var actualLanguage = await JsonSerializer.DeserializeAsync <LanguageModel>(responseBody); #endregion #region Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal(expectedLanguage.ID, actualLanguage.ID); Assert.Equal(expectedLanguage.Name, actualLanguage.Name); #endregion }
private void BuildEnglishLanguage() { if (!ReadOnly) { ItemResource[] ress = Baumax.Localization.DefaultDiction.GetEnglishResource(); Domain.Language ll = ClientEnvironment.LanguageService.CreateEntity(); ll.Name = "English"; ll.LanguageCode = "EN-US"; ll = ClientEnvironment.LanguageService.Save(ll); List <UIResource> _lst = new List <UIResource>(); UIResource uires = null; foreach (ItemResource res in ress) { _lst.Add(new UIResource(res.Key, ll.ID, res.Value)); } ClientEnvironment.LanguageService.UpdateResources(_lst); } }
public void DeleteEntity(Domain.Language aLang) { if (!ReadOnly) { List <long> ids = new List <long>(); int[] selectedIds = gridViewLanguages.GetSelectedRows(); foreach (int rowHandle in selectedIds) { Domain.Language lang = (Domain.Language)gridViewLanguages.GetRow(rowHandle); ids.Add(lang.ID); } if (ids.Count > 0) { if (QuestionMessageYes(GetLocalized("questiondeletelanguage"))) { // assume multiselect never be enabled. but just in case... if (ids.Count == 1) { try { ClientEnvironment.LanguageService.DeleteByID(ids[0]); System.Diagnostics.Debug.Assert(ids.Count == selectedIds.Length); // == 1 gridViewLanguages.DeleteRow(selectedIds[0]); } catch (DBReferenceConstraintConflictedException) { ErrorMessage(GetLocalized("LanguageAssignedToCountry")); } catch (ValidationException) { ErrorMessage(GetLocalized("CannotDeleteDefaultLanguage")); } catch (EntityException ex) { // 2think: what details should we show? // 2think: how to localize? using (FrmEntityExceptionDetails form = new FrmEntityExceptionDetails(ex)) { form.Text = GetLocalized("CannotDeleteLanguage"); form.ShowDialog(this); } } } else { // assume multiselect will never be enabled. but just in case... try { ClientEnvironment.LanguageService.DeleteListByID(ids); foreach (int rowHandle in selectedIds) { gridViewLanguages.DeleteRow(rowHandle); } } catch (ValidationException) { ErrorMessage(GetLocalized("CannotDeleteDefaultLanguage")); } // can't exactly determine the reason of operation failure for each item separately // so just remove successfully deleted items from list and notify user catch (EntityException ex) { // 2think: isn't this too complicated? maybe we just should reread language list? if (ex.IDs != null) { List <long> failedIDs = new List <long>(ex.IDs); foreach (int rowHandle in selectedIds) { Domain.Language lang = (Domain.Language)gridViewLanguages.GetRow(rowHandle); if (failedIDs.Contains(lang.ID)) { continue; } gridViewLanguages.DeleteRow(rowHandle); } } ErrorMessage(GetLocalized("SomeLanguagesNotDeleted")); } } } } } }
public override bool Commit() { if (Language != null) { String l_name = textEditName.Text.Trim(); if (l_name != Language.Name) { Language.Name = l_name; Modified = true; } /*l_name = textEditCode.Text.Trim(); * if (l_name != Language.LanguageCode) * { * Language.LanguageCode = l_name; * Modified = true; * }*/ if (Modified) { if (Language.IsNew) { try { Domain.Language l = ClientEnvironment.LanguageService.Save(Language); Language.ID = l.ID; NotificationService.OnChangedLanguage(Language); } catch (DBDuplicateKeyException) { ErrorMessage(GetLocalized("languagenameexists")); return(false); } catch (EntityException ex) { // 2think: what details should we show? // 2think: how to localize? using (FrmEntityExceptionDetails form = new FrmEntityExceptionDetails(ex)) { form.Text = GetLocalized("CannotSaveLanguage"); form.ShowDialog(this); } return(false); } } else { try { ClientEnvironment.LanguageService.SaveOrUpdate(Language); NotificationService.OnChangedLanguage(Language); } catch (DBDuplicateKeyException) { ErrorMessage(GetLocalized("languagenameexists")); return(false); } catch (EntityException ex) { // 2think: what details should we show? // 2think: how to localize? using (FrmEntityExceptionDetails form = new FrmEntityExceptionDetails(ex)) { form.Text = GetLocalized("CannotSaveLanguage"); form.ShowDialog(this); } return(false); } } } } return(true); }
public async Task Read_ValidRequest_ReturnsJsonResponseAndOk(int id) { #region Arrange await DeleteDbContent(); var client = GetHttpClient(); var dbContext = GetDbContext(); var language = new Domain.Language { Name = "Name" }; dbContext.Languages.Add(language); await dbContext.SaveChangesAsync(); var movie = new Domain.Movie { Description = "Description", LanguageID = 1, Length = 104, ReleaseDate = "04-10-2010", Name = "Name" }; dbContext.Movies.Add(movie); await dbContext.SaveChangesAsync(); var expectedMovie = new MovieModel { ID = 1, Description = movie.Description, Language = new LanguageModel { ID = language.ID, Name = language.Name }, Length = movie.Length, ReleaseDate = movie.ReleaseDate, Name = movie.Name }; #endregion #region Act var response = await client.GetAsync($"/api/movie/{id}"); var responseBody = await response.Content.ReadAsStreamAsync(); var actualMovie = await JsonSerializer.DeserializeAsync <MovieModel>(responseBody); #endregion #region Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal(expectedMovie.ID, actualMovie.ID); Assert.Equal(expectedMovie.Description, actualMovie.Description); Assert.Equal(expectedMovie.Language.ID, actualMovie.Language.ID); Assert.Equal(expectedMovie.Language.Name, actualMovie.Language.Name); Assert.Equal(expectedMovie.Length, actualMovie.Length); Assert.Equal(expectedMovie.ReleaseDate, actualMovie.ReleaseDate); Assert.Equal(expectedMovie.Name, actualMovie.Name); #endregion }
public async Task Read_ValidInput_ReturnsCorrectData(int id) { #region Arrange var dbContext = new ApplicationDbContext(_dbContextOptions); await dbContext.Database.EnsureDeletedAsync(); var genre = new Domain.Genre { Name = "Name" }; dbContext.Genres.Add(genre); var language = new Domain.Language { Name = "Name" }; dbContext.Languages.Add(language); await dbContext.SaveChangesAsync(); var movie = new Domain.Movie { Description = "Description", Genres = new List <Domain.GenreMovie> { new Domain.GenreMovie { GenreID = genre.ID } }, LanguageID = language.ID, Length = 104, ReleaseDate = "04-10-2010", Name = "Title" }; dbContext.Movies.Add(movie); await dbContext.SaveChangesAsync(); var expectedMovie = new MovieModel { ID = id, Description = movie.Description, Genres = new List <GenreModel> { new GenreModel { ID = genre.ID, Name = genre.Name } }, Language = new LanguageModel { ID = language.ID, Name = language.Name }, Length = movie.Length, ReleaseDate = movie.ReleaseDate, Name = movie.Name }; var appMovie = new Movie(dbContext); #endregion #region Act var actualMovie = await appMovie.Read(id); #endregion #region Assert Assert.Equal(expectedMovie.ID, actualMovie.ID); Assert.Equal(expectedMovie.Description, actualMovie.Description); Assert.Equal(expectedMovie.Genres.ToList()[0].ID, actualMovie.Genres.ToList()[0].ID); Assert.Equal(expectedMovie.Genres.ToList()[0].Name, actualMovie.Genres.ToList()[0].Name); Assert.Equal(expectedMovie.Language.ID, actualMovie.Language.ID); Assert.Equal(expectedMovie.Language.Name, actualMovie.Language.Name); Assert.Equal(expectedMovie.Length, actualMovie.Length); Assert.Equal(expectedMovie.ReleaseDate, actualMovie.ReleaseDate); Assert.Equal(expectedMovie.Name, actualMovie.Name); #endregion }