public IFacadeUpdateResult <LanguagePhraseData> SaveSystemPhrases(object languageId, List <LanguagePhraseDto> dtoList) { // Retrieve phrases by languageId Dictionary <string, LanguagePhrase> phrases = new Dictionary <string, LanguagePhrase>(); ILanguagePhraseService service = UnitOfWork.GetService <ILanguagePhraseService>(); var query = service.SearchByLanguage(languageId); if (query.HasResult) { foreach (LanguagePhrase phrase in query.ToBoList <LanguagePhrase>()) { phrases.Add(phrase.PhraseKey, phrase); } } UnitOfWork.BeginTransaction(); FacadeUpdateResult <LanguagePhraseData> result = new FacadeUpdateResult <LanguagePhraseData>(); List <LanguagePhrase> instances = new List <LanguagePhrase>(); foreach (LanguagePhraseDto dto in dtoList) { LanguagePhrase instance = null; if (phrases.ContainsKey(dto.PhraseKey)) { instance = phrases[dto.PhraseKey]; instance.PhraseValue = dto.PhraseValue; } else { instance = service.CreateNew <LanguagePhrase>(); instance.LanguageId = languageId; instance.PhraseKey = dto.PhraseKey; instance.PhraseValue = dto.PhraseValue; } instance.DateModified = DateTime.Now; instances.Add(instance); } var saveQuery = service.SaveAll(instances); result.Merge(saveQuery); if (result.IsSuccessful) { UnitOfWork.CommitTransaction(); } else { UnitOfWork.RollbackTransaction(); } return(result); }
internal List <TDto> RetrieveLanguagePhrasesByLanguage <TDto>(object languageId, IDataConverter <LanguagePhraseData, TDto> converter) where TDto : class { ArgumentValidator.IsNotNull("languageId", languageId); ArgumentValidator.IsNotNull("converter", converter); ILanguagePhraseService service = UnitOfWork.GetService <ILanguagePhraseService>(); var query = service.SearchByLanguage(languageId); if (query.HasResult) { return(query.DataToDtoList(converter).ToList()); } return(null); }
internal IList <BindingListItem> GetBindingList() { List <BindingListItem> dataSource = new List <BindingListItem>(); ILanguagePhraseService service = UnitOfWork.GetService <ILanguagePhraseService>(); var query = service.GetAll(); if (query.HasResult) { foreach (LanguagePhraseData data in query.DataList) { dataSource.Add(new BindingListItem(data.Id, data.PhraseKey)); } } return(dataSource); }
internal TDto RetrieveOrNewLanguagePhrase <TDto>(object instanceId, IDataConverter <LanguagePhraseData, TDto> converter) where TDto : class { ArgumentValidator.IsNotNull("converter", converter); ILanguagePhraseService service = UnitOfWork.GetService <ILanguagePhraseService>(); FacadeUpdateResult <LanguagePhraseData> result = new FacadeUpdateResult <LanguagePhraseData>(); LanguagePhrase instance = RetrieveOrNew <LanguagePhraseData, LanguagePhrase, ILanguagePhraseService>(result.ValidationResult, instanceId); if (result.IsSuccessful) { return(converter.Convert(instance.RetrieveData <LanguagePhraseData>())); } else { return(null); } }
internal IFacadeUpdateResult <LanguagePhraseData> DeleteLanguagePhrase(object instanceId) { ArgumentValidator.IsNotNull("instanceId", instanceId); FacadeUpdateResult <LanguagePhraseData> result = new FacadeUpdateResult <LanguagePhraseData>(); ILanguagePhraseService service = UnitOfWork.GetService <ILanguagePhraseService>(); var query = service.Retrieve(instanceId); if (query.HasResult) { LanguagePhrase instance = query.ToBo <LanguagePhrase>(); var saveQuery = instance.Delete(); result.Merge(saveQuery); } else { AddError(result.ValidationResult, "LanguagePhraseCannotBeFound"); } return(result); }
internal IFacadeUpdateResult <LanguagePhraseData> SaveLanguagePhrase(LanguagePhraseDto dto) { ArgumentValidator.IsNotNull("dto", dto); FacadeUpdateResult <LanguagePhraseData> result = new FacadeUpdateResult <LanguagePhraseData>(); ILanguagePhraseService service = UnitOfWork.GetService <ILanguagePhraseService>(); LanguagePhrase instance = RetrieveOrNew <LanguagePhraseData, LanguagePhrase, ILanguagePhraseService>(result.ValidationResult, dto.Id); if (result.IsSuccessful) { instance.LanguageId = dto.LanguageId; instance.PhraseKey = dto.PhraseKey; instance.PhraseValue = dto.PhraseValue; instance.DateModified = DateTime.Now; var saveQuery = service.Save(instance); result.AttachResult(instance.RetrieveData <LanguagePhraseData>()); result.Merge(saveQuery); } return(result); }