Ejemplo n.º 1
0
 private IQueryable <Person> GetByArgsOnQuery(IQueryable <Person> q, PersonArgs?args, ICosmosDbArgs dbArgs)
 {
     q = q.WhereWildcard(x => x.FirstName, args?.FirstName);
     q = q.WhereWildcard(x => x.LastName, args?.LastName);
     q = q.WhereWith(args?.Genders, x => args !.Genders !.ToCodeList().Contains(x.GenderSid));
     return(q.OrderBy(x => x.LastName));
 }
Ejemplo n.º 2
0
        public Task <PersonDetailCollectionResult> GetDetailByArgsAsync(PersonArgs?args, PagingArgs?paging)
        {
            return(ManagerInvoker.Current.InvokeAsync(this, async() =>
            {
                ExecutionContext.Current.OperationType = OperationType.Read;
                Cleaner.CleanUp(args);
                if (_getDetailByArgsOnPreValidateAsync != null)
                {
                    await _getDetailByArgsOnPreValidateAsync(args, paging).ConfigureAwait(false);
                }

                MultiValidator.Create()
                .Add(args.Validate(nameof(args)).Entity(PersonArgsValidator.Default))
                .Additional((__mv) => _getDetailByArgsOnValidate?.Invoke(__mv, args, paging))
                .Run().ThrowOnError();

                if (_getDetailByArgsOnBeforeAsync != null)
                {
                    await _getDetailByArgsOnBeforeAsync(args, paging).ConfigureAwait(false);
                }
                var __result = await _dataService.GetDetailByArgsAsync(args, paging).ConfigureAwait(false);
                if (_getDetailByArgsOnAfterAsync != null)
                {
                    await _getDetailByArgsOnAfterAsync(__result, args, paging).ConfigureAwait(false);
                }
                return Cleaner.Clean(__result);
            }));
        }
Ejemplo n.º 3
0
        public Task <PersonDetailCollectionResult> GetDetailByArgsAsync(PersonArgs?args, PagingArgs?paging) => ManagerInvoker.Current.InvokeAsync(this, async() =>
        {
            Cleaner.CleanUp(args);
            await(_getDetailByArgsOnPreValidateAsync?.Invoke(args, paging) ?? Task.CompletedTask).ConfigureAwait(false);

            await MultiValidator.Create()
            .Add(args.Validate(nameof(args)).Entity().With <IValidator <PersonArgs> >())
            .Additional((__mv) => _getDetailByArgsOnValidate?.Invoke(__mv, args, paging))
            .RunAsync(throwOnError: true).ConfigureAwait(false);

            await(_getDetailByArgsOnBeforeAsync?.Invoke(args, paging) ?? Task.CompletedTask).ConfigureAwait(false);
            var __result = await _dataService.GetDetailByArgsAsync(args, paging).ConfigureAwait(false);
            await(_getDetailByArgsOnAfterAsync?.Invoke(__result, args, paging) ?? Task.CompletedTask).ConfigureAwait(false);
            return(Cleaner.Clean(__result));
        }, BusinessInvokerArgs.Read);
Ejemplo n.º 4
0
 private IQueryable <EfModel.Person> GetByArgsOnQuery(IQueryable <EfModel.Person> q, PersonArgs?args, IEfDbArgs efArgs)
 {
     _ef.WithWildcard(args?.FirstName, (w) => q = q.Where(x => EF.Functions.Like(x.FirstName, w)));
     _ef.WithWildcard(args?.LastName, (w) => q  = q.Where(x => EF.Functions.Like(x.LastName, w)));
     _ef.With(args?.Genders, () => q            = q.Where(x => args !.Genders !.ToCodeList().Contains(x.GenderCode)));
     return(q.OrderBy(x => x.LastName).ThenBy(x => x.FirstName));
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Performs the query filtering.
        /// </summary>
#if (implement_database)
        private void GetByArgsOnQuery(DatabaseParameters p, PersonArgs?args, IDatabaseArgs dbArgs)
        {
            p.ParamWithWildcard(args?.FirstName, DbMapper.Default[nameof(Person.FirstName)])
            .ParamWithWildcard(args?.LastName, DbMapper.Default[nameof(Person.LastName)])
            .TableValuedParamWith(args?.Genders, "GenderCodes", () => TableValuedParameter.Create(args !.Genders !.ToCodeList()));
        }
Ejemplo n.º 6
0
 public Task <WebApiAgentResult <PersonCollectionResult> > GetByArgsWithEfAsync(PersonArgs?args, PagingArgs?paging = null, WebApiRequestOptions?requestOptions = null)
 {
     return(PersonServiceAgent.GetByArgsWithEfAsync(args, paging, requestOptions));
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Create a Person resource with the given unique name, arguments, and options.
 /// </summary>
 ///
 /// <param name="name">The unique name of the resource</param>
 /// <param name="args">The arguments used to populate this resource's properties</param>
 /// <param name="options">A bag of options that control this resource's behavior</param>
 public Person(string name, PersonArgs?args = null, CustomResourceOptions?options = null)
     : base("example::Person", name, args ?? new PersonArgs(), MakeResourceOptions(options, ""))
 {
 }
Ejemplo n.º 8
0
 public Task <WebApiAgentResult <PersonCollectionResult> > GetByArgsWithEfAsync(PersonArgs?args, PagingArgs?paging = null, WebApiRequestOptions?requestOptions = null)
 {
     return(GetCollectionResultAsync <PersonCollectionResult, PersonCollection, Person>("api/v1/persons/args", requestOptions: requestOptions,
                                                                                        args: new WebApiArg[] { new WebApiArg <PersonArgs?>("args", args, WebApiArgType.FromUriUseProperties), new WebApiPagingArgsArg("paging", paging) }));
 }
Ejemplo n.º 9
0
 public Task <WebApiAgentResult <PersonDetailCollectionResult> > GetDetailByArgsAsync(PersonArgs?args, PagingArgs?paging = null, WebApiRequestOptions?requestOptions = null)
 => PersonServiceAgent.GetDetailByArgsAsync(args, paging, requestOptions);
Ejemplo n.º 10
0
 public Task <WebApiAgentResult <PersonDetailCollectionResult> > GetDetailByArgsAsync(PersonArgs?args, PagingArgs?paging = null, WebApiRequestOptions?requestOptions = null) =>
 GetCollectionResultAsync <PersonDetailCollectionResult, PersonDetailCollection, PersonDetail>("api/v1/persons/argsdetail", requestOptions: requestOptions,
                                                                                               args: new WebApiArg[] { new WebApiArg <PersonArgs?>("args", args, WebApiArgType.FromUriUseProperties), new WebApiPagingArgsArg("paging", paging) });