File tree Expand file tree Collapse file tree 2 files changed +8
-29
lines changed 
frameworks/FSharp/falco/src/App Expand file tree Collapse file tree 2 files changed +8
-29
lines changed Original file line number Diff line number Diff line change 1515  </ItemGroup >
1616
1717  <ItemGroup >
18+     <PackageReference  Include =" dapper"   Version =" 2.1.66"   />
1819    <PackageReference  Include =" Falco"   Version =" 5.*"   />
1920    <PackageReference  Include =" Npgsql"   Version =" 9.*"   />
2021  </ItemGroup >
Original file line number Diff line number Diff line change 11module  Program 
22
33open  System.Data  
4+ open  Dapper 
45open  Falco 
56open  Falco.Markup  
67open  Falco.Routing  
@@ -26,38 +27,15 @@ type Fortune =
2627          message =  " Additional fortune added at request time."   } 
2728
2829let  handleFortunes   ( connStr  :  string )  :  HttpHandler  =  fun  ctx  ->  task  { 
29-     use  conn =  new  NpgsqlConnection( connStr) 
30- 
31-     use  comd =  conn.CreateCommand() 
32-     comd.CommandText <-  " SELECT id, message FROM fortune" 
33- 
34-     do !  conn.OpenAsync() 
35-     use!  redr =  comd.ExecuteReaderAsync( CommandBehavior.SequentialAccess) 
36- 
37-     let!  dbFortunes  = 
38-         task  { 
39-             let mutable  shouldContinue  =  true 
40-             let  fortunes  =  ResizeArray< Fortune>() 
4130
42-             while  shouldContinue do 
43-                 let!  fortunesRead  =  redr.ReadAsync() 
44- 
45-                 if  not  fortunesRead then 
46-                     shouldContinue <-  false 
47-                 else 
48-                     fortunes.Add {  id =  redr.GetInt32( 0 ) 
49-                                    message =  redr.GetString( 1 )  } 
50-             return  fortunes |>  List.ofSeq
51-         } 
52- 
53-     redr.Dispose() 
54-     comd.Dispose() 
55-     conn.Dispose() 
31+     use  conn =  new  NpgsqlConnection( connStr) 
32+     let!  data  =  conn.QueryAsync< Fortune>( " SELECT id, message FROM fortune" ) 
33+     let  fortunes  =  data.AsList() 
34+     fortunes.Add( Fortune.Default) 
5635
5736    let  sortedFortunes  = 
58-         Fortune.Default :: 
59-         dbFortunes
60-         |>  List.sortBy ( fun  f  ->  f.message) 
37+         fortunes
38+         |>  Seq.sortBy ( fun  f  ->  f.message) 
6139
6240    let  html  = 
6341        Elem.html []  [ 
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments