public async Task <HttpResponseMessage> UpdateCowStatus(CowStatusDto status) { var cts = new CancellationTokenSource(); var task = RemoteRequestAsync(_cowStatusApi.GetApi(Priority.UserInitiated).UpdateCowStatus(status), null); _runningTasks.Add(task.Id, cts); return(await task); }
private async void NextInput() { IsIdEmpty = string.IsNullOrEmpty(CowId); CowStatusDto cs = InitCowStatus(); CowStatusValidator validator = new CowStatusValidator(); ValidationResult result = validator.Validate(cs); if (result.IsValid) { if (!Config.TestMode) { await RunSafe(UploadCowStatus(cs)); } _EventAggregator.GetEvent <CowStatusRefreshEvent>().Publish(); } }
public IHttpActionResult Post([FromBody] CowStatusDto value) { if (!ModelState.IsValid) { Logger.Info("CowStatus modelstate invalid {@value1}", value); return(BadRequest(ModelState)); } try { CowStatus cow = Mapper.Map <CowStatus>(value); db.CowStatus.Add(cow); db.SaveChanges(); Logger.Info("CowStatus {id} created successfully", cow.ID); return(StatusCode(HttpStatusCode.NoContent)); } catch (DbEntityValidationException eve) { List <string> errors = new List <string>(); foreach (DbEntityValidationResult vr in eve.EntityValidationErrors) { foreach (DbValidationError ve in vr.ValidationErrors) { string error = $"{vr.Entry.Entity.GetType().Name}.{ve.PropertyName}: {ve.ErrorMessage}"; if (!errors.Contains(error)) { errors.Add(error); } } } Logger.Error(eve, eve.Message); return(InternalServerError(new InvalidOperationException(eve.Message + "\r\n" + String.Join("\r\n", errors.ToArray()), eve))); } catch (Exception ex) { Logger.Error(ex, ex.Message); return(InternalServerError(ex)); } }
private CowStatusDto InitCowStatus() { CowStatusDto cowStatus = new CowStatusDto(); if (InputMode.Equals("dryoff")) { cowStatus.CowIdentifier = CowId; cowStatus.InfectedAtDryOff = CowInfected; cowStatus.Farm_ID = App.SelectedFarm.ID; cowStatus.DateAddedDryOff = DateTime.Now; } else { cowStatus.CowIdentifier = CowId; cowStatus.InfectedAtCalving = CowInfected; cowStatus.Farm_ID = App.SelectedFarm.ID; cowStatus.DateAddedCalving = DateTime.Now; } return(cowStatus); }
private async void FinishInput() { if (!string.IsNullOrEmpty(CowId)) { CowStatusDto cs = InitCowStatus(); if (!Config.TestMode) { await RunSafe(UploadCowStatus(cs)); } } if (InputMode.Equals("dryoff")) { await NavigationService.NavigateAsync("CowStatusFinishPage"); } else { await PopulateCowStatusData(); await NavigationService.NavigateAsync("CowStatusResultsPage"); } }
private async Task UploadCowStatus(CowStatusDto status) { HttpResponseMessage response; if (InputMode.Equals("dryoff")) { response = await ApiManager.CreateCowStatus(status); } else { response = await ApiManager.UpdateCowStatus(status); } if (!response.IsSuccessStatusCode) { await PageDialog.AlertAsync("Unable to save cow status data", "Error", "OK"); } else { PageDialog.Toast("Cow status saved"); } }
public IHttpActionResult Put([FromBody] CowStatusDto value) { if (!ModelState.IsValid) { Logger.Info("Modelstate invalid: {@value1}", value); return(BadRequest(ModelState)); } CowStatus cow = Mapper.Map <CowStatus>(value); var cowStatus = db.CowStatus.DefaultIfEmpty(null).Where(x => x.Farm_ID == cow.Farm_ID && x.CowIdentifier == cow.CowIdentifier).FirstOrDefault(); if (cowStatus != null) { try { cowStatus.InfectedAtCalving = value.InfectedAtCalving; cowStatus.DateAddedCalving = value.DateAddedCalving; db.SaveChanges(); Logger.Info("CowStatus Updated: {@value1}", cowStatus); return(StatusCode(HttpStatusCode.NoContent)); } catch (Exception ex) { Logger.Error(ex, ex.Message); return(InternalServerError(ex)); } } else { try { db.CowStatus.Add(cow); db.SaveChanges(); return(StatusCode(HttpStatusCode.NoContent)); } catch (DbEntityValidationException eve) { List <string> errors = new List <string>(); foreach (DbEntityValidationResult vr in eve.EntityValidationErrors) { foreach (DbValidationError ve in vr.ValidationErrors) { string error = $"{vr.Entry.Entity.GetType().Name}.{ve.PropertyName}: {ve.ErrorMessage}"; if (!errors.Contains(error)) { errors.Add(error); } } } return(InternalServerError(new InvalidOperationException(eve.Message + "\r\n" + String.Join("\r\n", errors.ToArray()), eve))); } catch (Exception ex) { Logger.Error(ex, ex.Message); return(InternalServerError(ex)); } } }