Base solution for your next web application

Activities of "andis"

We want to move our background job process to windows service. In web application, we will let user able to enqueue a job, but all the execution process will move to a windows service. What modules will i need and how to initialize them in windows service?

Can application service receive file type input?

Do you mind to explain why my unit test need a transactional? why lack of transactional will cause me this error?

......
{
    public class LookUpTableService_Tests : AppTestBase
    {
        private readonly ILookUpTableService _lookUpTableService;
        private readonly IRepository<LookUpTable, Guid> _repositoryLookUpTable;
        private readonly IRepository<LookUpTableLine, Guid> _repositoryLookUpTableLine;
        public LookUpTableService_Tests()
        {
            _lookUpTableService = Resolve<ILookUpTableService>();
            _repositoryLookUpTable = Resolve<IRepository<LookUpTable, Guid>>();
            _repositoryLookUpTableLine = Resolve<IRepository<LookUpTableLine, Guid>>();
        }
        [Fact]
        public async Task Test_GetValue()
        {
            LoginAsDefaultTenantAdmin();
            await UsingDbContext(async context =>
            {
                LookUpTable lookUpTable = new LookUpTable();
                lookUpTable.Name = "1";
                lookUpTable.Active = true;
                    await _repositoryLookUpTable.InsertAsync(lookUpTable);
                    LookUpTableLine line = new LookUpTableLine();
                    line.LookUpTableId = lookUpTable.Id;
                    line.LookUpValue = 1;
                    line.Value = 10;
                    line.Description = 1.ToString();
                    await _repositoryLookUpTableLine.InsertAsync(line);
                    line = new LookUpTableLine();
                    line.LookUpTableId = lookUpTable.Id;
                    line.LookUpValue = 2;
                    line.Value = 20;
                    line.Description = 2.ToString();
                    await _repositoryLookUpTableLine.InsertAsync(line);
                    line = new LookUpTableLine();
                    line.LookUpTableId = lookUpTable.Id;
                    line.LookUpValue = 3;
                    line.Value = 30;
                    line.Description = 3.ToString();
                    await _repositoryLookUpTableLine.InsertAsync(line);
                    line = new LookUpTableLine();
                    line.LookUpTableId = lookUpTable.Id;
                    line.LookUpValue = 4;
                    line.Value = 40;
                    line.Description = 4.ToString();
                    await _repositoryLookUpTableLine.InsertAsync(line);
                    line = new LookUpTableLine();
                    line.LookUpTableId = lookUpTable.Id;
                    line.LookUpValue = 5;
                    line.Value = 50;
                    line.Description = 5.ToString();
                    await _repositoryLookUpTableLine.InsertAsync(line);
                    lookUpTable = new LookUpTable();
                    lookUpTable.Name = "2";
                    lookUpTable.Active = true;
                    await _repositoryLookUpTable.InsertAsync(lookUpTable);
                    line = new LookUpTableLine();
                    line.LookUpTableId = lookUpTable.Id;
                    line.LookUpValue = 6;
                    line.Value = 60;
                    line.Description = 6.ToString();
                    await _repositoryLookUpTableLine.InsertAsync(line);
                    line = new LookUpTableLine();
                    line.LookUpTableId = lookUpTable.Id;
                    line.LookUpValue = 7;
                    line.Value = 70;
                    line.Description = 7.ToString();
                    await _repositoryLookUpTableLine.InsertAsync(line);
                    line = new LookUpTableLine();
                    line.LookUpTableId = lookUpTable.Id;
                    line.LookUpValue = 8;
                    line.Value = 80;
                    line.Description = 8.ToString();
                    await _repositoryLookUpTableLine.InsertAsync(line);
                    line = new LookUpTableLine();
                    line.LookUpTableId = lookUpTable.Id;
                    line.LookUpValue = 9;
                    line.Value = 90;
                    line.Description = 9.ToString();
                    await _repositoryLookUpTableLine.InsertAsync(line);
                    line = new LookUpTableLine();
                    line.LookUpTableId = lookUpTable.Id;
                    line.LookUpValue = 10;
                    line.Value = 100;
                    line.Description = 10.ToString();
                    await _repositoryLookUpTableLine.InsertAsync(line);
                try
                {
                    lookUpTable = _repositoryLookUpTable.FirstOrDefault(m => m.Name == "1");
                    Assert.Equal(4, _lookUpTableService.GetValue(lookUpTable, (decimal)4.5)); //Error on GetValue
                    lookUpTable = _repositoryLookUpTable.FirstOrDefault(m => m.Name == "2");
                    Assert.Equal(0, _lookUpTableService.GetValue(lookUpTable, (decimal)4.5));
                    Assert.Equal(10, _lookUpTableService.GetValue(lookUpTable, 14));
                }
                catch(Exception ex)
                {
                    throw ex;
                }
            });
        }
    }
}

GetValue code

public decimal GetValue(LookUpTable lookUpTable, decimal lookUpValue)
        {
            LookUpTableLine line = RepositoryLookUpTableLine.GetAll().Where(m => m.LookUpTable == lookUpTable && m.LookUpValue < lookUpValue).OrderByDescending(m => m.LookUpValue).FirstOrDefault();
            if (line == null)
                return 0;
            return line.Value;
        }

Error Message: The operation cannot be completed because the DbContext has been disposed. Stack Trace: at System.Data.Entity.Internal.LazyInternalContext.InitializeContext() at System.Data.Entity.Internal.Linq.DbQueryProvider.Execute[TResult](Expression expression) at System.Linq.Queryable.FirstOrDefault[TSource](IQueryable`1 source) at Nascence.HaermesCLX.DomainServices.Class.LookUpTableService.GetValue(LookUpTable lookUpTable, Decimal lookUpValue) in C:\Development\CLxCoreApp\Nascence.HaermesCLX.Core\DomainServices\Class\LookUpTableService.cs:line 29 at Nascence.HaermesCLX.Tests.DomainServices.LookUpTableService_Tests.<<Test_GetValue>b__4_0>d.MoveNext() in C:\Development\CLxCoreApp\Tests\Nascence.HaermesCLX.Tests\DomainServices\LookUpTableService_Tests.cs:line 101

Is there anything wrong with my code? why it keep getting this error? i tried to change it to non-awaitable.. still got same error

Am I allowed to access other domain service method in a domain service's method?

I ran all unit test from aspnetzero project. Why always got some unit tests failed. Failed Test are randomly occur and if I run again those failed tests, they will pass.

Result Message: System.Data.Entity.Infrastructure.CommitFailedException : An error was reported while committing a database transaction but it could not be determined whether the transaction succeeded or failed on the database server. See the inner exception and <a class="postlink" href="http://go.microsoft.com/fwlink/?LinkId=313468">http://go.microsoft.com/fwlink/?LinkId=313468</a> for more information. ---- System.Transactions.TransactionAbortedException : The transaction has aborted. -------- System.TimeoutException : Transaction Timeout

Is there anyway to automate the creation process of AppPermissions? Is there any particular reason to put AppAuthorizationProvider in .Core level? I intended to create AppPermissions for all Application Service, but I cannot use reflection as the AppAuthorizationProvider is in .Core level while all services are in .Application level

Showing 11 to 17 of 17 entries