Exemple #1
0
        public override async Task Execute(OrganismData model, OrganismDbContext _context)
        {
            SpeciesT oldSpecies = _context.Kingdoms
                                  .Include(i => i.Phylums).ThenInclude(i => i.Classes).ThenInclude(i => i.Orders)
                                  .ThenInclude(i => i.Families).ThenInclude(i => i.Genusses).ThenInclude(i => i.Species)
                                  .Single(i => i.KingdomTID == model.KingdomID).Phylums
                                  .Single(i => i.PhylumTID == model.PhylumID).Classes
                                  .Single(i => i.ClassTID == model.ClassID).Orders
                                  .Single(i => i.OrderTID == model.OrderID).Families
                                  .Single(i => i.FamilyTID == model.FamilyID).Genusses
                                  .Single(i => i.GenusTID == model.GenusID).Species
                                  .Single(i => i.SpeciesTID == model.SpeciesID);

            oldSpecies.Name            = model.Name;
            oldSpecies.Description     = model.Description;
            oldSpecies.Class           = model.Class;
            oldSpecies.Size            = model.Size;
            oldSpecies.Use             = model.Use;
            oldSpecies.OccurenceCR     = model.OccurenceCR;
            oldSpecies.Protection      = model.Protection;
            oldSpecies.EcoFunction     = model.EcoFunction;
            oldSpecies.Ecosystems      = string.Join(", ", model.Ecosystems.Select(a => a.ToString()));
            oldSpecies.OccurencesWorld = string.Join(", ", model.OccurencesWorld.Select(a => a.ToString()));
            await _context.SaveChangesAsync();
        }
Exemple #2
0
        public override async Task <int> Execute(OrganismData model, OrganismDbContext _context)
        {
            SpeciesT newSpecies = new SpeciesT()
            {
                Name            = model.Name,
                Description     = model.Description,
                Class           = model.Class,
                Classification  = GetClassification(model, _context).Result,
                Size            = model.Size,
                Use             = model.Use,
                OccurenceCR     = model.OccurenceCR,
                Protection      = model.Protection,
                EcoFunction     = model.EcoFunction,
                Ecosystems      = string.Join(", ", model.Ecosystems.Select(a => a.ToString())),
                OccurencesWorld = string.Join(", ", model.OccurencesWorld.Select(a => a.ToString()))
            };

            _context.Kingdoms
            .Include(i => i.Phylums).ThenInclude(i => i.Classes).ThenInclude(i => i.Orders)
            .ThenInclude(i => i.Families).ThenInclude(i => i.Genusses).ThenInclude(i => i.Species)
            .Single(i => i.KingdomTID == model.KingdomID).Phylums
            .Single(i => i.PhylumTID == model.PhylumID).Classes
            .Single(i => i.ClassTID == model.ClassID).Orders
            .Single(i => i.OrderTID == model.OrderID).Families
            .Single(i => i.FamilyTID == model.FamilyID).Genusses
            .Single(i => i.GenusTID == model.GenusID).Species
            .Add(newSpecies);
            await _context.SaveChangesAsync();

            return(newSpecies.SpeciesTID);
        }
Exemple #3
0
        public override async Task Execute(OrganismData model, OrganismDbContext _context)
        {
            KingdomT oldKingdom = _context.Kingdoms
                                  .Single(i => i.KingdomTID == model.KingdomID);

            oldKingdom.Name = model.Name;
            await _context.SaveChangesAsync();
        }
Exemple #4
0
        private async Task <string> GetClassification(OrganismData model, OrganismDbContext _context)
        {
            ChosenTaxons cht = await ChosenTaxonsFiller.Fill(_context, model);

            return(cht.ChosenKingdom.Name + ", "
                   + cht.ChosenPhylum.Name + ", "
                   + cht.ChosenClass.Name + ", "
                   + cht.ChosenOrder.Name + ", "
                   + cht.ChosenFamily.Name + ", "
                   + cht.ChosenGenus.Name);
        }
