public ActionResult Edit(string taxonId, string nameId)
        {
            int revisionId  = this.RevisionId.Value;
            int taxonNameId = 0;

            if (nameId.IsNotNull())
            {
                taxonNameId = Int32.Parse(nameId);
            }

            TaxonSearchResult searchResult = this.TaxonSearchManager.GetTaxon(taxonId);

            if (searchResult.NumberOfMatches != 1)
            {
                return(RedirectToSearch(taxonId, new { revisionId = revisionId, nameId = taxonNameId })); //todo change revisionId
            }

            this.TaxonIdentifier = TaxonIdTuple.Create(taxonId, searchResult.Taxon.Id);
            ITaxon taxon = searchResult.Taxon;

            ViewBag.Taxon = taxon;
            //this.NavigateData = new NavigateData("TaxonName", "List");

            var model = _taxonNameViewManager.GetTaxonNameDetailsViewModel(taxon, nameId);

            return(View("Edit", model));
        }
        public ActionResult List(string taxonId)
        {
            int revisionId = this.RevisionId.Value;

            if (taxonId.IsNull())
            {
                taxonId = this.TaxonIdentifier.Id.ToString();
            }
            TaxonSearchResult searchResult = this.TaxonSearchManager.GetTaxon(taxonId);

            if (searchResult.NumberOfMatches != 1)
            {
                return(RedirectToSearch(taxonId, new { revisionId = revisionId }));
            }

            this.TaxonIdentifier = TaxonIdTuple.Create(taxonId, searchResult.Taxon.Id);
            ITaxon taxon = searchResult.Taxon;

            ViewBag.Taxon = taxon;
            //this.NavigateData = new NavigateData("TaxonName", "List");

            var model = new ListTaxonNameViewModel(taxon, this.TaxonRevision);

            return(View("List", model));
        }
Ejemplo n.º 3
0
        public static TaxonSearchResult MapTaxonSearchResult(DbDataReader reader)
        {
            TaxonSearchResult t = new TaxonSearchResult();

            ReflectMap(t, reader, null, null);
            return(t);
        }
        public ActionResult Add(string taxonId, int?nameCategoryId)
        {
            TaxonSearchResult searchResult = this.TaxonSearchManager.GetTaxon(taxonId);

            if (searchResult.NumberOfMatches != 1)
            {
                return(RedirectToSearch(taxonId)); //todo change revisionId
            }

            this.TaxonIdentifier = TaxonIdTuple.Create(taxonId, searchResult.Taxon.Id);
            ITaxon taxon = searchResult.Taxon;

            ViewBag.Taxon = taxon;
            //this.NavigateData = new NavigateData("TaxonName", "List");

            TaxonNameDetailsViewModel model = _taxonNameViewManager.GetTaxonNameDetailsViewModel(taxon);

            if (nameCategoryId.HasValue)
            {
                model.SelectedCategoryId = nameCategoryId.Value;
            }
            // Since taxonAdd and edit uses the same view we have to set no of references to 1, otherwise
            // client validation will not pass for TaxonName Add. TODO refactor Taxon name add and edit into two viewmodels
            model.NoOfTaxonNameReferences++;
            return(View("Add", model));
        }
