Hi superheros, So I have some temporary bookings in a cache (identified by a guid) to use the expiring property of it. (I was using the application httpcontext collection before because of laziness) Now, i want that before payments, to check the available stock in the database but also in the temporary bookings in the cache. Right now im using a cached list of these temporary objects also in the same cache to do the job. Is there proper way to resolve this? Thanks in advance.
Hi everyone,
So i have two entities BusType and Seats like these:
public class BusType : FullAuditedEntity
{
public virtual string name { get; set; }
[ForeignKey("typeId")]
public virtual ICollection<Seats> sieges { get; set; }
public BusType()
{
}
}
public class Seat : FullAuditedEntity
{
public virtual int number{ get; set; }
[ForeignKey("typeId")]
public virtual BusType type { get; set; }
public virtual int? typeId { get; set; }
public Seat()
{
}
}
I have created DTOs the same as the main entities while replacing the properties types with corresponding DTOs (BusTypeDto,SeatDto) and the mapping is as follows:
Configuration.Modules.AbpAutoMapper().Configurators.Add(mapper =>
{
mapper.CreateMap<BusType, BusTypeDto>();
mapper.CreateMap<Seat, SeatDto>();
}
I try to get all the types using this method (through MVC Controller) and i get an error saying that there is a problem to map the seats property from BusType to BusTypeDto
public GetBusTypesOutput GetBusTypes(GetBusTypesInput input)
{
var busTypes_ = _busTypeRepository.GetAll().OrderBy(o => o.name);
return new GetBusTypesOutput
{
busTypes = Mapper.Map<List<BusTypeDto>>(busTypes_)
};
}
the exception:
AutoMapper.AutoMapperMappingException was unhandled by user code
HResult=-2146233088
Message=Error mapping types.
Mapping types:
DbQuery`1 -> List`1
System.Data.Entity.Infrastructure.DbQuery`1[[BusReservationSystem.BusTypes.BusType, BusReservationSystem.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] -> System.Collections.Generic.List`1[[BusReservationSystem.BusTypes.DTOs.BusTypeDto, BusReservationSystem.Application, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]
Source=Anonymously Hosted DynamicMethods Assembly
StackTrace:
at lambda_method(Closure , Object , Object , ResolutionContext )
at BusReservationSystem.BusTypes.BusTypeService.GetBusTypes(GetBusTypesInput input) in D:\projet dev\BusReservationSystem\BusReservationSystem\BusReservationSystem.Application\BusTypes\BusTypeService.cs:line 23
at Castle.Proxies.BusTypeServiceProxy.GetBusTypes_callback(GetBusTypesInput input)
at Castle.Proxies.Invocations.IBusTypeService_GetBusTypes.InvokeMethodOnTarget()
at Castle.DynamicProxy.AbstractInvocation.Proceed()
at Abp.Domain.Uow.UnitOfWorkInterceptor.PerformSyncUow(IInvocation invocation, UnitOfWorkOptions options) in D:\Halil\Github\aspnetboilerplate\src\Abp\Domain\Uow\UnitOfWorkInterceptor.cs:line 53
at Abp.Domain.Uow.UnitOfWorkInterceptor.PerformUow(IInvocation invocation, UnitOfWorkOptions options) in D:\Halil\Github\aspnetboilerplate\src\Abp\Domain\Uow\UnitOfWorkInterceptor.cs:line 45
at Abp.Domain.Uow.UnitOfWorkInterceptor.Intercept(IInvocation invocation) in D:\Halil\Github\aspnetboilerplate\src\Abp\Domain\Uow\UnitOfWorkInterceptor.cs:line 35
at Castle.DynamicProxy.AbstractInvocation.Proceed()
at Abp.Auditing.AuditingInterceptor.PerformSyncAuditing(IInvocation invocation, AuditInfo auditInfo) in D:\Halil\Github\aspnetboilerplate\src\Abp\Auditing\AuditingInterceptor.cs:line 51
InnerException:
HResult=-2146233088
Message=Error mapping types.
Mapping types:
BusType -> BusTypeDto
BusReservationSystem.BusTypes.BusType -> BusReservationSystem.BusTypes.DTOs.BusTypeDto
Type Map configuration:
BusType -> BusTypeDto
BusReservationSystem.BusTypes.BusType -> BusReservationSystem.BusTypes.DTOs.BusTypeDto
Property:
seats
Source=Anonymously Hosted DynamicMethods Assembly
StackTrace:
at lambda_method(Closure , Object , Object , ResolutionContext )
InnerException:
HResult=-2146232004
Message=An error occurred while executing the command definition. See the inner exception for details.
Source=EntityFramework
StackTrace:
at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues)
at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__6()
at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__5()
at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)
at System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
at System.Data.Entity.Core.Objects.ObjectQuery`1.Execute(MergeOption mergeOption)
at System.Data.Entity.Core.Objects.DataClasses.EntityCollection`1.Load(List`1 collection, MergeOption mergeOption)
at System.Data.Entity.Core.Objects.DataClasses.EntityCollection`1.Load(MergeOption mergeOption)
at System.Data.Entity.Core.Objects.DataClasses.RelatedEnd.DeferredLoad()
at System.Data.Entity.Core.Objects.Internal.LazyLoadBehavior.LoadProperty[TItem](TItem propertyValue, String relationshipName, String targetRoleName, Boolean mustBeNull, Object wrapperObject)
at System.Data.Entity.Core.Objects.Internal.LazyLoadBehavior.<>c__DisplayClass7`2.<GetInterceptorDelegate>b__1(TProxy proxy, TItem item)
at System.Data.Entity.DynamicProxies.BusType_D2FF67FCC39115A090DE650A8FD3950AFF825BBD28B6858735278132FA682FC7.get_seats()
at lambda_method(Closure , Object , Object , ResolutionContext )
InnerException:
HResult=-2146233079
Message=There is already an open DataReader associated with this Command which must be closed first.
Source=System.Data
StackTrace:
at System.Data.SqlClient.SqlInternalConnectionTds.ValidateConnectionForExecute(SqlCommand command)
at System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(String method, SqlCommand command)
at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.<Reader>b__c(DbCommand t, DbCommandInterceptionContext`1 c)
at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)
at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(DbCommand command, DbCommandInterceptionContext interceptionContext)
at System.Data.Entity.Internal.InterceptableDbCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
InnerException:
Sorry for the long post but i included as much information as needed to be understandable. In another project (0.8.3 i think and VS 2013) i used the same logic and it worked fine (now i'm using the 1.1.3 with VS2015)
Thanks in advance
Hi,
I'm trying to use display prices by selecting curencies (like the localisation system), and i want to use a session variable to handle the ExchangeRate, so, i want to put this in the session_start method but i can't use DI until now in the Global.asax.cs (MvcController).
Right now, i'm using this block which is working:
using (var ratesService = IocManager.Instance.ResolveAsDisposable<IExchangeRateAppService>())
Is there another proper way to do it?
Thanks
Hello everyone,
Recently, i started using Azure Plateform and i really like it. I deployed my ABP app in IIS (VM) and used the service provided for DB. Everything works fine but sometimes i get an error like "Database X on server Y is not currently available" with some "connection unsuccesseful" in the SQL Azure dashboard, and i found that i need to use the SqlAzureExecutionStrategy (link) in order to have a retry logic implementation, but there is a limitation with that, it doesn't support user initiated transactions (i get some errors when trying) that I think is caused by UOW implementation. I found this workaround (link) but i don't know how to make it work.
I really need some help in this.
Hi abphelpers, So I'm working on an hotel reservation website and i have many custom created entities (room types, Views ...) and i use a Xml file to provide localization. And as it's always changing i need to add xml entries and reload my web application everytime. Is there a way to "code" this operation by rereading only the modified xml file and not having to releoad the webapp? Thank a lot
Hi everyone,
First, thank you very much for this jewel, i hadn't used asp.net before but it was easy with your help :D . Second, i'm working on a hotel reservation project (multi-page mvc app) and i had to use areas (Admin and Front) and i used the multitenancy config to have 2 kind of users (admins and members). Everything works fine (i think) until the case that logged user that have a tenant = "Front" can access the admin area wher Tenant must be Admin (and vice-versa). So like you might have thought, i need to have the AbpAuthorize attribute verify the TenantId before anything.
Can anyone help me with this?
BTW, how can you get the logged in user. Right now i'm using this on the views:
Context.User.Identity.IsAuthenticated
Is there any method that retrieve the User object?
Thanks in advance. Abdessamad HAFIDI