Esempio n. 1
0
 public async Task <int> Update(FaqGroupTranslation faqGroupTranslation)
 {
     return(await Context.SaveChangesAsync());
 }
Esempio n. 2
0
        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
        }
Esempio n. 3
0
 public async Task <int> Insert(FaqGroupTranslation faqGroupTranslation)
 {
     _faqGroupTranslationRepository.Create(faqGroupTranslation);
     return(await Context.SaveChangesAsync());
 }
Esempio n. 4
0
        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));
        }