public IActionResult ReportObservationStep3(ObservationViewModel model)
        {
            model.category = db.GetCategoryFromId(model.category.Id);
            Observation o = new Observation()
            {
                //Laddar dagens datum som default
                Date           = DateTime.Today,
                maincategoryId = model.mainCategory.Id
            };

            model.observation = o;

            //Hämtar underkategori baserat på vad som valts
            var list = db.GetThirdCategories(model.category);

            ViewBag.IsValueEnable = CheckList(list);

            ViewBag.thirdCategories = list;
            int thirdCategoriesCount = list.Count();

            ViewBag.thirdCategoriesCount = thirdCategoriesCount;

            if (model.category.Unit.Equals("Päls"))
            {
                //filtrerar listan om det gäller päls
                ViewBag.thirdCategories = list.Where(x => x.Unit.Equals("Päls"));
                ViewBag.environment     = list.Where(x => x.Unit.Equals("Miljö"));
            }

            model.measurement.categoryId = model.category.Id;

            return(View(model));
        }
 // GET: Observation/Create
 /// <summary>
 /// 
 /// </summary>
 /// <param name="id">VisitHistoryID</param>
 /// <returns></returns>
 public ActionResult Create(int id)
 {
     var vm = new ObservationViewModel(db,null);
     vm.Model = new Observation();
     vm.Model.VisitHistory = db.VisitHistories.Find(id);
     vm.Model.VisitHistoryId = id;
     return View(vm);
 }
        /// <summary>
        /// Converts a list of ISpeciesObservations to a list with ObservationViewModel which is used
        /// to present the observations on screen.
        /// </summary>
        /// <param name="observations">The observations.</param>
        /// <returns></returns>
        public static List <ObservationViewModel> ToObservationViewModelList(this IEnumerable <ISpeciesObservation> observations)
        {
            var list = new List <ObservationViewModel>();

            if (observations != null)
            {
                foreach (ISpeciesObservation obs in observations)
                {
                    list.Add(ObservationViewModel.Create(obs));
                }
            }
            return(list);
        }
 public ActionResult Create(ObservationViewModel vm)
 {
     if (ModelState.IsValid)
     {
         vm.Initialise(db);
         vm.PrepareSave();
         db.Observations.Add(vm.Model);
         db.SaveChanges();
         return RedirectToAction("edit", "VisitHistories", new { id = vm.Model.VisitHistoryId }).AddFragment("ObservationsSection");
     }
     vm.ObservableEntitySelectList = new SelectList(db.ObservableEntities, "ObservableEntityID", "Name");
     return View(vm);
 }
