コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }