I am using UConnector to download orders and update the status. The actual download is working as expected but when I try to update the status I am receiving an error. I have commented on the line causing the error in the code. I was hoping someone could tell me what I am missing?
My Component.config
<configuration>
<components>
<component
id="SessionProvider"
service="UCommerce.EntitiesV2.ISessionProvider, UCommerce"
type="UCommerce.EntitiesV2.SessionProvider, UCommerce"/>
<component id="UCommerce.DataMappingsTag"
service="UCommerce.EntitiesV2.IContainsNHibernateMappingsTag, UCommerce"
type="UCommerce.EntitiesV2.MappingAssemblyTag, UCommerce"/>
<component id="OrderService"
service="UCommerce.Transactions.IOrderService, UCommerce"
type="UCommerce.Transactions.OrderService, UCommerce"/>
<component id="Repository"
service="UCommerce.EntitiesV2.IRepository`1, UCommerce"
type="UCommerce.EntitiesV2.Repository`1, UCommerce"/>
</components>
</configuration>
Code
var orderService = ObjectFactory.Instance.Resolve<IOrderService>();
//var newOrderStatus = OrderStatus.Get((int)OrderStatusCode.Processing); //This line
var newOrderStatus = OrderStatus.All().SingleOrDefault(x => x.Name == "Processing"); //OR this line give the same error
orderService.ChangeOrderStatus(item, newOrderStatus);
Error:
ComponentActivator: could not instantiate UCommerce.EntitiesV2.SessionProvider
InnerException:
{"No component for supporting the service UCommerce.Infrastructure.Configuration.CommerceConfigurationProvider was found"}
Stack Trace:
at Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.CreateInstanceCore(ConstructorCandidate constructor, Object[] arguments, Type implType) at Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.CreateInstance(CreationContext context, ConstructorCandidate constructor, Object[] arguments) at Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.Instantiate(CreationContext context) at Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.InternalCreate(CreationContext context) at Castle.MicroKernel.ComponentActivator.AbstractComponentActivator.Create(CreationContext context, Burden burden) at Castle.MicroKernel.Lifestyle.AbstractLifestyleManager.CreateInstance(CreationContext context, Boolean trackedExternally) at Castle.MicroKernel.Lifestyle.ScopedLifestyleManager.<>n__FabricatedMethod3(CreationContext , Boolean ) at Castle.MicroKernel.Lifestyle.ScopedLifestyleManager.<>c__DisplayClass1.b__0(Action
1 afterCreated) at Castle.MicroKernel.Lifestyle.Scoped.DefaultLifetimeScope.GetCachedInstance(ComponentModel model, ScopedInstanceActivationCallback createInstance) at Castle.MicroKernel.Lifestyle.ScopedLifestyleManager.Resolve(CreationContext context, IReleasePolicy releasePolicy) at Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(CreationContext context, Boolean requiresDecommission, Boolean instanceRequired, Burden& burden) at Castle.MicroKernel.Handlers.DefaultHandler.Resolve(CreationContext context, Boolean instanceRequired) at Castle.MicroKernel.Handlers.AbstractHandler.Resolve(CreationContext context) at Castle.MicroKernel.Resolvers.DefaultDependencyResolver.ResolveFromKernelByType(CreationContext context, ComponentModel model, DependencyModel dependency) at Castle.MicroKernel.Resolvers.DefaultDependencyResolver.ResolveFromKernel(CreationContext context, ComponentModel model, DependencyModel dependency) at Castle.MicroKernel.Resolvers.DefaultDependencyResolver.ResolveCore(CreationContext context, ISubDependencyResolver contextHandlerResolver, ComponentModel model, DependencyModel dependency) at Castle.MicroKernel.Resolvers.DefaultDependencyResolver.Resolve(CreationContext context, ISubDependencyResolver contextHandlerResolver, ComponentModel model, DependencyModel dependency) at Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.CreateConstructorArguments(ConstructorCandidate constructor, CreationContext context) at Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.Instantiate(CreationContext context) at Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.InternalCreate(CreationContext context) at Castle.MicroKernel.ComponentActivator.AbstractComponentActivator.Create(CreationContext context, Burden burden) at Castle.MicroKernel.Lifestyle.AbstractLifestyleManager.CreateInstance(CreationContext context, Boolean trackedExternally) at Castle.MicroKernel.Lifestyle.ScopedLifestyleManager.<>n__FabricatedMethod3(CreationContext , Boolean ) at Castle.MicroKernel.Lifestyle.ScopedLifestyleManager.<>c__DisplayClass1.b__0(Action
1 afterCreated) at Castle.MicroKernel.Lifestyle.Scoped.DefaultLifetimeScope.GetCachedInstance(ComponentModel model, ScopedInstanceActivationCallback createInstance) at Castle.MicroKernel.Lifestyle.ScopedLifestyleManager.Resolve(CreationContext context, IReleasePolicy releasePolicy) at Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(CreationContext context, Boolean requiresDecommission, Boolean instanceRequired, Burden& burden) at Castle.MicroKernel.Handlers.DefaultHandler.Resolve(CreationContext context, Boolean instanceRequired) at Castle.MicroKernel.Handlers.AbstractHandler.Resolve(CreationContext context) at Castle.MicroKernel.Handlers.DefaultGenericHandler.Resolve(CreationContext context, Boolean instanceRequired) at Castle.MicroKernel.Handlers.AbstractHandler.Resolve(CreationContext context) at Castle.MicroKernel.DefaultKernel.ResolveComponent(IHandler handler, Type service, IDictionary additionalArguments, IReleasePolicy policy) at Castle.MicroKernel.DefaultKernel.Castle.MicroKernel.IKernelInternal.Resolve(Type service, IDictionary arguments, IReleasePolicy policy) at Castle.MicroKernel.DefaultKernel.Resolve(Type service, IDictionary arguments) at Castle.Windsor.WindsorContainer.ResolveT at UCommerce.Infrastructure.ObjectFactory.ResolveT at UCommerce.EntitiesV2.OrderStatus.GetRepo() at UCommerce.EntitiesV2.OrderStatus.All() at SiteConnector.Classes.OrdersListToCalClub.Send(IEnumerable`1 input)
I found out you actually need a lot more dll's then you would think. Here are two screenshots of the ones I'm including (references and lib folder in the project). I'm integrating with sitecore, but you can replace those dll's with the Umbracco counterparts I suppose.
Here's the code I'm using to update the order status. The list contains orderlines in my case (and I'm saving a list in azure storage, so you'll see some dll's for that as well).
ISession session = new SessionProvider("connectionstring").GetSession();
OrderStatus status = session.Query<OrderStatus>().FirstOrDefault(os => os.Name.Equals("Processing"));
foreach (PurchaseOrder order in list.Select(o => o.PurchaseOrder))
{
order.OrderStatus = status;
session.Save(order);
}
session.Flush();