示例#5
0
        public static List <Animal> filterByDate(ObservationViewModel model, DateTime startDate, DateTime endDate, int aSpecie)// Specie
        {
            List <Animal> sortedList = new List <Animal>();

            foreach (var item in model.AnimalList.Where(x => x.SpecieId == aSpecie))
            {
                if (item.Datetime > startDate && endDate > item.Datetime)
                {
                    sortedList.Add(item);
                }
            }
            return(sortedList);
        }
        public async Task <IActionResult> ReportObservationCompleted(ObservationViewModel model, string secondMeasurement)
        {
            model.measurement.categoryId = model.category.Id;
            //Hämtar inloggad user
            var user = await GetCurrentUserAsync();

            string userId = user?.Id;
            var    person = userDb.GetPerson(userId);

            if (model.observation.Date.Year == 1)
            {
                model.observation.Date = DateTime.Today;
            }
            //Sätter värden
            model.observation.Person      = person;
            model.measurement.Observation = model.observation;
            string fileName = null;

            if (model.CreateMeasurementViewModel.Photo != null)
            {
                string uploadsFolder = Path.Combine(hostingenv.WebRootPath, "pictures");
                fileName = Guid.NewGuid().ToString() + "_" + model.CreateMeasurementViewModel.Photo.FileName;
                string filePath = Path.Combine(uploadsFolder, fileName);
                model.CreateMeasurementViewModel.Photo.CopyTo(new FileStream(filePath, FileMode.Create));
                model.measurement.PhotoPath = fileName;
            }

            //Sparar i DB
            //db.AddObjectToDb(model.observation);
            db.AddObjectToDb(model.measurement);

            //Lägg till en andra measurement
            if (secondMeasurement != null)
            {
                int id = db.GetLastObservationIdFromUser(person);

                Measurement m = new Measurement()
                {
                    thirdCategoryId = Convert.ToInt32(secondMeasurement),
                    observationId   = id,
                    categoryId      = model.category.Id,
                    PhotoPath       = fileName
                };
                db.AddObjectToDb(m);
            }

            return(View());
        }
        public IActionResult ReportObservationStep2(MainCategory mainCat)
        {
            if (mainCat.Id == 0)
            {
                //Stannar på samma sida om ingen kategori är vald. Ska inte gå men man vet aldrig
                return(RedirectToAction("ReportObservationStep1"));
            }

            //mainCat = db.GetMainCategoryFromId(mainCat.Id); //Hämtar Namn på MainCat Kan tas bort??
            ObservationViewModel ob = new ObservationViewModel() //Skapar ViewModel
            {
                mainCategory = db.GetMainCategoryFromId(mainCat.Id)
            };

            ViewBag.newList = db.GetCategoriesFromId(mainCat);

            //Skickar tillbaka en vymodell
            return(View(ob));
        }
示例#8
0
        public static void getCoatColors(ObservationViewModel model, List <Animal> sortedList, int period)
        {
            List <string> coatColor = new List <string>();

            foreach (var item in sortedList)
            {
                if (item.Coat == "Sommar")
                {
                    if (period == 1)
                    {
                        model.Statistics.FirstSummer++;
                    }
                    else if (period == 2)
                    {
                        model.Statistics.SecondSummer++;
                    }
                }

                if (item.Coat == "Vinter")
                {
                    if (period == 1)
                    {
                        model.Statistics.FirstWinter++;
                    }
                    else if (period == 2)
                    {
                        model.Statistics.SecondWinter++;
                    }
                }
                if (item.Coat == "Spräcklig")
                {
                    if (period == 1)
                    {
                        model.Statistics.FirstMixed++;
                    }
                    else if (period == 2)
                    {
                        model.Statistics.SecondMixed++;
                    }
                }
            }
        }
示例#9
0
        public ObservationView(ObservationViewModel observationViewModel)
        {
            InitializeComponent();
            ViewModel = observationViewModel;

            _bsObs            = new BindingSource();
            _bsObs.DataSource = ViewModel.Observations;

            _textBoxStartDate.DataBindings.Add("Text",
                                               _bsObs, nameof(Observation.StartObservationDate), true);
            _textBoxEndDate.DataBindings.Add("Text",
                                             _bsObs, nameof(Observation.EndObservationDate), true);
            _textBoxDiagnosis.DataBindings.Add("Text", _bsObs, nameof(Observation.DiagnosisName));
            _textBoxDoctor.DataBindings.Add("Text", _bsObs, nameof(Observation.DoctorFio));

            _bsObs.CurrentItemChanged += _bsObs_CurrentItemChanged;
            ViewModel.NextClicked     += (s, e) => _bsObs.MoveNext();
            ViewModel.PreviousClicked += (s, e) => _bsObs.MovePrevious();
            this.Load += ObservationView_Load;
        }
示例#10
0
        public static int[] GetAnimalsByYear(ObservationViewModel model, int specieId)
        {
            int[]    animalsByYear = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            DateTime year          = new DateTime(2010, 01, 01);
            int      count         = 0;

            for (int i = 0; i < animalsByYear.Length; i++)
            {
                foreach (var item in model.AnimalList.Where(x => x.SpecieId == specieId))
                {
                    if (item.Datetime.Year == year.Year)
                    {
                        count++;
                    }
                }
                animalsByYear[i] = count;
                count            = 0;
                year             = year.AddYears(1);
            }
            return(animalsByYear);
        }
