public async Task <Order[]> GetFrom(FreelanceBurse burse) { await Task.CompletedTask; XDocument xml = XDocument.Load(burse.Link.ToString()); OrderBody[] bodies = _parser.GetFrom(xml); return(bodies.Select(p => new Order(p, burse)).ToArray()); }
public async Task <Order[]> GetUnhandledOrdersAsync() { using (IDbConnection connection = _connectionFactory.BuildConnection()) { string query = $@" with cte as ( update ""Orders"" set ""Status"" = '{ProcessingStatus.InProcess}', ""LastModificationDate"" = now() where ""Status"" = '{ProcessingStatus.New}' or (""Status"" = '{ProcessingStatus.InProcess}' and date_part('minutes', now() - ""LastModificationDate""::timestamp) > 5) returning ""Title"", ""Description"", ""Link"", ""Publication"", ""FreelanceBurseId"" ) select * from cte join ""FreelanceBurses"" fb on cte.""FreelanceBurseId"" = fb.""Id"" "; IEnumerable <OrderEntity> result = await connection.QueryAsync <OrderEntity, FreelanceBurseEntity, OrderEntity>( query, (o, fb) => { o.FreelanceBurse = fb; return(o); }); return(result.Select( p => { var body = new OrderBody(p.Title, p.Description, new Uri(p.Link), p.Publication); var burse = new FreelanceBurse(p.FreelanceBurseId, new Uri(p.FreelanceBurse.Link), p.FreelanceBurse.Name); return new Order(body, burse); }) .ToArray()); } }
public Order(OrderBody body, FreelanceBurse source) { Source = source; Body = body; }