public async Task <ActionResultResponse <string> > Update(string tenantId, string lastUpdateUserId, string lastUpdateFullName, string lastUpdateAvata, string faqId, bool isQuickUpdate, FaqMeta faqMeta) { var info = await _faqRepository.GetInfo(faqId); if (info == null) { return(new ActionResultResponse <string>(-1, _websiteResourceService.GetString("Faq does not exists."))); } if (info.TenantId != tenantId) { return(new ActionResultResponse <string>(-2, _sharedResourceService.GetString(ErrorMessage.NotHavePermission))); } if (info.ConcurrencyStamp != faqMeta.ConcurrencyStamp) { return(new ActionResultResponse <string>(-3, _websiteResourceService.GetString("The faq already updated by other people. You can not update this Faq ."))); } var infoGroup = await _faqGroupRepository.GetInfo(faqMeta.FaqGroupId.Trim()); if (infoGroup == null) { return(new ActionResultResponse <string>(-4, _websiteResourceService.GetString("Faq group does not exists."))); } info.IsActive = faqMeta.IsActive; info.FaqGroupId = faqMeta.FaqGroupId; info.Photo = faqMeta.Photo; info.Order = faqMeta.Order; info.ConcurrencyStamp = Guid.NewGuid().ToString(); info.LastUpdate = DateTime.Now; info.LastUpdateUserId = lastUpdateUserId; info.LastUpdateFullName = lastUpdateFullName; await _faqRepository.Update(info); //udpate translate if (!isQuickUpdate) { foreach (var faqTranslation in faqMeta.Translations) { var isNameExists = await _faqTranslationRepository.CheckExists(info.Id, tenantId, faqTranslation.LanguageId, faqTranslation.Question); if (isNameExists) { return(new ActionResultResponse <string>(-5, _websiteResourceService.GetString("Question: \"{0}\" already exists.", faqTranslation.Question))); } var faqTranslationInfo = await _faqTranslationRepository.GetInfo(tenantId, faqTranslation.LanguageId, faqId); if (faqTranslationInfo != null) { faqTranslationInfo.Question = faqTranslation.Question.Trim(); faqTranslationInfo.Answer = faqTranslation.Answer?.Trim(); await _faqTranslationRepository.Update(faqTranslationInfo); } else { var faqTranslationInsert = new FaqTranslation { FaqId = faqId, LanguageId = faqTranslation.LanguageId.Trim(), Question = faqTranslation.Question.Trim(), Answer = faqTranslation.Answer?.Trim() }; await _faqTranslationRepository.Insert(faqTranslationInsert); } } } return(new ActionResultResponse <string>(1, _websiteResourceService.GetString("Update faq successful."), "", info.ConcurrencyStamp)); }