예제 #1
0
        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);
        }