public async Task <IActionResult> FaqGroupUpdate(string id, [FromBody] FaqGroupMeta faqGroupMeta) { var result = await _faqGroupService.Update(CurrentUser.TenantId, CurrentUser.Id, CurrentUser.FullName, CurrentUser.Avatar, id, faqGroupMeta.IsQuickUpdate, faqGroupMeta); if (result.Code <= 0) { return(BadRequest(result)); } return(Ok(result)); }
public async Task <IActionResult> FaqGroupInsert([FromBody] FaqGroupMeta faqGroupMeta) { var result = await _faqGroupService.Insert(CurrentUser.TenantId, CurrentUser.Id, CurrentUser.FullName, CurrentUser.Avatar, faqGroupMeta); if (result.Code <= 0) { return(BadRequest(result)); } return(Ok(result)); }
public async Task <ActionResultResponse <string> > Insert(string tenantId, string creatorId, string creatorFullName, string creatorAvata, FaqGroupMeta faqGroupMeta) { var faqGroupId = Guid.NewGuid().ToString(); // Insert new Faq. var resultInsertFaqGroup = await _faqGroupRepository.Insert(new FaqGroup { Id = faqGroupId, ConcurrencyStamp = faqGroupId.Trim(), IsActive = faqGroupMeta.IsActive, Order = faqGroupMeta.Order, TenantId = tenantId, CreatorId = creatorId, CreatorFullName = creatorFullName }); if (resultInsertFaqGroup <= 0) { return(new ActionResultResponse <string>(resultInsertFaqGroup, _sharedResourceService.GetString(ErrorMessage.SomethingWentWrong))); } #region insert Faq Group Translation. if (faqGroupMeta.Translations.Count > 0) { var resultInsertTranslation = await InsertFaqGroupTranslation(); if (resultInsertTranslation.Code <= 0) { return(resultInsertTranslation); } } #endregion return(new ActionResultResponse <string>(1, _websiteResourceService.GetString("Add new Faq group successful."), string.Empty, faqGroupId)); #region Local functions async Task <ActionResultResponse <string> > InsertFaqGroupTranslation() { var faqGroupTranslations = new List <FaqGroupTranslation>(); foreach (var faqGroupTranslation in faqGroupMeta.Translations) { // Check name exists. var isNameExists = await _faqGroupTranslationRepository.CheckExists(faqGroupId, tenantId, faqGroupTranslation.LanguageId, faqGroupTranslation.Name); if (isNameExists) { await RollbackInsertFaqGroup(); return(new ActionResultResponse <string>(-2, _websiteResourceService.GetString( "Faq group name: \"{0}\" already exists.", faqGroupTranslation.Name))); } var FaqGroupTranslationInsert = new FaqGroupTranslation { TenantId = tenantId, FaqGroupId = faqGroupId, LanguageId = faqGroupTranslation.LanguageId.Trim(), Name = faqGroupTranslation.Name.Trim(), Description = faqGroupTranslation.Description?.Trim(), UnsignName = faqGroupTranslation.Name.StripVietnameseChars().ToUpper() }; faqGroupTranslations.Add(FaqGroupTranslationInsert); } // Insert Faq translations. var resultInsertTranslation = await _faqGroupTranslationRepository.Inserts(faqGroupTranslations); if (resultInsertTranslation > 0) { return(new ActionResultResponse <string>(resultInsertFaqGroup, _websiteResourceService.GetString("Add new faq group translation successful."), string.Empty, faqGroupId)); } await RollbackInsertFaqGroupTranslation(); await RollbackInsertFaqGroup(); return(new ActionResultResponse <string>(-3, _websiteResourceService.GetString( "Can not insert new faq group. Please contact with administrator."))); } async Task RollbackInsertFaqGroup() { await _faqGroupRepository.ForceDelete(faqGroupId); } async Task RollbackInsertFaqGroupTranslation() { await _faqGroupTranslationRepository.ForceDelete(faqGroupId); } #endregion }
public async Task <ActionResultResponse <string> > Update(string tenantId, string lastUpdateUserId, string lastUpdateFullName, string lastUpdateAvata, string faqGroupId, bool isQuickUpdate, FaqGroupMeta faqGroupMeta) { var info = await _faqGroupRepository.GetInfo(faqGroupId); if (info == null) { return(new ActionResultResponse <string>(-1, _websiteResourceService.GetString("Faq group does not exists."))); } if (info.TenantId != tenantId) { return(new ActionResultResponse <string> (-2, _sharedResourceService.GetString(ErrorMessage.NotHavePermission))); } if (info.ConcurrencyStamp != faqGroupMeta.ConcurrencyStamp) { return(new ActionResultResponse <string>(-3, _websiteResourceService.GetString("The Faq group already updated by other people. You can not update this Faq group."))); } info.IsActive = faqGroupMeta.IsActive; info.Order = faqGroupMeta.Order; info.ConcurrencyStamp = Guid.NewGuid().ToString(); info.LastUpdate = DateTime.Now; info.LastUpdateUserId = lastUpdateUserId; info.LastUpdateFullName = lastUpdateFullName; await _faqGroupRepository.Update(info); if (!isQuickUpdate) { //udpate translate foreach (var faqGroupTranslation in faqGroupMeta.Translations) { var isNameExists = await _faqGroupTranslationRepository.CheckExists(info.Id, tenantId, faqGroupTranslation.LanguageId, faqGroupTranslation.Name); if (isNameExists) { return(new ActionResultResponse <string>(-4, _websiteResourceService.GetString("Faq group name: \"{0}\" already exists.", faqGroupTranslation.Name))); } var FaqGroupTranslationInfo = await _faqGroupTranslationRepository.GetInfo(tenantId, faqGroupTranslation.LanguageId, faqGroupId); if (FaqGroupTranslationInfo != null) { FaqGroupTranslationInfo.Name = faqGroupTranslation.Name.Trim(); FaqGroupTranslationInfo.Description = faqGroupTranslation.Description?.Trim(); FaqGroupTranslationInfo.UnsignName = faqGroupTranslation.Name.StripVietnameseChars().ToUpper(); await _faqGroupTranslationRepository.Update(FaqGroupTranslationInfo); } else { var faqGroupTranslationInsert = new FaqGroupTranslation { FaqGroupId = faqGroupId, LanguageId = faqGroupTranslation.LanguageId.Trim(), Name = faqGroupTranslation.Name.Trim(), Description = faqGroupTranslation.Description?.Trim(), UnsignName = faqGroupTranslation.Name.StripVietnameseChars().ToUpper() }; await _faqGroupTranslationRepository.Insert(faqGroupTranslationInsert); } } } return(new ActionResultResponse <string>(1, _websiteResourceService.GetString("Update faq group successful."), "", info.ConcurrencyStamp)); }