public IFacadeUpdateResult <DataPhraseData> SaveDataPhrases(object languageId, List <DataPhraseDto> dtoList) { FacadeUpdateResult <DataPhraseData> result = new FacadeUpdateResult <DataPhraseData>(); // Retrieve phrases by languageId Dictionary <string, DataPhrase> phrases = new Dictionary <string, DataPhrase>(); IDataPhraseService service = UnitOfWork.GetService <IDataPhraseService>(); var query = service.SearchByLanguage(languageId); if (query.HasResult) { foreach (DataPhrase phrase in query.ToBoList <DataPhrase>()) { phrases.Add(phrase.PhraseKey, phrase); } } // Retrieve or Create instance List <DataPhrase> instances = new List <DataPhrase>(); foreach (DataPhraseDto dto in dtoList) { DataPhrase instance = null; if (phrases.ContainsKey(dto.PhraseKey)) { instance = phrases[dto.PhraseKey]; instance.PhraseValue = dto.PhraseValue; } else { instance = service.CreateNew <DataPhrase>(); instance.LanguageId = languageId; instance.PhraseKey = dto.PhraseKey; instance.PhraseValue = dto.PhraseValue; } instances.Add(instance); } // Save batch UnitOfWork.BeginTransaction(); var saveQuery = service.SaveAll(instances); result.Merge(saveQuery); if (result.IsSuccessful) { UnitOfWork.CommitTransaction(); } else { UnitOfWork.RollbackTransaction(); } return(result); }
internal IList <BindingListItem> GetBindingList() { List <BindingListItem> dataSource = new List <BindingListItem>(); IDataPhraseService service = UnitOfWork.GetService <IDataPhraseService>(); var query = service.GetAll(); if (query.HasResult) { foreach (DataPhraseData data in query.DataList) { dataSource.Add(new BindingListItem(data.Id, data.PhraseKey)); } } return(dataSource); }
internal List <TDto> RetrieveDataPhrasesByLanguage <TDto>(object languageId, IDataConverter <DataPhraseData, TDto> converter) where TDto : class { ArgumentValidator.IsNotNull("languageId", languageId); ArgumentValidator.IsNotNull("converter", converter); IDataPhraseService service = UnitOfWork.GetService <IDataPhraseService>(); var query = service.SearchByLanguage(languageId); if (query.HasResult) { return(query.DataToDtoList(converter).ToList()); } return(null); }
internal TDto RetrieveOrNewDataPhrase <TDto>(object instanceId, IDataConverter <DataPhraseData, TDto> converter) where TDto : class { ArgumentValidator.IsNotNull("converter", converter); IDataPhraseService service = UnitOfWork.GetService <IDataPhraseService>(); FacadeUpdateResult <DataPhraseData> result = new FacadeUpdateResult <DataPhraseData>(); DataPhrase instance = RetrieveOrNew <DataPhraseData, DataPhrase, IDataPhraseService>(result.ValidationResult, instanceId); if (result.IsSuccessful) { return(converter.Convert(instance.RetrieveData <DataPhraseData>())); } else { return(null); } }
internal IFacadeUpdateResult <DataPhraseData> DeleteDataPhrase(object instanceId) { ArgumentValidator.IsNotNull("instanceId", instanceId); FacadeUpdateResult <DataPhraseData> result = new FacadeUpdateResult <DataPhraseData>(); IDataPhraseService service = UnitOfWork.GetService <IDataPhraseService>(); var query = service.Retrieve(instanceId); if (query.HasResult) { DataPhrase instance = query.ToBo <DataPhrase>(); var saveQuery = instance.Delete(); result.Merge(saveQuery); } else { AddError(result.ValidationResult, "DataPhraseCannotBeFound"); } return(result); }
internal IFacadeUpdateResult <DataPhraseData> SaveDataPhrase(DataPhraseDto dto) { ArgumentValidator.IsNotNull("dto", dto); FacadeUpdateResult <DataPhraseData> result = new FacadeUpdateResult <DataPhraseData>(); IDataPhraseService service = UnitOfWork.GetService <IDataPhraseService>(); DataPhrase instance = RetrieveOrNew <DataPhraseData, DataPhrase, IDataPhraseService>(result.ValidationResult, dto.Id); if (result.IsSuccessful) { instance.LanguageId = dto.LanguageId; instance.PhraseKey = dto.PhraseKey; instance.PhraseValue = dto.PhraseValue; var saveQuery = service.Save(instance); result.AttachResult(instance.RetrieveData <DataPhraseData>()); result.Merge(saveQuery); } return(result); }