Exemple #5
0
        public override async Task Execute(OrganismData model, OrganismDbContext _context)
        {
            OrderT oldOrder = _context.Kingdoms
                              .Include(i => i.Phylums).ThenInclude(i => i.Classes).ThenInclude(i => i.Orders)
                              .Single(i => i.KingdomTID == model.KingdomID).Phylums
                              .Single(i => i.PhylumTID == model.PhylumID).Classes
                              .Single(i => i.ClassTID == model.ClassID).Orders
                              .Single(i => i.OrderTID == model.OrderID);

            oldOrder.Name = model.Name;
            await _context.SaveChangesAsync();
        }
        public static async Task <OrganismData> Fill(OrganismDbContext _context, OrganismData viewModel)
        {
            ChosenTaxons taxons = await ChosenTaxonsFiller.Fill(_context, viewModel);

            if (viewModel.KingdomID != null)
            {
                viewModel.Name = taxons.ChosenKingdom.Name;
            }

            if (viewModel.PhylumID != null)
            {
                viewModel.Name = taxons.ChosenPhylum.Name;
            }

            if (viewModel.ClassID != null)
            {
                viewModel.Name = taxons.ChosenClass.Name;
            }

            if (viewModel.OrderID != null)
            {
                viewModel.Name = taxons.ChosenOrder.Name;
            }

            if (viewModel.FamilyID != null)
            {
                viewModel.Name = taxons.ChosenFamily.Name;
            }

            if (viewModel.GenusID != null)
            {
                viewModel.Name = taxons.ChosenGenus.Name;
            }

            if (viewModel.SpeciesID != null)
            {
                viewModel.Name           = taxons.ChosenSpecies.Name;
                viewModel.Description    = taxons.ChosenSpecies.Description;
                viewModel.Class          = taxons.ChosenSpecies.Class;
                viewModel.Classification = taxons.ChosenSpecies.Classification;
                viewModel.Size           = taxons.ChosenSpecies.Size;
                viewModel.Use            = taxons.ChosenSpecies.Use;
                viewModel.OccurenceCR    = taxons.ChosenSpecies.OccurenceCR;
                viewModel.Protection     = taxons.ChosenSpecies.Protection;
                viewModel.EcoFunction    = taxons.ChosenSpecies.EcoFunction;
                viewModel.Ecosystems     = taxons.ChosenSpecies.Ecosystems.Split(", ")
                                           .Select(x => (EcosystemEnum)Enum.Parse(typeof(EcosystemEnum), x)).ToArray();
                viewModel.OccurencesWorld = taxons.ChosenSpecies.OccurencesWorld.Split(", ")
                                            .Select(x => (OccurenceWorldEnum)Enum.Parse(typeof(OccurenceWorldEnum), x)).ToArray();
                viewModel.Imgs = taxons.ChosenSpecies.Imgs;
            }
            return(viewModel);
        }
Exemple #7
0
        public override async Task <int> Execute(OrganismData model, OrganismDbContext _context)
        {
            KingdomT newKingdom = new KingdomT
            {
                Name = model.Name
            };

            _context.Kingdoms.Add(newKingdom);
            await _context.SaveChangesAsync();

            return(newKingdom.KingdomTID);
        }
Exemple #8
0
        public override async Task <int> Execute(OrganismData model, OrganismDbContext _context)
        {
            PhylumT newPhylum = new PhylumT()
            {
                Name = model.Name
            };

            _context.Kingdoms.Include(i => i.Phylums)
            .Single(i => i.KingdomTID == model.KingdomID).Phylums
            .Add(newPhylum);
            await _context.SaveChangesAsync();

            return(newPhylum.PhylumTID);
        }
 public OrganismsController(OrganismDbContext context)
 {
     _context = context;
 }
Exemple #10
0
 public SetSourceController(OrganismDbContext context)
 {
     _context = context;
 }
Exemple #11
0
 public abstract Task Execute(OrganismClassification organism, OrganismDbContext _context);
        public static async Task <ChosenTaxons> Fill(OrganismDbContext _context, OrganismClassification OIDs)
        {
            ChosenTaxons viewModel = new ChosenTaxons
            {
                Kingdoms = await _context.Kingdoms
                           .Include(i => i.Phylums)
                           .ThenInclude(i => i.Classes)
                           .ThenInclude(i => i.Orders)
                           .ThenInclude(i => i.Families)
                           .ThenInclude(i => i.Genusses)
                           .ThenInclude(i => i.Species)
                           .OrderBy(i => i.Name)
                           .ToListAsync()
            };

            if (OIDs.KingdomID != null)
            {
                viewModel.ChosenKingdom = viewModel.Kingdoms
                                          .Single(x => x.KingdomTID == OIDs.KingdomID);
            }

            if (OIDs.PhylumID != null)
            {
                viewModel.ChosenPhylum = viewModel.ChosenKingdom.Phylums
                                         .Single(x => x.PhylumTID == OIDs.PhylumID);
            }

            if (OIDs.ClassID != null)
            {
                viewModel.ChosenClass = viewModel.ChosenPhylum.Classes
                                        .Single(x => x.ClassTID == OIDs.ClassID);
            }

            if (OIDs.OrderID != null)
            {
                viewModel.ChosenOrder = viewModel.ChosenClass.Orders
                                        .Single(x => x.OrderTID == OIDs.OrderID);
            }

            if (OIDs.FamilyID != null)
            {
                viewModel.ChosenFamily = viewModel.ChosenOrder.Families
                                         .Single(x => x.FamilyTID == OIDs.FamilyID);
            }

            if (OIDs.GenusID != null)
            {
                viewModel.ChosenGenus = viewModel.ChosenFamily.Genusses
                                        .Single(x => x.GenusTID == OIDs.GenusID);
            }

            if (OIDs.SpeciesID != null)
            {
                viewModel.ChosenSpecies = viewModel.ChosenGenus.Species
                                          .Single(x => x.SpeciesTID == OIDs.SpeciesID);
                await _context.Entry(viewModel.ChosenSpecies)
                .Collection(x => x.Imgs).LoadAsync();
            }

            return(viewModel);
        }