// sends the update to the server... internal async Task PushServerUpdateAsync() { this.Logger.Info("Pushing update for #{0} ({1})...", this.Id, this.Status); // what happened? if (this.Status == ReportItemStatus.Unchanged) { // no-op... } else if (this.Status == ReportItemStatus.New) { // insert... var service = new CreateReportServiceProxy(); var result = await service.CreateReportAsync(this.Title, this.Description, this.Longitude, this.Latitude); // patch back the native ID, if it worked... if (!(result.HasErrors)) { this.NativeId = result.NativeId; } else { this.Logger.Warn("Failed to insert report: " + result.GetErrorsAsString()); } } else { throw new NotSupportedException(string.Format("Cannot handle '{0}'.", this.Status)); } // push the image update... await PushServerImageUpdateAsync(); // reset our flag... this.Status = ReportItemStatus.Unchanged; // set... var conn = StreetFooRuntime.GetUserDatabase(); await conn.UpdateAsync(this); }
// sends the update to the server... internal async Task PushServerUpdateAsync() { this.Logger.Info("Pushing update for #{0} ({1})...", this.Id, this.Status); // what happened? if (this.Status == ReportItemStatus.Unchanged) { // no-op... } else if (this.Status == ReportItemStatus.New) { // insert... var service = new CreateReportServiceProxy(); var result = await service.CreateReportAsync(this.Title, this.Description, this.Longitude, this.Latitude); // patch back the native ID, if it worked... if (!(result.HasErrors)) this.NativeId = result.NativeId; else this.Logger.Warn("Failed to insert report: " + result.GetErrorsAsString()); } else throw new NotSupportedException(string.Format("Cannot handle '{0}'.", this.Status)); // push the image update... await PushServerImageUpdateAsync(); // reset our flag... this.Status = ReportItemStatus.Unchanged; // set... var conn = StreetFooRuntime.GetUserDatabase(); await conn.UpdateAsync(this); }