private async Task <bool> TryPush(Message message)
        {
            var optionsBuilder = new DbContextOptionsBuilder <PolicyDbContext>();

            optionsBuilder.UseSqlServer(_policyConnection);
            IList <Message> messagesToPush = new List <Message>();

            using (PolicyDbContext policyDbContext = new PolicyDbContext(optionsBuilder.Options))
            {
                using (var tx = policyDbContext.Database.BeginTransaction())
                {
                    try
                    {
                        await PublishMessage(message);

                        policyDbContext.Messages.Remove(message);
                        policyDbContext.SaveChanges();
                        tx.Commit();
                        _outboxLogger.LogSuccessPush();
                        return(true);
                    }
                    catch (Exception e)
                    {
                        _outboxLogger.LogFailedPush(e);
                        tx?.Rollback();
                        return(false);
                    }
                }
            }
        }
 public UnitOfWork(PolicyDbContext policyDbContext)
 {
     _policyDbContext = policyDbContext;
     tx = _policyDbContext.Database.BeginTransaction();
     _offerRepository   = new OfferRepository(policyDbContext);
     _policyRepository  = new PolicyRepository(policyDbContext);
     _messageRepository = new MessageRepository(policyDbContext);
 }
Example #3
0
        public Policy(PolicyDbContext dbContext)
        {
            if (dbContext == null)
            {
                throw new ArgumentNullException(nameof(dbContext));
            }

            _dbContext = dbContext;
        }
 public static void InitDbContext(ModelBuilder modelBuilder)
 {
     modelBuilder.Ignore <DevicePlatform>().Ignore <User>();
     PolicyDbContext.InitDbContext(modelBuilder, false);
     LoginDbContext.InitDbContext(modelBuilder, false);
     GroupDbContext.InitDbContext(modelBuilder);
     modelBuilder.Entity <PolicySet>().HasOne(x => x.PolicySetPolicy);
     modelBuilder.Entity <PolicySet>().HasOne(x => x.UserLogin);
     modelBuilder.Entity <PolicySet>().HasOne(x => x.PolicySetGroup);
 }
Example #5
0
        private void InitializeDatabase(IApplicationBuilder app)
        {
            using (IServiceScope serviceScope = app.ApplicationServices.GetService <IServiceScopeFactory>().CreateScope()) {
                serviceScope.ServiceProvider.GetRequiredService <PolicyDbContext>().Database.Migrate();

                using (PolicyDbContext context = serviceScope.ServiceProvider.GetRequiredService <PolicyDbContext>()) {
                    context.Database.Migrate();

                    Int32 policyId = 0;

                    if (!context.Clients.Any())
                    {
                        context.Clients.Add(new PolicyServer1.EntityFramework.Storage.Entities.Client {
                            ClientId   = "mvc",
                            ClientName = "MVC Client",
                            ClientUri  = "http://localhost:5000",
                        });
                        context.SaveChanges();
                        policyId = context.Clients.FirstOrDefault(p => p.ClientId == "mvc").PolicyId ?? -1;
                    }

                    if (!context.Policies.Any())
                    {
                        PolicyServer1.EntityFramework.Storage.Entities.Policy newPolicy = new PolicyServer1.EntityFramework.Storage.Entities.Policy();
                        context.Policies.Add(newPolicy);
                        context.SaveChanges();

                        PolicyServer1.EntityFramework.Storage.Entities.Client client = context.Clients.Find(policyId);
                        client.PolicyId = newPolicy.Id;
                        context.SaveChanges();
                    }

                    if (!context.Permissions.Any())
                    {
                        context.Permissions.Add(new PolicyServer1.EntityFramework.Storage.Entities.Permission {
                            PolicyId    = policyId,
                            Name        = "Permission1",
                            Description = "Ceci est une permission - 1",
                        });
                        context.Permissions.Add(new PolicyServer1.EntityFramework.Storage.Entities.Permission {
                            PolicyId    = policyId,
                            Name        = "Permission2",
                            Description = "Ceci est une permission - 2",
                        });
                        context.Permissions.Add(new PolicyServer1.EntityFramework.Storage.Entities.Permission {
                            PolicyId    = policyId,
                            Name        = "Permission3",
                            Description = "Ceci est une permission - 3",
                        });
                        context.SaveChanges();
                    }
                }
            }
        }
        private IList <Message> FetchPendingMessages()
        {
            var optionsBuilder = new DbContextOptionsBuilder <PolicyDbContext>();

            optionsBuilder.UseSqlServer(_policyConnection);
            IList <Message> messagesToPush = new List <Message>();

            using (PolicyDbContext policyDbContext = new PolicyDbContext(optionsBuilder.Options))
            {
                IMessageRepository messageRepository = new MessageRepository(policyDbContext);
                messagesToPush = messageRepository.FetchPendingMessages(50);
            }
            return(messagesToPush);
        }
Example #7
0
        public PolicyResponse(PolicyDbContext dbContext, IPolicy policy)
        {
            if (dbContext == null)
            {
                throw new ArgumentNullException(nameof(dbContext));
            }
            if (policy == null)
            {
                throw new ArgumentNullException(nameof(policy));
            }

            _dbContext = dbContext;
            _policy    = policy;
        }
Example #8
0
 public PolicyRepository(PolicyDbContext policyDbContext)
 {
     _policyDbContext = policyDbContext;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="PolicyServerRuntimeClient"/> class.
 /// </summary>
 /// <param name="policy">The policy.</param>
 public PolicyServerRuntimeClient(PolicyDbContext policyDbContext)
 {
     this.policyDbContext = policyDbContext;
 }
Example #10
0
 public OfferRepository(PolicyDbContext policyDbContext)
 {
     _policyDbContext = policyDbContext;
 }
Example #11
0
 public MessageRepository(PolicyDbContext policyDbContext)
 {
     _policyDbContext = policyDbContext;
 }
Example #12
0
 public OfferRepository(PolicyDbContext context) => this._context = context;
 public GetPolicyDetailsHandler(PolicyDbContext dbContext)
 {
     this.dbContext = dbContext;
 }
Example #14
0
 public ConvertOfferHandler(PolicyDbContext dbContext, IEventPublisher eventPublisher)
 {
     this.dbContext      = dbContext;
     this.eventPublisher = eventPublisher;
 }
Example #15
0
 public PolicyRepository(PolicyDbContext context)
 {
     _context = context;
 }
Example #16
0
 public OfferCreationHandler(PolicyDbContext dbContext, PricingApiFacade pricingApiFacade)
 {
     this.dbContext        = dbContext;
     this.pricingApiFacade = pricingApiFacade;
 }
Example #17
0
 public TerminatePolicyHandler(PolicyDbContext dbContext)
 {
     this.dbContext = dbContext;
 }