private async Task <bool> RunQueuedFeedbackCreate(ModelsData.Queue q) { if (_webAPIDataService == null) { return(false); } var record = await _db.GetAsyncConnection().Table <dataModel.Feedback>().Where(x => x.FeedbackId == q.RecordId).FirstOrDefaultAsync(); if (record != null) { var result = await _webAPIDataService.CreateFeedbackAsync(record.ToDto()); if (result.IsSuccessStatusCode) { Debug.WriteLine($"Successfully Sent Queued Feedback Record"); return(true); } else if (result.StatusCode == System.Net.HttpStatusCode.Conflict) { Analytics.TrackEvent($"Conflict Sending Queued Feedback record {q.RecordId}"); } Analytics.TrackEvent($"Error Sending Queued Feedback record {q.RecordId}"); return(false); } return(false); }
//queue a record in SQLite public async Task QueueAsync(Guid recordId, QueueableObjects objName) { try { ModelsData.Queue queue = new ModelsData.Queue() { RecordId = recordId, QueueableObject = objName.ToString(), DateQueued = DateTime.UtcNow, NumAttempts = 0, Success = false }; int count = await _db.GetAsyncConnection().InsertOrReplaceAsync(queue); Debug.WriteLine($"Queued {recordId} of type {objName}"); } catch (Exception ex) { Crashes.TrackError(ex); Debug.WriteLine($"Error in {nameof(QueueAsync)}"); } }