コード例 #1
0
        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
        }
コード例 #2
0
 public async Task <int> Update(CoreValueTranslation coreValueTranslation)
 {
     return(await Context.SaveChangesAsync());
 }
コード例 #3
0
        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.")));
        }
コード例 #4
0
 public async Task <int> Insert(CoreValueTranslation coreValueTranslation)
 {
     _coreValueTranslationRepository.Create(coreValueTranslation);
     return(await Context.SaveChangesAsync());
 }