protected override IDictionaryItem PerformGet(int id) { var sql = GetBaseQuery(false) .Where(GetBaseWhereClause(), new { Id = id }) .OrderBy <DictionaryDto>(x => x.UniqueId); var dto = Database.Fetch <DictionaryDto, LanguageTextDto, DictionaryDto>(new DictionaryLanguageTextRelator().Map, sql).FirstOrDefault(); if (dto == null) { return(null); } var factory = new DictionaryItemFactory(); var entity = factory.BuildEntity(dto); var list = new List <IDictionaryTranslation>(); foreach (var textDto in dto.LanguageTextDtos) { var language = _languageRepository.Get(textDto.LanguageId); var translationFactory = new DictionaryTranslationFactory(dto.UniqueId, language); list.Add(translationFactory.BuildEntity(textDto)); } entity.Translations = list; ((ICanBeDirty)entity).ResetDirtyProperties(); return(entity); }
protected IDictionaryItem ConvertFromDto(DictionaryDto dto) { var entity = DictionaryItemFactory.BuildEntity(dto); entity.Translations = dto.LanguageTextDtos.EmptyNull() .Where(x => x.LanguageId > 0) .Select(x => DictionaryTranslationFactory.BuildEntity(x, dto.UniqueId)) .ToList(); return(entity); }
protected IDictionaryItem ConvertFromDto(DictionaryDto dto) { var factory = new DictionaryItemFactory(); var entity = factory.BuildEntity(dto); var list = new List <IDictionaryTranslation>(); foreach (var textDto in dto.LanguageTextDtos) { if (textDto.LanguageId <= 0) { continue; } var translationFactory = new DictionaryTranslationFactory(dto.UniqueId); list.Add(translationFactory.BuildEntity(textDto)); } entity.Translations = list; return(entity); }
protected IDictionaryItem ConvertFromDto(DictionaryDto dto, ILanguage[] allLanguages) { var factory = new DictionaryItemFactory(); var entity = factory.BuildEntity(dto); var list = new List <IDictionaryTranslation>(); foreach (var textDto in dto.LanguageTextDtos) { //Assuming this is cached! var language = allLanguages.FirstOrDefault(x => x.Id == textDto.LanguageId); if (language == null) { continue; } var translationFactory = new DictionaryTranslationFactory(dto.UniqueId, language); list.Add(translationFactory.BuildEntity(textDto)); } entity.Translations = list; return(entity); }