Ejemplo n.º 1
0
 public SchemaBuilder(string _connString, LoggingDataLayer _logging_repo)
 {
     connString          = _connString;
     logging_repo        = _logging_repo;
     study_tablebuilder  = new StudyTableBuilder(connString, logging_repo);
     object_tablebuilder = new ObjectTableBuilder(connString, logging_repo);
     link_tablebuilder   = new LinkTableBuilder(connString, logging_repo);
 }
Ejemplo n.º 2
0
        public Task <Response <Customer> > Handle(GetRequest <Customer> request, CancellationToken cancellationToken)
        {
            var builder = new LinkTableBuilder();

            if (request.Identifier.ResourceId > 0)
            {
                return(Task.FromResult(new Response <Customer>(CreateCustomer(request.Identifier.ResourceId))
                {
                    Links = builder.AddGetSelf().ToList()
                }));
            }

            var customers = new[]
            {
                CreateCustomer(),
                CreateCustomer(),
                CreateCustomer(),
                CreateCustomer(),
                CreateCustomer(),
                CreateCustomer(),
                CreateCustomer(),
                CreateCustomer(),
                CreateCustomer(),
                CreateCustomer(),
                CreateCustomer(),
                CreateCustomer(),
                CreateCustomer()
            };

            if ((request.Options?.Skip?.Value).GetValueOrDefault() > 0)
            {
                builder.AddPrevPage();
            }
            if ((request.Options?.Top?.Value).GetValueOrDefault() > 0)
            {
                builder.AddNextPage();
            }

            // typically these vars will drive the (database) query.
            var skip  = request.Options?.Skip?.Value ?? 0;
            var take  = request.Options?.Top?.Value ?? Int32.MaxValue;
            var count = (request.Options?.Count?.Value).GetValueOrDefault() ? (int?)customers.Count() : null;

            return(Task.FromResult(new Response <Customer>(customers.Skip(skip).Take(take), count)
            {
                Links = builder.ToList()
            }));
        }