示例#1
0
        private MapComponentYears CreateMapComponent(SeedlingViewModel seedlingViewModel, Genotype genotype, Map map)
        {
            MapComponent newSeedling = new MapComponent()
            {
                GenotypeId = genotype.Id,
                Genotype   = genotype,
                MapId      = map.Id,
                Map        = map,
                Row        = seedlingViewModel.RowNum,
                PlantNum   = seedlingViewModel.PlantNum,
                isSeedling = false
            };

            u_repo.SaveMapComponent(newSeedling);

            MapComponentYears mapComponentYear = new MapComponentYears()
            {
                Answers        = new List <Answer>(),
                YearsId        = seedlingViewModel.MapYearId,
                MapComponentId = newSeedling.Id,
                MapComponent   = newSeedling
            };

            u_repo.SaveMapComponentYear(mapComponentYear);
            return(mapComponentYear);
        }
示例#2
0
        public static MapComponentSummaryViewModel ToMapComponentSummaryViewModel(this MapComponentYears mapComponent)
        {
            MapComponentSummaryViewModel viewmodel  = Mapper.Map <MapComponentYears, MapComponentSummaryViewModel>(mapComponent);
            ICollection <Question>       unanswered = mapComponent.MapComponent.Map.Questions;

            viewmodel.Answers = GenerateRowsFullAnswers(mapComponent.Id, viewmodel.MapComponentGenotypeId, unanswered, null);
            return(viewmodel);
        }
示例#3
0
        public MapComponentSummaryVM CreateSeedlingSelection(SeedlingViewModel seedlingViewModel)
        {
            var map = u_repo.GetMap(seedlingViewModel.MapId);

            MapComponentYears            mapcomp      = SaveSeedling(seedlingViewModel, map);
            MapComponentSummaryViewModel mapSummaryVM = mapcomp.ToMapComponentSummaryViewModel();

            mapSummaryVM.PossibleFates = u_repo.GetFates().ToSelectList(t => t.Id.ToString(), t => t.Name, t => false);

            return(PhenotypeEntryRowFull(mapcomp, map.Questions.ToList()));
        }
示例#4
0
        public static MapComponentSummaryVM ToMapComponentSummaryVM(this MapComponentYears mc, MapComponentYears previous)
        {
            var mapComponentYear = mc.ToMapComponentSummaryVM();

            if (previous != null && previous.Fates.Any())
            {
                List <string> fates = previous.Fates.Select(f => f.Label).ToList();
                mapComponentYear.PreviousFates = string.Join("; ", fates);
            }

            return(mapComponentYear);
        }
 private void CreateMapComponentYears(IEnumerable <MapComponent> mapcomponents, Years year)
 {
     foreach (MapComponent mc in mapcomponents.ToList())
     {
         MapComponentYears mcy = new MapComponentYears()
         {
             Year           = year,
             YearsId        = year.Id,
             MapComponent   = mc,
             MapComponentId = mc.Id
         };
         u_repo.SaveMapComponentYear(mcy);
         mc.MapComponentYears.Add(mcy);
     }
 }
        /// <summary>
        /// Adds the map component year if it doesn't exist
        /// </summary>
        /// <param name="mapcomponent"></param>
        /// <param name="yearId"></param>
        private void UpdateMapComponentYears(MapComponent mapcomponent, int yearId)
        {
            MapComponent      old     = u_repo.GetMapComponent(mapcomponent.Id);
            MapComponentYears current = old.MapComponentYears.SingleOrDefault(t => t.YearsId == yearId);

            if (current.Id <= 0)
            {
                Years y = mapcomponent.Map.Years.SingleOrDefault(t => t.Id == yearId);
                current.MapComponentId = mapcomponent.Id;
                current.MapComponent   = mapcomponent;
                current.Year           = y;
                current.YearsId        = y.Id;
                u_repo.SaveMapComponentYear(current);
            }
        }
示例#7
0
        private MapComponentYears SaveSeedling(SeedlingViewModel seedlingViewModel, Map map)
        {
            Genotype seedlingGen = u_repo.GetGenotype(seedlingViewModel.GenotypeId);

            if (seedlingGen == null)
            {
                throw new PhenotypeException("No Accession specified");
            }

            var               year        = u_repo.GetYear(seedlingViewModel.MapYearId);
            Genotype          selection   = CreateGenotypeSelection(seedlingViewModel.GenotypeId, year.Year, seedlingViewModel.CreatedDate);
            MapComponentYears newSeedling = CreateMapComponent(seedlingViewModel, selection, map);

            return(newSeedling);
        }
