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); }
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() })); }