private void SaveAsDataPhrases(ExcelImportEventArgs arg) { ExcelSheet excelSheet = arg.Result; // Extract data from imported Excel sheet List <DataPhraseDto> dataPhrases = new List <DataPhraseDto>(); for (int index = excelSheet.DataStartRowIndex; index < excelSheet.Rows.Count; index++) { ExcelSheetRow excelRow = excelSheet.Rows[index]; DataPhraseDto dataPhrase = new DataPhraseDto(); dataPhrases.Add(dataPhrase); dataPhrase.PhraseKey = excelRow.GetValue(Col_Key); dataPhrase.PhraseValue = excelRow.GetValue(Col_Value); } // Save batch using (IUnitOfWork uow = UnitOfWorkFactory.Instance.Start(DataStoreResolver.CRMDataStoreKey)) { LanguageFacade facade = new LanguageFacade(uow); IFacadeUpdateResult <DataPhraseData> result = facade.SaveDataPhrases(SelectedLanguageId, dataPhrases); if (result.IsSuccessful) { arg.IsSuccessful = true; arg.Message = string.Format("Batch save done. \\nTotal {0} rows.", dataPhrases.Count); } else { arg.IsSuccessful = false; // Deal with Update result ProcUpdateResult(result.ValidationResult, result.Exception); } } }
public IFacadeUpdateResult <DataPhraseData> SaveDataPhrase(DataPhraseDto dto) { UnitOfWork.BeginTransaction(); IFacadeUpdateResult <DataPhraseData> result = DataPhraseSystem.SaveDataPhrase(dto); if (result.IsSuccessful) { UnitOfWork.CommitTransaction(); } else { UnitOfWork.RollbackTransaction(); } 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); }