示例#11
0
        public static ObservationViewModel getCentralPosition(ObservationViewModel model)
        {
            double latSum  = 0;
            double longSum = 0;

            foreach (var item in model.ObservationsList)
            {
                if (item.Animal?.Latitude != null && item.Animal?.Longitude != null)
                {
                    latSum  += Convert.ToDouble(item.Animal.Latitude.Replace('.', ','));
                    longSum += Convert.ToDouble(item.Animal.Longitude.Replace('.', ','));
                }
                if (item.Weather?.Latitude != null && item.Weather?.Longitude != null)
                {
                    latSum  += Convert.ToDouble(item.Weather.Latitude.Replace('.', ','));
                    longSum += Convert.ToDouble(item.Weather.Longitude.Replace('.', ','));
                }
            }
            model.CentralLatitude  = (latSum / model.ObservationsList.Count).ToString().Replace(',', '.');
            model.CentralLongitude = (longSum / model.ObservationsList.Count).ToString().Replace(',', '.');
            return(model);
        }
示例#12
0
        public UserControl GetUcViewOutput(string key)
        {
            switch (key)
            {
            case "Ob":
                var vmO = new ObservationViewModel();
                var ucO = new ObservationView(vmO);
                return(ucO);

            case "Ex":
                var vmE = new ExaminationViewModel();
                var ucE = new ExaminationView(vmE);
                return(ucE);

            case "Ho":
                var vmH = new HospitalizationViewModel();
                var ucH = new HospitalizationView(vmH);
                return(ucH);

            default:
                throw new ArgumentException(nameof(key));
            }
        }
示例#13
0
        public IActionResult Diagram()
        {
            ObservationViewModel model = new ObservationViewModel();

            model.Statistics = new Statistics();
            model.AnimalList = dbContext.GetAnimals();

            DateTime FirstStartDate  = new DateTime(2010, 11, 1);
            DateTime FirstEndDate    = new DateTime(2010, 12, 31);
            DateTime SecondStartDate = new DateTime(2019, 11, 1);
            DateTime SecondEndDate   = new DateTime(2019, 12, 31);
            int      specieID        = 3;// ripa

            Helper.getCoatColors(model, Helper.filterByDate(model, FirstStartDate, FirstEndDate, specieID), 1);
            Helper.getCoatColors(model, Helper.filterByDate(model, SecondStartDate, SecondEndDate, specieID), 2);

            model.Statistics.GrouseByYear = Helper.GetAnimalsByYear(model, 3); // hårdkodat species.
            model.Statistics.FoxByYear    = Helper.GetAnimalsByYear(model, 2);
            model.Statistics.SwineByYear  = Helper.GetAnimalsByYear(model, 4);
            model.Statistics.FrogByYear   = Helper.GetAnimalsByYear(model, 5);
            model.Statistics.HareByYear   = Helper.GetAnimalsByYear(model, 1);

            return(View(model));
        }
