public Task SetAsync(AVUser user, CancellationToken cancellationToken) { return(taskQueue.Enqueue(toAwait => { return toAwait.ContinueWith(_ => { if (user == null) { AVClient.ApplicationSettings.Remove("CurrentUser"); } else { // TODO (hallucinogen): we need to use AVCurrentCoder instead of this janky encoding var data = user.ServerDataToJSONObjectForSerialization(); data["objectId"] = user.ObjectId; if (user.CreatedAt != null) { data["createdAt"] = user.CreatedAt.Value.ToString(AVClient.DateFormatString); } if (user.UpdatedAt != null) { data["updatedAt"] = user.UpdatedAt.Value.ToString(AVClient.DateFormatString); } AVClient.ApplicationSettings["CurrentUser"] = Json.Encode(data); } CurrentUser = user; }); }, cancellationToken)); }
public Task SetAsync(AVUser user, CancellationToken cancellationToken) { return(taskQueue.Enqueue(toAwait => { return toAwait.ContinueWith(_ => { Task saveTask = null; if (user == null) { saveTask = storageController .LoadAsync() .OnSuccess(t => t.Result.RemoveAsync("CurrentUser")) .Unwrap(); } else { // TODO (hallucinogen): we need to use ParseCurrentCoder instead of this janky encoding var data = user.ServerDataToJSONObjectForSerialization(); data["objectId"] = user.ObjectId; if (user.CreatedAt != null) { data["createdAt"] = user.CreatedAt.Value.ToString(AVClient.DateFormatStrings.First(), CultureInfo.InvariantCulture); } if (user.UpdatedAt != null) { data["updatedAt"] = user.UpdatedAt.Value.ToString(AVClient.DateFormatStrings.First(), CultureInfo.InvariantCulture); } saveTask = storageController .LoadAsync() .OnSuccess(t => t.Result.AddAsync("CurrentUser", Json.Encode(data))) .Unwrap(); } CurrentUser = user; return saveTask; }).Unwrap(); }, cancellationToken)); }
public Task SetAsync(AVUser user, CancellationToken cancellationToken) { return taskQueue.Enqueue(toAwait => { return toAwait.ContinueWith(_ => { Task saveTask = null; if (user == null) { saveTask = storageController .LoadAsync() .OnSuccess(t => t.Result.RemoveAsync("CurrentUser")) .Unwrap(); } else { // TODO (hallucinogen): we need to use ParseCurrentCoder instead of this janky encoding var data = user.ServerDataToJSONObjectForSerialization(); data["objectId"] = user.ObjectId; if (user.CreatedAt != null) { data["createdAt"] = user.CreatedAt.Value.ToString(AVClient.DateFormatStrings.First(), CultureInfo.InvariantCulture); } if (user.UpdatedAt != null) { data["updatedAt"] = user.UpdatedAt.Value.ToString(AVClient.DateFormatStrings.First(), CultureInfo.InvariantCulture); } saveTask = storageController .LoadAsync() .OnSuccess(t => t.Result.AddAsync("CurrentUser", Json.Encode(data))) .Unwrap(); } CurrentUser = user; return saveTask; }).Unwrap(); }, cancellationToken); }