Пример #1
0
        public async Task <IActionResult> Login(string email, string password)
        {
            email = email.ToLower();

            var filter = new OperatorFilter
            {
                Email  = email,
                Amount = 1
            };

            var res = await dbProvider.ReadModel(filter).ConfigureAwait(false);

            //TODO
            if (res.Count == 0 || res.First().Password != Cryptography.SaltPassword(password, "salt"))
            {
                return(NotFound("Пользователь с такими реквизитами не найден"));
            }

            var encodedJwt = JwtHelpers.IssueToken(config.AppName, config.AppUrl, email, config.AuthLifetimeInHours, config.JwtTokenSecret);
            var response   = new
            {
                access_token = encodedJwt,
                username     = email
            };

            return(Json(response));
        }
Пример #2
0
        public async Task <IActionResult> Register([FromBody] Operator op)
        {
            var filter = new OperatorFilter
            {
                Email  = op.Email,
                Amount = 1
            };
            var res = await dbProvider.ReadModel(filter).ConfigureAwait(false);

            if (res.Count > 0)
            {
                return(Conflict("Пользователь с такой электронной почтой уже существует"));
            }
            filter = new OperatorFilter
            {
                Phone  = op.Phone,
                Amount = 1
            };
            res = await dbProvider.ReadModel(filter).ConfigureAwait(false);

            if (res.Count > 0)
            {
                return(Conflict("Пользователь с таким номером телефона уже существует"));
            }

            await dbProvider.WriteModel(op).ConfigureAwait(false);

            return(Ok("Вы успешно зарегистрированы"));
        }
Пример #3
0
        public override string Evaluate(ONPEquatationInterpreterResult interpreterResult)
        {
            Stack <BaseElement> elements = new Stack <BaseElement>();

            var filter = new OperatorFilter(evaluators);

            while (interpreterResult.OnpNotation.Any())
            {
                var currentElement = interpreterResult.OnpNotation.Dequeue();

                if (currentElement is BaseNumber)
                {
                    elements.Push(currentElement);
                }
                else if (currentElement is BaseOperator)
                {
                    var rightNumber = (BaseNumber)elements.Pop();
                    var leftNumber  = (BaseNumber)elements.Pop();
                    var evaluator   = filter.FilterOperatorEvaluator(currentElement as BaseOperator);
                    var result      = evaluator.Evaluate(leftNumber, rightNumber);
                    elements.Push(result);
                }
            }

            if (elements.Count > 1)
            {
                throw new InvalidOperationException("The result of computation should contains only one item");
            }

            return(elements.Pop().Value);
        }
        internal static string ToString(OperatorFilter opFilter)
        {
            switch (opFilter)
            {
            case OperatorFilter.Equals:
                return("=");

            case OperatorFilter.NotEquals:
                return("!=");

            case OperatorFilter.GreaterThan:
                return(">");

            case OperatorFilter.LessThan:
                return("<");

            case OperatorFilter.GreaterThanOrEqual:
                return(">=");

            case OperatorFilter.LessThanOrEqual:
                return("<=");

            default:
                throw new ArgumentOutOfRangeException(nameof(opFilter), opFilter, null);
            }
        }
 public ERPFilter(DocType docType, string targetField, OperatorFilter @operator, string operand)
 {
     DocType        = docType;
     TargetField    = targetField;
     Operand        = operand;
     OperatorFilter = @operator;
 }
Пример #6
0
        public async Task ListWithFilters()
        {
            var filter = new OperatorFilter()
                         .IncludeData(true)
                         .IncludeBundles(true)
                         .IncludeFixedDenominationType(true)
                         .IncludePin(true)
                         .IncludeRangeDenominationType(true)
                         .IncludeSuggestedAmounts(true)
                         .IncludeSuggestedAmountsMap(true);

            var result = await AirtimeApi.Operators.ListAsync(filter);

            Assert.IsTrue(result.Content.Count > 0);
        }