Activities of "murat.yuceer"

Hi,

This is a concurrency problem, can you try this?

modelBuilder.Entity<DatabaseBlobContainer>(b => 
{ 
    b.CollectionName = BlobStoringDatabaseDbProperties.DbTablePrefix + "BlobContainers"; 
    b.BsonMap.MapProperty(x => x.Name).SetIsRequired(true); 
}); 

Thanks, but how it will fix problem, the name was not already empty? Shouldn't we create uniqe index with name and tenantId if we are going to solve it at database level?

Also, this is my base class for backgroundjobs

Could this be a side effect? (Notification table like hangfire queue table to track user job status)

using Exchanger.Roles;
using Microsoft.AspNetCore.Identity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using Volo.Abp.BackgroundJobs;
using Volo.Abp.Emailing;
using Volo.Abp.Identity;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Timing;
using Volo.Abp.Uow;

namespace Exchanger.Ewp.Notifications
{
    public abstract class NotificationJobBase<T> : AsyncBackgroundJob<T> where T : NotificationJobArgs
    {
        public ICurrentTenant CurrentTenant { get; set; }
        public IUnitOfWorkManager UnitOfWorkManager { get; set; }
        public INotificationRepository NotificationRespository { get; set; }
        public IClock Clock { get; set; }
        public IEmailSender EmailSender { get; set; }
        public IIdentityUserRepository IdentityUserRepository { get; set; }
        public ILookupNormalizer LookupNormalizer { get; set; }

        protected abstract Task JobMethod(T args);

        public override async Task ExecuteAsync(T args)
        {
            using (CurrentTenant.Change(args.CurrentTenantId, args.CurrentTenantName))
            {
                Exception jobException = null;
                Notification notification = null;

                using (var uow = UnitOfWorkManager.Begin(requiresNew: true, isTransactional: false))
                {
                    //get job related notification data
                    notification = await NotificationRespository.FindAsync(args.NotificationId);
                    if (notification == null)
                        return;

                    if (notification.ProcessState == NotificationJobState.Cancel ||
                        notification.ProcessState == NotificationJobState.InProcess ||
                        notification.ProcessState == NotificationJobState.Completed)
                        return;
                    notification.SetState(NotificationJobState.InProcess);//to show user job working
                    await NotificationRespository.UpdateAsync(notification);
                    await uow.CompleteAsync();
                }





                bool isError = false;
                var uowJob = UnitOfWorkManager.Begin(requiresNew: true, isTransactional: true);
                try
                {
                    await JobMethod(args); // <== this is actual job method overrided from parent class

                    notification.AddTransactionHistory(new Transaction(Clock.Now)
                    {
                        ProcessMessage = "Success",
                        IsSuccess = true
                    });

                    await uowJob.CompleteAsync();
                }
                catch (Exception ex)
                {
                    jobException = ex;

                    notification.AddTransactionHistory(new Transaction(Clock.Now)
                    {
                        ProcessMessage = ex.Message,
                        ProcessMessageDetail = ex.StackTrace
                    });

                    isError = true;

                    await uowJob.RollbackAsync();
                }
                finally
                {
                    uowJob.Dispose();
                }





                using (var uow = UnitOfWorkManager.Begin(requiresNew: true, isTransactional: false))
                {
                    if (!notification.ManuallyTriggered)
                        await SendEmail(args, isError);

                    if (notification.TransactionHistory.Any(p => p.IsSuccess))
                    {
                        notification.SetState(NotificationJobState.Completed);
                    }
                    else
                    {
                        notification.SetState(NotificationJobState.Fail);
                    }

                    await NotificationRespository.UpdateAsync(notification);
                    await uow.CompleteAsync();
                }

                //throw if exception exist for hangfire retry
                if (jobException != null)
                    throw jobException;
            }
        }

        private async Task SendEmail(T args, bool isError)
        {
            ...
        }
    }
}

Thanks for help, I guess this feature is new, I was not seen before.

We are having the same issue. This affects our ability to deploy our projects to a production site and needs to be considered high priority. At the moment, I cannot deploy a necessary hotfix to our production site due to the problem.

All attempts to download a Nuget package fail with the following error.

 Retrying 'FindPackagesByIdAsync' for source 'https://nuget.abp.io/d394cc89-2855-4bc7-83c1-6af024b7ceef/v3/package/volo.abp.featuremanagement.domain/index.json'. 
  Response status code does not indicate success: 500 (Internal Server Error). 

same here

problem was account controller.

Just I need empty working module project with tiered hosted blazor server example I can give my email addresss

Can you create example module project with tiered blazor server.

Thanks, I did like this but I couldnt fix problem, what I missing, when I click login button its not redriect

Ok, got it. You need a tiered solution for Blazor-Server right?

Yes, thanks

My problem is, Blazor.Server.Host project is unified project. Its not work with HttpApi.Host and IdentityServer. Configured to run standalone default. I need to harmonize them.

Showing 1 to 10 of 64 entries
Made with ❤️ on ABP v8.2.0-preview Updated on March 25, 2024, 15:11