-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSave.fs
More file actions
29 lines (24 loc) · 888 Bytes
/
Save.fs
File metadata and controls
29 lines (24 loc) · 888 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
module Save
open LiteDB
open FSharp.Data
open WunderlistBackup
open Serialization
let saveToDb backup =
async {
use db = new LiteDatabase("wunderlist.db")
backup |>
toBsonDocument |>
db.GetCollection("BackUp").Insert |>
ignore
let! fileStreams =
backup.files |>
List.map (fun file -> async {
let! response = Http.AsyncRequestStream(file.Url)
return (file, response.ResponseStream)
}) |>
Async.Parallel
fileStreams |>
Array.iter (fun (file, stream) -> db.FileStorage
.Upload(file.Id.ToString(), file.FileName, stream) |>
ignore)
}