Ejemplo n.º 1
0
        public TaxonNameDetailsViewModel GetTaxonNameDetailsViewModel(ITaxon taxon, string nameId)
        {
            ITaxonName taxonName = taxon.GetTaxonNameByVersion(_user, Int32.Parse(nameId));
            var        model     = TaxonNameDetailsViewModel.Create(_user, taxonName);

            InitTaxonNameDetails(model, taxon);
            return(model);
        }
Ejemplo n.º 2
0
        public void InitTaxonNameDetails(TaxonNameDetailsViewModel model, ITaxon taxon)
        {
            model.CategoryList = new List <TaxonDropDownModelHelper>();
            TaxonNameCategoryList nameList = CoreData.TaxonManager.GetTaxonNameCategories(_user);

            foreach (TaxonNameCategory nameCategory in nameList)
            {
                model.CategoryList.Add(new TaxonDropDownModelHelper(nameCategory.Id, nameCategory.Name));
            }
            model.TaxonNameStatusList = new List <TaxonDropDownModelHelper>();
            TaxonNameStatusList nameStatusList = CoreData.TaxonManager.GetTaxonNameStatuses(_user);

            foreach (ITaxonNameStatus nameStatus in nameStatusList.OrderBy(t => t.SortOrder()))
            {
                model.TaxonNameStatusList.Add(new TaxonDropDownModelHelper(nameStatus.Id, nameStatus.Name));
            }
            model.TaxonNameUsageList = new List <TaxonDropDownModelHelper>();
            TaxonNameUsageList nameUsageList = CoreData.TaxonManager.GetTaxonNameUsages(_user);

            foreach (ITaxonNameUsage nameUsage in nameUsageList)
            {
                model.TaxonNameUsageList.Add(new TaxonDropDownModelHelper(nameUsage.Id, nameUsage.Name));
            }
            model.ExistingNames = new List <TaxonNameDetailsViewModel>();
            TaxonNameList taxonNames = taxon.GetTaxonNames(_user);

            for (int i = 0; i < taxonNames.Count; i++)
            {
                ITaxonName taxonName = taxonNames[i];
                model.ExistingNames.Add(TaxonNameDetailsViewModel.Create(_user, taxonName));
            }
            model.ExistingNames = (from name in model.ExistingNames orderby name.CategoryName select name).ToList();
            for (int i = 0; i < model.ExistingNames.Count; i++)
            {
                if (model.ExistingNames[i].Id == model.Id)
                {
                    model.ExistingNamesCurrentIndex = i;
                    break;
                }
            }

            // Check name category if Scentific and recommended it is not possible to change status.
            // Unselcet as recommended first and the it is possible to change name usage
            if (model.IsRecommended && (model.SelectedCategoryId == (Int32)TaxonNameCategoryId.ScientificName))
            {
                model.IsPossibleToChangeUsage = false;
            }
            else
            {
                model.IsPossibleToChangeUsage = true;
            }
        }