public SapUnitOfWork(SapContextOptions options)
        {
            //this.InjectInstanceOf(typeof(IRepository), sapSqlDbContext, diApiContext);
            //this.InjectInstanceOf(typeof(IRepository), sapSqlDbContext, diApiContext, options.SqlServerConnection, new DemoItemPropertiesRepository());
            var productPropertiesRepository = new DemoProductPropertiesRepository();

            _options            = options;
            _extrasDbContext    = new RalDbContext(options.ExtrasServerOptions);
            _diApiContext       = new SapDiApiContext(options.DiApiServerConnection, CurrentProvider.GetService <ILogger <SapDiApiContext> >());
            _sapSqlDbContext    = new SapSqlDbContext(options.SapSqlServerOptions);
            BusinessPartners    = new SapBusinessPartnerRepository(_sapSqlDbContext, _diApiContext);
            Salesmen            = new SapSalesmanRepository(_sapSqlDbContext, _diApiContext);
            Employees           = new SapEmployeeRepository(_sapSqlDbContext, _diApiContext);
            Company             = new SapCompanyRepository(_sapSqlDbContext, _diApiContext);
            Quotations          = new SapDocumentRepository <QuotationEntity, QuotationHeaderEntity>(_sapSqlDbContext, _diApiContext, productPropertiesRepository);
            Orders              = new SapDocumentRepository <OrderEntity, OrderHeaderEntity>(_sapSqlDbContext, _diApiContext, productPropertiesRepository);
            DeliveryNotes       = new SapDocumentRepository <DeliveryNoteEntity, DeliveryNoteHeaderEntity>(_sapSqlDbContext, _diApiContext, productPropertiesRepository);
            Invoices            = new SapDocumentRepository <InvoiceEntity, InvoiceHeaderEntity>(_sapSqlDbContext, _diApiContext, productPropertiesRepository);
            CreditNotes         = new SapDocumentRepository <CreditNoteEntity, CreditNoteHeaderEntity>(_sapSqlDbContext, _diApiContext, productPropertiesRepository);
            DownPaymentRequests = new SapDocumentRepository <DownPaymentRequest, DownPaymentRequestHeader>(_sapSqlDbContext, _diApiContext, productPropertiesRepository);

            ProductGroups      = new SapProductGroupRepository(_sapSqlDbContext, _diApiContext);
            Products           = new SapProductRepository(_sapSqlDbContext, _diApiContext);
            RefreshTokens      = new AuthenticationRepository(_extrasDbContext);
            UserLocations      = new UserLocationRepository(_extrasDbContext);
            LeadUsersData      = new LeadUserDataRepository(_extrasDbContext);
            EmployeeTimeClocks = new  EmployeeTimeClockRepository(_extrasDbContext);
            _activities        = new Lazy <IActivityRepository>(new SapActivityRepository(_sapSqlDbContext, _diApiContext, _extrasDbContext, options));
            _attachments       = new Lazy <IAttachmentRepository>(new SapAttachmentRepository(_sapSqlDbContext, _diApiContext));
            _identityUsers     = new Lazy <IIdentityRepository>(new IdentityUserRepository(_extrasDbContext));
        }
 public SapAttachmentRepository(SapSqlDbContext dbContext, SapDiApiContext diApiContext)
     : base(dbContext.ATC1.Select(AsAttachmentEntity),
            x => new IAttachmentRepository.AttachmentKey {
     Code = x.AttachmentsCode.Value, Num = x.Num.Value
 },
            diApiContext.Attachments)
 {
 }
 public SapDocumentRepository(SapSqlDbContext dbContext, SapDiApiContext diApiContext,
                              IProductPropertiesRepository propertiesRepository)
     : base(SelectDocumentHeaderFromDb(dbContext), x => x.Key.Value)
 {
     _dbContext                = dbContext;
     _diApiContext             = diApiContext;
     _connectionString         = _dbContext.Database.GetDbConnection().ConnectionString;
     _itemPropertiesRepository = propertiesRepository;
     _docType = typeof(TDocument);
 }
Example #4
0
        public SapActivityRepository(SapSqlDbContext dbContext, SapDiApiContext diApiContext,
                                     RalDbContext extraDbContext, SapContextOptions options)
            : base(SelectActivitiesFromDb(dbContext), x => x.Code.Value, diApiContext.Activities)
        {
            _context = dbContext;
            if (_cachedActivities == null)
            {
                _cachedActivities = new Dictionary <int, Activity>();
                extraDbContext.Activities.ForEachAsync(a =>
                {
                    if (a.Code != null)
                    {
                        _cachedActivities[a.Code.Value] = a;
                    }
                }).Wait();
            }
            else
            {
#pragma warning disable 4014
                SyncActivitiesCache(options);
#pragma warning restore 4014
            }
        }
 public SapProductGroupRepository(SapSqlDbContext dbContext, SapDiApiContext diApiContext)
     : base(SelectItemGroupEntity(dbContext), x => x.Code)
 {
     _dbContext    = dbContext;
     _diApiContext = diApiContext;
 }
Example #6
0
 public SapSalesmanRepository(SapSqlDbContext dbContext, SapDiApiContext diApiContext)
     : base(SelectSalesmanFromDb(dbContext), x => x.Sn)
 {
     _dbContext    = dbContext;
     _diApiContext = diApiContext;
 }
 public SapCompanyRepository(SapSqlDbContext dbContext, SapDiApiContext diApiContext)
 {
     _dbContext    = dbContext;
     _diApiContext = diApiContext;
 }
Example #8
0
 public SapBusinessPartnerRepository(SapSqlDbContext dbContext, SapDiApiContext diApiContext)
     : base(SelectBusinessPartnerFromDb(dbContext), x => x.Key, diApiContext.BusinessPartners)
 {
     _dbContext    = dbContext;
     _diApiContext = diApiContext;
 }