示例#8
0
        private MapComponentSummaryVM PhenotypeEntryRowFull(MapComponentYears mapcomponentYear, List <Question> mapQuestions, Dictionary <int, MapComponentYears> previousYearComps = null)
        {
            MapComponentYears previous = null;

            if (previousYearComps != null)
            {
                previousYearComps.TryGetValue(mapcomponentYear.MapComponentId, out previous);
            }
            MapComponentSummaryVM  row        = mapcomponentYear.ToMapComponentSummaryVM(previous);
            IEnumerable <Question> unanswered = mapQuestions
                                                .Where(q => !row.QuestionToAnswer.Any(a => a.Key == q.Id.ToString()))
                                                .ToList();

            row.QuestionToAnswer = PhenotypeEntryViewModelTranslator.GenerateRowsFullAnswerVMs(row.Id, row.Genotype.Id, row.Id, unanswered, row.QuestionToAnswer);
            return(row);
        }
        public void DeleteMapComponentForYear(int mapcomponentId, int yearId)
        {
            MapComponent      mapcomponent = u_repo.GetMapComponent(mapcomponentId);
            MapComponentYears mapcompyear  = mapcomponent.MapComponentYears.SingleOrDefault(t => t.YearsId == yearId);

            if (mapcomponent == null)
            {
                throw new MapException(Properties.Settings.Default.ExceptionMapComponentInvalid);
            }

            if (mapcompyear.Answers.HasAny() || mapcompyear.Fates.HasAny() || !mapcompyear.Comments.IsNullOrWhiteSpace())
            {
                throw new MapException(Properties.Settings.Default.ExceptionMapComponentYear);
            }

            u_repo.DeleteMapComponentYear(mapcompyear);
        }
        private void CreateMapComponent(MapComponent mapcomponent, int yearId)
        {
            Map   map = u_repo.GetMap(mapcomponent.MapId);
            Years y   = map.Years.SingleOrDefault(t => t.Id == yearId);

            mapcomponent.Map         = map;
            mapcomponent.CreatedYear = y.Year;
            u_repo.SaveMapComponent(mapcomponent);
            MapComponentYears mapcompyear = new MapComponentYears()
            {
                MapComponentId = mapcomponent.Id,
                Year           = y,
                YearsId        = y.Id
            };

            u_repo.SaveMapComponentYear(mapcompyear);
            mapcomponent.MapComponentYears.Add(mapcompyear);
        }
示例#11
0
 public static MapComponentSummaryVM ToMapComponentSummaryVM(this MapComponentYears mc)
 {
     return(new MapComponentSummaryVM
     {
         Id = mc.Id,
         Genotype = mc.MapComponent?.Genotype?.ToGenotypeVM(),
         PickingNumber = mc.MapComponent?.PickingNumber,
         Row = mc.MapComponent?.Row,
         PlantNum = mc.MapComponent?.PlantNum,
         Comments = mc.Comments,
         Rep = mc.MapComponent?.Rep,
         Fates = mc.Fates?.Select(t => t.ToFateVM()),
         QuestionToAnswer = mc.Answers?.DistinctBy(t => t.QuestionId.ToString())
                            .ToDictionary(t => t.QuestionId.ToString(), t => t.ToAnswerVM()),
         MapName = mc.MapComponent.Map.FullName,
         EvalYear = mc.Year.Year ?? "",
         MapSeedling = mc.MapComponent.Map.IsSeedlingMap
     });
 }
示例#12
0
        public ActionResult SaveComments(MapComponentSummaryViewModel viewModel)
        {
            ActionResult      view         = null;
            MapComponentYears mapcompyears = m_repo.GetMapComponentYear(viewModel.Id);

            mapcompyears.Comments = viewModel.Comments;

            try
            {
                m_repo.SaveMapComponentYearComment(mapcompyears);
            }
            catch (Exception e)
            {
                view = Json(new { Error = true, Message = e.Message });
            }

            ViewBag.FlatTypes = new SelectList(m_repo.GetFlatTypes(), "Id", "Name");

            return(view);
        }
示例#13
0
        public void SaveComments(MapComponentSummaryVM summary)
        {
            if (summary == null)
            {
                throw new PhenotypeException("Invalid viewModel");
            }
            if (summary.Id < 0)
            {
                throw new PhenotypeException("Invalid viewModel");
            }

            MapComponentYears mapcompyears = u_repo.GetMapComponentYear(summary.Id);

            mapcompyears.Comments = summary.Comments;
            try
            {
                u_repo.DoSaveMapComponentYear(mapcompyears);
            }
            catch (ArgumentNullException)
            {
                throw new PhenotypeException("Invalid mapcompyears to save");
            }
        }