Ejemplo n.º 5
0
        public ActionResult DefaultStraightFile(string taxonId)
        {
            TaxonSearchResult searchResult = this.TaxonSearchManager.GetTaxon(taxonId);

            if (searchResult.NumberOfMatches != 1)
            {
                return(RedirectToSearch(taxonId));
            }

            ITaxon taxon = searchResult.Taxon;

            this.TaxonIdentifier = TaxonIdTuple.Create(taxonId, searchResult.Taxon.Id);
            ViewBag.Taxon        = taxon;
            var model = ExportViewModel.Create(GetCurrentUser(), taxon, false);

            var manager = new ExportManager(model, GetCurrentUser());

            manager.CreateExportItems();
            ExcelFileFormat fileFormat = ExcelFileFormat.OpenXml;

            var          fileDownloadName = GetValidFileName(taxon.ScientificName) + ExcelFileFormatHelper.GetExtension(fileFormat);
            MemoryStream excelFileStream  = manager.CreateExcelFile(fileFormat);
            var          fileStreamResult = new FileStreamResult(excelFileStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

            fileStreamResult.FileDownloadName = fileDownloadName;

            return(fileStreamResult);
        }
Ejemplo n.º 6
0
        public ActionResult DatabaseNew(string taxonId)
        {
            TaxonSearchResult searchResult = this.TaxonSearchManager.GetTaxon(taxonId);

            if (searchResult.NumberOfMatches != 1)
            {
                return(RedirectToSearch(taxonId));
            }

            ITaxon taxon = searchResult.Taxon;

            this.TaxonIdentifier = TaxonIdTuple.Create(taxonId, searchResult.Taxon.Id);
            ViewBag.Taxon        = taxon;

            var model = ExportDatabaseViewModel.Create(GetCurrentUser(), taxon);

            model.ClipBoard = this.TaxonIdentifier.Id.Value.ToString();
            // RowDelimiter Dropbox
            var rowDelimiters = from MatchTaxonRowDelimiter rd in Enum.GetValues(typeof(MatchTaxonRowDelimiter))
                                select new { value = (int)rd, text = rd.GetLocalizedDescription() };

            ViewData["RowDelimiter"] = new SelectList(rowDelimiters, "value", "text", model.RowDelimiter.ToString());
            ModelState.Remove("TaxonId");

            return(View(model));
        }
        public JsonResult TaxonId(string taxonId)
        {
            TaxonSearchResult searchResult = this.TaxonSearchManager.GetTaxon(taxonId);

            if (searchResult.NumberOfMatches != 1)
            {
                return(Json("No or ambigous result", JsonRequestBehavior.AllowGet));
            }

            ITaxon taxon = searchResult.Taxon;

            this.TaxonIdentifier = TaxonIdTuple.Create(taxonId, searchResult.Taxon.Id);

            return(Json(this.TaxonIdentifier.Id, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 8
0
        public ActionResult Graphviz(string taxonId)
        {
            IUserContext userContext = GetCurrentUser();

            if (!(userContext.IsTaxonRevisionAdministrator() || userContext.IsTaxonEditor()))
            {
                return(RedirectToAction("AccessIsNotAllowed", "Account", new { url = this.Request.Url }));
            }

            TaxonSearchResult       searchResult = this.TaxonSearchManager.GetTaxon(taxonId);
            ExportGraphVizViewModel model        = null;
            ITaxon taxon = null;

            if (searchResult.NumberOfMatches == 1)
            {
                taxon = searchResult.Taxon;
                this.TaxonIdentifier = TaxonIdTuple.Create(taxonId, searchResult.Taxon.Id);
                ViewBag.Taxon        = taxon;
                model           = new ExportGraphVizViewModel();
                model.ClipBoard = this.TaxonIdentifier.Id.Value.ToString();
            }
            else
            {
                //model = ExportDatabaseViewModel.Create(GetCurrentUser(), taxon);
                model           = new ExportGraphVizViewModel();
                model.ClipBoard = "";
            }
            var rowDelimiters = from MatchTaxonRowDelimiter rd in Enum.GetValues(typeof(MatchTaxonRowDelimiter))
                                select new { value = (int)rd, text = rd.GetLocalizedDescription() };

            ViewData["RowDelimiter"] = new SelectList(rowDelimiters, "value", "text", model.RowDelimiter.ToString());
            ModelState.Remove("TaxonId");

            if (userContext.IsTaxonRevisionAdministrator() || userContext.IsTaxonEditor())
            {
                ViewBag.ShowRefreshDyntaxaTaxonTreeButton = true;
            }
            else
            {
                ViewBag.ShowRefreshDyntaxaTaxonTreeButton = false;
            }
            ViewBag.TreeLastUpdatedTime = TaxonRelationsTreeCacheManager.CacheLastUpdatedTime;

            return(View(model));
        }
Ejemplo n.º 9
0
        public ActionResult TaxonList(string taxonId)
        {
            TaxonSearchResult searchResult = this.TaxonSearchManager.GetTaxon(taxonId);

            if (searchResult.NumberOfMatches != 1)
            {
                return(RedirectToSearch(taxonId));
            }

            ITaxon taxon = searchResult.Taxon;

            this.TaxonIdentifier = TaxonIdTuple.Create(taxonId, searchResult.Taxon.Id);
            ViewBag.Taxon        = taxon;
            var model = ExportViewModel.Create(GetCurrentUser(), taxon, false);

            ModelState.Remove("TaxonId");

            return(View(model));
        }
        public ActionResult Settings(string taxonId)
        {
            TaxonSearchResult searchResult = this.TaxonSearchManager.GetTaxon(taxonId);

            if (searchResult.NumberOfMatches != 1)
            {
                return(RedirectToSearch(taxonId));
            }

            ITaxon taxon = searchResult.Taxon;

            this.TaxonIdentifier = TaxonIdTuple.Create(taxonId, searchResult.Taxon.Id);
            ViewBag.Taxon        = taxon;
            var viewManager = new MatchViewManager(GetCurrentUser());
            MatchSettingsViewModel model = viewManager.GetMatchSettingsViewModel(taxon);

            CreateMatchSelectLists(model);
            ModelState.Remove("TaxonId");

            return(View(model));
        }
Ejemplo n.º 11
0
        public ActionResult Subscriptions(string taxonId)
        {
            if (taxonId.IsNull())
            {
                taxonId = this.TaxonIdentifier.Id.ToString();
            }

            TaxonSearchResult searchResult = this.TaxonSearchManager.GetTaxon(taxonId);

            if (searchResult.NumberOfMatches != 1)
            {
                return(RedirectToSearch(taxonId));
            }

            TaxonIdentifier = TaxonIdTuple.Create(taxonId, searchResult.Taxon.Id);
            ITaxon taxon = searchResult.Taxon;

            ViewBag.Taxon = taxon;
            SubscriptionViewManager subscriptionViewManager = new SubscriptionViewManager(GetCurrentUser());
            SubscriptionsViewModel  model = subscriptionViewManager.CreateSubscriptionsViewModel(taxon);

            return(View(model));
        }