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); }
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; } }