Пример #1
0
        public async Task <IActionResult> Edit(int id, [Bind("ID,Date,HeartrateMin,HeartrateMax,HeartrateAvg,Steps")] DataEntryViewModel dataEntryViewModel)
        {
            if (id != dataEntryViewModel.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    dataEntryViewModel.Username = User.Identity.Name;
                    _context.Update(dataEntryViewModel);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!DataEntryViewModelExists(dataEntryViewModel.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Index"));
            }
            return(View(dataEntryViewModel));
        }
Пример #2
0
        public DataEntryPage(DataEntryViewModel viewModel)
        {
            InitializeComponent();

            BindingContext = this.viewModel = viewModel;
            Entry          = viewModel.Entry;
            Form           = viewModel.Form;

            // type bindings
            if (Form.XFormType == "Numeric")
            {
                val1.Keyboard = Keyboard.Numeric;
            }
            else
            {
                val1.Keyboard = Keyboard.Text;
            }

            if (Form.YFormType == "Numeric")
            {
                val2.Keyboard = Keyboard.Numeric;
            }
            else
            {
                val2.Keyboard = Keyboard.Text;
            }
        }
Пример #3
0
 public DataEntryPage()
 {
     InitializeComponent();
     Form  = new Form();
     Entry = new Entry
     {
         FormID = Form.Id
     };
     viewModel      = new DataEntryViewModel(Form);
     BindingContext = viewModel;
 }
Пример #4
0
 public IActionResult SetDataEntry(DataEntryViewModel model)
 {
     if (ModelState.IsValid)
     {
         _logger.LogInformation(
             LoggingEvents.CreateNewMessage,
             "Submitted message {MESSAGE} by {PERSON} with the email {EMAIL}.",
             model.Message, model.CreatedBy, model.Email);
     }
     return(RedirectToAction("Index"));
 }
Пример #5
0
        public bool CreateExperimentData(DataEntryViewModel dataEntryViewModel)
        {
            //Get list of DataEntryFieldViewModels(Properties) from view model
            var propertyViewModels = dataEntryViewModel.Properties.ToList();

            //Remove properties that contain no DataEntryDetails, they have nothing to add to database
            propertyViewModels.RemoveAll(p => p.DataEntryDetails == null);

            // Validate submitted properties
            if (!ValidateProperties(propertyViewModels) | !_validationDictionary.IsValid)
            {
                return(false);
            }

            var entries = new Collection <DataEntry>(
                (
                    from property in propertyViewModels
                    select new DataEntry()
            {
                DataEntryDesignDataEntryDesignID = property.DesignID,
                DataEntryDetails = GetDetailsFromProperty(property).ToList()
            }).ToList());

            //Get animalProcedure
            var animalAdministration = _animalAdministrationRepository.Get(dataEntryViewModel.AnimalAdministrationID);

            if (animalAdministration == null)
            {
                // create new record
                animalAdministration = new AnimalAdministration()
                {
                    AnimalID         = dataEntryViewModel.AnimalID,
                    StartTime        = dataEntryViewModel.StartTime,
                    EndTime          = dataEntryViewModel.EndTime,
                    CreatedBy        = _userKey,
                    LastUpdatedBy    = _userKey,
                    AdministrationID = dataEntryViewModel.AdministrationID,
                    DataEntries      = entries
                };
                _animalAdministrationRepository.Add(animalAdministration);
            }
            else
            {
                //update current record
                foreach (var entry in animalAdministration.DataEntries)
                {
                    entry.SoftDelete(true);
                }
                animalAdministration.DataEntries = entries;
            }

            return(true);
        }
Пример #6
0
 public void RepopulateViewModel(DataEntryViewModel dataEntryViewModel)
 {
     foreach (
         var property in
         dataEntryViewModel.Properties.Where(p => p.ViewModelType == DataEntryViewModelType.Option && p.DataEntryDetails != null))
     {
         property.Options = GetOptionsFromDesignId(property.DesignID);
         foreach (var detail in property.DataEntryDetails)
         {
             var optionDetail = (DataEntryDetailOptionViewModel)detail;
             optionDetail.Options = GetOptionsFromDesignId(property.DesignID);
         }
     }
 }
Пример #7
0
        public static void QuickSort(DataEntryViewModel[] o, int left, int right)
        {
            int i = left, j = right;
            DataEntryViewModel pivot = o[(left + right) / 2];

            while (i <= j)
            {
                while (o[i].Date.CompareTo(pivot.Date) < 0)
                {
                    i++;
                }

                while (o[j].Date.CompareTo(pivot.Date) > 0)
                {
                    j--;
                }

                if (i <= j)
                {
                    // Swap
                    DataEntryViewModel tmp = o[i];
                    o[i] = o[j];
                    o[j] = tmp;

                    i++;
                    j--;
                }
            }

            // Recursive calls
            if (left < j)
            {
                QuickSort(o, left, j);
            }

            if (i < right)
            {
                QuickSort(o, i, right);
            }
        }
Пример #8
0
        public ActionResult DataEntry(DataEntryViewModel dataEntryViewModel)
        {
            //Convert dataEntryViewModels into relevant entities for persistance
            if (!_dataEntryService.CreateExperimentData(dataEntryViewModel))
            {
                _dataEntryService.RepopulateViewModel(dataEntryViewModel);
                return(View(dataEntryViewModel));
            }

            _uow.Save();

            return(RedirectToAction("DataEntryDisplay", new
            {
                procedureId = dataEntryViewModel.ProcedureID,
                administrationId = dataEntryViewModel.AdministrationID,
                animalId = dataEntryViewModel.AnimalID,
                projectId = dataEntryViewModel.ProjectID,
                researchGroupId = dataEntryViewModel.ResearchGroupID,
                diseaseModelInductionId = dataEntryViewModel.DiseaseModelInductionID
            }
                                    ));
        }
Пример #9
0
        public async Task <IActionResult> Create([Bind("ID,Date,HeartrateMin,HeartrateMax,HeartrateAvg,Steps")] DataEntryViewModel dataEntryViewModel)
        {
            if (ModelState.IsValid)
            {
                var dates = from m in _context.DataEntryViewModel
                            select m;
                string user = User.Identity.Name;
                dates = dates.Where(s => s.Username.Equals(user));
                foreach (DataEntryViewModel d in dates)
                {
                    if (dataEntryViewModel.Date.Equals(d.Date))
                    {
                        return(View("ErrorDup"));
                    }
                }
                dataEntryViewModel.Username = User.Identity.Name;
                _context.Add(dataEntryViewModel);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(dataEntryViewModel));
        }
Пример #10
0
 public DataEntryPage()
 {
     InitializeComponent();
     BindingContext = new DataEntryViewModel();
 }
Пример #11
0
        public DataEntryViewModel GetDataEntryViewModels(int administrationid, int animalid, int projectId, int researchGroupId, int diseaseModelInductionId)
        {
            //Get animal
            var animal = _animalRepository.Get(animalid);

            //Get administration
            var administration = _administrationRepository.Get(administrationid);

            int procedureid = administration.ProcedureID;

            //Get active animaladministration
            var animalAdministration =
                _animalAdministrationRepository.GetCurrent()
                .FirstOrDefault(ap => ap.AnimalID == animalid && ap.AdministrationID == administrationid);

            if (animalAdministration == null)
            {
                animalAdministration = new AnimalAdministration()
                {
                    AnimalID = animalid,
                    Animal   = animal,
                    AnimalAdministrationID = 0,
                    Administration         = administration,
                    AdministrationID       = administrationid,
                    StartTime = DateTime.Now,
                    EndTime   = DateTime.Now
                };
            }
            //get any existing current dataentries
            var animalAdministrationEntries = animalAdministration.DataEntries != null?animalAdministration.DataEntries.Where(de => de.IsActive) : new Collection <DataEntry>();

            //get any currrent designs from db for this procedure
            var designs = _dataEntryDesignRepository.GetCurrent().Where(de => de.ProcedureProcedureID == procedureid);

            //left join current designs with any current data entries in the database
            var query = from design in designs.AsEnumerable()
                        join entry in animalAdministrationEntries.AsEnumerable()
                        on design equals entry.DataEntryDesign into designEntriesGroup
                        //set default entry value for design without any current entries
                        from entries in designEntriesGroup.DefaultIfEmpty(new DataEntry()).AsEnumerable()
                        select new DataEntryFieldViewModel
            {
                ProjectID          = projectId,
                ResearchGroupID    = researchGroupId,
                AnimalID           = animalid,
                ProcedureID        = procedureid,
                DataEntryID        = entries.DataEntryID,
                DataEntryFieldName = design.DataEntryField.DataEntryFieldName,
                DesignID           = design.DataEntryDesignID,
                ViewModelType      = _viewModelTypeByFieldType[design.DataEntryField.FieldType.OptionValue],
                Mandatory          = design.Mandatory,
                Multiple           = design.Multiple,
                Options            = GetOptionsFromDesignId(design.DataEntryDesignID),
                DataEntryDetails   =
                    GetDataEntryDetailViewModels(entries.DataEntryDetails,
                                                 design.DataEntryField.FieldType.OptionValue)
            };

            //Create DataEntryViewModel from existing AnimalProcedure or create default new view model if none exists yet
            var dataEntryViewModel = new DataEntryViewModel()
            {
                StartTime               = animalAdministration.StartTime,
                EndTime                 = animalAdministration.EndTime,
                ProcedureName           = administration.Procedure.OptionsProcedureType.OptionValue,
                Species                 = animal.Cohort.Strain.StrainName,
                Strain                  = animal.Cohort.Strain.Species.SpeciesName,
                AnimalLabel             = animal.AnimalLabel,
                AnimalID                = animalid,
                ProjectID               = projectId,
                ResearchGroupID         = researchGroupId,
                DiseaseModelInductionID = diseaseModelInductionId,
                // ReSharper disable once PossibleNullReferenceException
                AnimalAdministrationID = animalAdministration.AnimalAdministrationID,
                AdministrationID       = administrationid,
                ProcedureID            = procedureid,
                Properties             = new Collection <DataEntryFieldViewModel>(query.ToList())
            };

            return(dataEntryViewModel);
        }