public async Task <ActionResultResponse <string> > Insert(string tenantId, string creatorId, string creatorFullName, string creatorAvata, CoreValueMeta coreValueMeta) { var coreValueId = Guid.NewGuid().ToString(); // Insert new CoreValue. var resultInsertCoreValue = await _coreValueRepository.Insert(new CoreValue { Id = coreValueId, ConcurrencyStamp = coreValueId, IsActive = coreValueMeta.IsActive, Order = coreValueMeta.Order, Image = coreValueMeta.Image, Url = coreValueMeta.Url, TenantId = tenantId, CreatorId = creatorId, CreatorFullName = creatorFullName }); if (resultInsertCoreValue <= 0) { return(new ActionResultResponse <string>(resultInsertCoreValue, _sharedResourceService.GetString(ErrorMessage.SomethingWentWrong))); } #region insert Translation. if (coreValueMeta.Translations.Count > 0) { var resultInsertTranslation = await InsertCoreValueTranslation(); if (resultInsertTranslation.Code <= 0) { return(resultInsertTranslation); } } #endregion return(new ActionResultResponse <string>(1, _websiteResourceService.GetString("Add new core value successful."), string.Empty, coreValueId)); #region Local functions async Task <ActionResultResponse <string> > InsertCoreValueTranslation() { var coreValueTranslations = new List <CoreValueTranslation>(); foreach (var coreValueTranslation in coreValueMeta.Translations) { // Check name exists. var isNameExists = await _coreValueTranslationRepository.CheckExists(coreValueId, tenantId, coreValueTranslation.LanguageId, coreValueTranslation.Name); if (isNameExists) { await RollbackInsertCoreValue(); return(new ActionResultResponse <string>(-2, _websiteResourceService.GetString( "Core value name: \"{0}\" already exists.", coreValueTranslation.Name))); } var coreValueTranslationInsert = new CoreValueTranslation { TenantId = tenantId, CoreValueId = coreValueId, LanguageId = coreValueTranslation.LanguageId.Trim(), Name = coreValueTranslation.Name.Trim(), Description = coreValueTranslation.Description?.Trim(), UnsignName = coreValueTranslation.Name.StripVietnameseChars().ToUpper() }; coreValueTranslations.Add(coreValueTranslationInsert); } // Insert translations. var resultInsertTranslation = await _coreValueTranslationRepository.Inserts(coreValueTranslations); if (resultInsertTranslation > 0) { return(new ActionResultResponse <string>(resultInsertCoreValue, _websiteResourceService.GetString("Add new core value translation successful."), string.Empty, coreValueId)); } await RollbackInsertCoreValueTranslation(); await RollbackInsertCoreValue(); return(new ActionResultResponse <string>(-3, _websiteResourceService.GetString( "Can not insert new core value. Please contact with administrator."))); } async Task RollbackInsertCoreValue() { await _coreValueRepository.ForceDelete(coreValueId); } async Task RollbackInsertCoreValueTranslation() { await _coreValueTranslationRepository.ForceDelete(coreValueId); } #endregion }
public async Task <int> Update(CoreValueTranslation coreValueTranslation) { return(await Context.SaveChangesAsync()); }
public async Task <ActionResultResponse> Update(string tenantId, string lastUpdateUserId, string lastUpdateFullName, string lastUpdateAvata, string coreValueId, CoreValueMeta coreValueMeta) { var info = await _coreValueRepository.GetInfo(coreValueId); if (info == null) { return(new ActionResultResponse(-1, _websiteResourceService.GetString("Core value does not exists."))); } if (info.TenantId != tenantId) { return(new ActionResultResponse(-2, _sharedResourceService.GetString(ErrorMessage.NotHavePermission))); } if (info.ConcurrencyStamp != coreValueMeta.ConcurrencyStamp) { return(new ActionResultResponse(-3, _websiteResourceService.GetString("The core value already updated by other people. You can not update this core value."))); } info.Image = coreValueMeta.Image; info.Url = coreValueMeta.Url; info.IsActive = coreValueMeta.IsActive; info.Order = coreValueMeta.Order; info.ConcurrencyStamp = Guid.NewGuid().ToString(); info.LastUpdate = DateTime.Now; info.LastUpdateUserId = lastUpdateUserId; info.LastUpdateFullName = lastUpdateFullName; await _coreValueRepository.Update(info); //update translate foreach (var coreValueTranslation in coreValueMeta.Translations) { var isNameExists = await _coreValueTranslationRepository.CheckExists(info.Id, tenantId, coreValueTranslation.LanguageId, coreValueTranslation.Name); if (isNameExists) { return(new ActionResultResponse(-4, _websiteResourceService.GetString("Core value name: \"{0}\" already exists.", coreValueTranslation.Name))); } var coreValueTranslationInfo = await _coreValueTranslationRepository.GetInfo(tenantId, coreValueTranslation.LanguageId, coreValueId); if (coreValueTranslationInfo != null) { coreValueTranslationInfo.Name = coreValueTranslation.Name.Trim(); coreValueTranslationInfo.Description = coreValueTranslation.Description?.Trim(); coreValueTranslationInfo.UnsignName = coreValueTranslation.Name.StripVietnameseChars().ToUpper(); await _coreValueTranslationRepository.Update(coreValueTranslationInfo); } else { var coreValueTranslationInsert = new CoreValueTranslation { CoreValueId = coreValueId, LanguageId = coreValueTranslation.LanguageId.Trim(), Name = coreValueTranslation.Name.Trim(), Description = coreValueTranslation.Description?.Trim(), UnsignName = coreValueTranslation.Name.StripVietnameseChars().ToUpper() }; await _coreValueTranslationRepository.Insert(coreValueTranslationInsert); } } return(new ActionResultResponse(1, _websiteResourceService.GetString("Update core value successful."))); }
public async Task <int> Insert(CoreValueTranslation coreValueTranslation) { _coreValueTranslationRepository.Create(coreValueTranslation); return(await Context.SaveChangesAsync()); }