Пример #1
0
        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);
        }
Пример #2
0
        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));
            }
        }
Пример #4
0
        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);
        }
Пример #5
0
        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");
            }
        }
Пример #6
0
        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));
                }
            }
        }