Exemplo n.º 1
0
        public async Task <IActionResult> SetUserSettings([FromBody] AgentUserSettings settings)
        {
            var agentInfo = await _agentContextService.GetAgent();

            await _agentSettingsManager.SetUserSettings(agentInfo, settings);

            return(NoContent());
        }
Exemplo n.º 2
0
        public async Task SetUserSettings(AgentContext agentContext, AgentUserSettings userSettings)
        {
            var agent = await GetAgent(agentContext);

            agent.UserSettings = _serializer.SerializeObject(userSettings);
            _context.Update(agent);
            await _context.SaveChangesAsync();
        }
Exemplo n.º 3
0
        public async Task Stored_settings_should_be_retrieved(AgentUserSettings settings)
        {
            var agent = AgentInfoFactory.GetByAgentId(1);
            await _settingsManager.SetUserSettings(agent, settings);

            var storedSettings = await _settingsManager.GetUserSettings(agent);

            Assert.Equal(ApplyDefaultsToUserSettings(settings), storedSettings);
        }
Exemplo n.º 4
0
        private Task <List <MarkupPolicy> > GetAgentPolicies(AgentContext agentContext, AgentUserSettings userSettings,
                                                             MarkupPolicyTarget policyTarget)
        {
            var(agentId, counterpartyId, agencyId, _) = agentContext;

            return(_flow.GetOrSetAsync(BuildKey(),
                                       GetOrderedPolicies,
                                       AgentPoliciesCachingTime));


            string BuildKey()
            => _flow.BuildKey(nameof(MarkupService),
                              nameof(GetAgentPolicies),
                              agentId.ToString());


            async Task <List <MarkupPolicy> > GetOrderedPolicies()
            {
                var policiesFromDb = await GetPoliciesFromDb();

                return(policiesFromDb.Where(FilterBySettings)
                       .OrderBy(SortByScope)
                       .ThenBy(p => p.Order)
                       .ToList());
            }

            bool FilterBySettings(MarkupPolicy policy)
            {
                if (policy.ScopeType == MarkupPolicyScopeType.EndClient && !userSettings.IsEndClientMarkupsEnabled)
                {
                    return(false);
                }

                return(true);
            }

            int SortByScope(MarkupPolicy policy) => (int)policy.ScopeType;


            Task <List <MarkupPolicy> > GetPoliciesFromDb()
            {
                return(_context.MarkupPolicies
                       .Where(p => p.Target == policyTarget)
                       .Where(p =>
                              p.ScopeType == MarkupPolicyScopeType.Global ||
                              p.ScopeType == MarkupPolicyScopeType.Counterparty && p.CounterpartyId == counterpartyId ||
                              p.ScopeType == MarkupPolicyScopeType.Agency && p.AgencyId == agencyId ||
                              p.ScopeType == MarkupPolicyScopeType.Agent && p.AgentId == agentId ||
                              p.ScopeType == MarkupPolicyScopeType.EndClient && p.AgentId == agentId
                              )
                       .ToListAsync());
            }
        }
Exemplo n.º 5
0
 private AgentUserSettings ApplyDefaultsToUserSettings(AgentUserSettings settings) =>