示例#14
0
        public IActionResult Observation(string sortBy, string searchTerm)
        {
            ObservationViewModel model = new ObservationViewModel();
            Animal         animal      = new Animal();
            Weather        weather     = new Weather();
            Observation    obs         = new Observation();
            List <Animal>  animals     = new List <Animal>();
            List <Weather> weathers    = new List <Weather>();

            animals  = dbContext.GetAnimals();
            weathers = dbContext.GetWeathers();
            model.ObservationsList = new List <Observation>();

            // Populate the lists
            foreach (var item in animals)
            {
                model.ObservationsList.Add(new Observation {
                    Animal = item, Datetime = item.Datetime, ObservationTypes = item.Specie.Speciename, Cities = item.City,
                    Names  = item.User.Lastname, FirstNames = item.User.Firstname
                });
            }
            foreach (var item in weathers)
            {
                model.ObservationsList.Add(new Observation {
                    Weather = item, Datetime = item.Datetime, ObservationTypes = item.Type, Cities = item.City,
                    Names   = item.User.Lastname, FirstNames = item.User.Firstname
                });
            }

            #region // SortBy
            ViewData["ObservationSortParameter"] = String.IsNullOrEmpty(sortBy) ? "observationDesc" : "";
            ViewData["DatetimeSortParameter"]    = sortBy == "datetime" ? "datetimeDesc" : "datetime";
            ViewData["CitySortParameter"]        = sortBy == "city" ? "cityDesc" : "city";
            ViewData["NameSortParameter"]        = sortBy == "name" ? "nameDesc" : "name";
            ViewData["CurrentFilter"]            = searchTerm;
            #endregion

            #region Sortering
            switch (sortBy)
            {
            case "observationDesc":
                model.ObservationsList = model.ObservationsList.OrderByDescending(x => x.ObservationTypes).ToList();
                break;

            case "datetime":
                model.ObservationsList = model.ObservationsList.OrderBy(x => x.Datetime).ToList();
                break;

            case "datetimeDesc":
                model.ObservationsList = model.ObservationsList.OrderByDescending(x => x.Datetime).ToList();
                break;

            case "city":
                model.ObservationsList = model.ObservationsList.OrderBy(x => x.Cities).ToList();
                break;

            case "cityDesc":
                model.ObservationsList = model.ObservationsList.OrderByDescending(x => x.Cities).ToList();
                break;

            case "name":
                model.ObservationsList = model.ObservationsList.OrderBy(x => x.Names).ToList();
                break;

            case "nameDesc":
                model.ObservationsList = model.ObservationsList.OrderByDescending(x => x.Names).ToList();
                break;

            default:
                model.ObservationsList = model.ObservationsList.OrderBy(x => x.ObservationTypes).ToList();
                break;
            }
            #endregion

            #region Search and SearchBox
            if (!String.IsNullOrEmpty(searchTerm))
            {
                model.ObservationsList = model.ObservationsList.Where(x => x.Names.Contains(searchTerm) || x.ObservationTypes.Contains(searchTerm) || x.FirstNames.Contains(searchTerm)).ToList();
            }
            else
            {
                model.ObservationsList = model.ObservationsList.OrderBy(x => x.ObservationTypes).ToList();
            }
            #endregion

            Helper.getCentralPosition(model);

            var t = TempData["success"];
            if (t != null)
            {
                ViewData["success"] = t;
            }

            return(View(model));
        }
 public ActionResult Edit(ObservationViewModel vm)
 {
     if (ModelState.IsValid)
     {
         var item = db.Entry(vm.Model);
         item.State = EntityState.Modified;
         vm.Initialise(db);
         vm.PrepareSave();
         db.SaveChanges();
         return RedirectToAction("edit", "VisitHistories", new { id = vm.Model.VisitHistoryId }).AddFragment("ObservationSection");
     }
     vm.PopulateSelectLists();
     return View(vm);
 }
 // GET: Observation/Edit/5
 public ActionResult Edit(int? visitHistoryID,int? observableEntityID)
 {
     if (visitHistoryID == null || observableEntityID == null)
     {
         return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
     }
     //var vm = new ObservationViewModel();
     var observation = db.Observations.Find(observableEntityID, visitHistoryID);
     if (observation == null)
     {
         return HttpNotFound();
     }
     ObservationViewModel vm = new ObservationViewModel(db, observation);
     return View(vm);
 }
 /// <summary>
 /// Converts a ISpeciesObservations to a ObservationViewModel which is used
 /// to present the observation on screen.
 /// </summary>
 /// <param name="observation">The observation.</param>
 /// <returns></returns>
 public static ObservationViewModel ToObservationViewModel(this ISpeciesObservation observation)
 {
     return(ObservationViewModel.Create(observation));
 }