コード例 #1
0
        public async Task Execute(MobileDeviceRivmAdviceArgs args)
        {
            var e = args.ToEntity();

            e.PublishingId = _PublishingIdCreator.Create(e);
            await _DbConfig.Current.AddAsync(e);
        }
        public IActionResult Execute(MobileDeviceRivmAdviceArgs args)
        {
            if (!_Validator.Valid(args))
            {
                return(new BadRequestResult());
            }

            _Writer.Execute(args);
            return(new OkResult());
        }
        public bool Valid(MobileDeviceRivmAdviceArgs args)
        {
            if (args == null)
            {
                return(false);
            }

            if (args.TemporaryExposureKeyRetentionDays < 1) //TODO range?
            {
                return(false);
            }

            if (args.ObservedTemporaryExposureKeyRetentionDays < 1) //TODO range?
            {
                return(false);
            }

            if (args.IsolationPeriodDays < 1) //TODO range?
            {
                return(false);
            }

            if (args.Release.Year < 2020) //TODO range?
            {
                return(false);
            }

            var locales = args.Text.Select(x => x.Locale).ToArray();

            if (locales.Any(x => !LocalValid(x)))
            {
                return(false);
            }

            if (locales.Distinct().Count() != locales.Length)
            {
                return(false);
            }

            return(args.Text.All(Valid));
        }