Esempio n. 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();
        }
Esempio n. 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);
        }
Esempio n. 3
0
        public async Task <IActionResult> EditPost()
        {
            OrganismData organism = new OrganismData();

            if (await TryUpdateModelAsync(organism))
            {
                try
                {
                    await new EditStrategyContext().Edit(organism, _context);
                }
                catch (ArgumentException)
                {
                    return(NotFound());
                }
            }

            return(RedirectToAction("IndexImg", "Img",
                                    routeValues: new
            {
                organism.KingdomID,
                organism.PhylumID,
                organism.ClassID,
                organism.OrderID,
                organism.FamilyID,
                organism.GenusID,
                organism.SpeciesID
            }));
        }
Esempio n. 4
0
        //=CREATE==============================================================

        // GET: Organism/Create
        public async Task <IActionResult> Create()
        {
            OrganismData Organism = new OrganismData();

            await TryUpdateModelAsync(Organism);

            return(View(Organism));
        }
Esempio n. 5
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();
        }
Esempio n. 6
0
        public override async Task Execute(OrganismData model, OrganismDbContext _context)
        {
            PhylumT oldPhylum = _context.Kingdoms.Include(i => i.Phylums)
                                .Single(i => i.KingdomTID == model.KingdomID).Phylums
                                .Single(i => i.PhylumTID == model.PhylumID);

            oldPhylum.Name = model.Name;
            await _context.SaveChangesAsync();
        }
Esempio n. 7
0
        //=EDIT================================================================

        // GET: Organism/Edit/5
        public async Task <IActionResult> Edit()
        {
            OrganismData viewModel = new OrganismData();

            await TryUpdateModelAsync(viewModel);

            viewModel = await OrganismDataFiller.Fill(_context, viewModel);

            return(View(viewModel));
        }
Esempio n. 8
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);
        }
Esempio n. 9
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();
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
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);
        }
Esempio n. 12
0
        public async Task Edit(OrganismData model, OrganismDbContext _context)
        {
            var action = typeof(EditBase).Assembly.GetTypes()
                         .Where(t => t.IsSubclassOf(typeof(EditBase)) && !t.IsAbstract)
                         .Select(t => (EditBase)Activator.CreateInstance(t))
                         .FirstOrDefault(a => a.ShouldExecute(model.Taxon));

            if (action == null)
            {
                throw new ArgumentException("Unknown case.");
            }

            await action.Execute(model, _context);
        }
Esempio n. 13
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);
        }
Esempio n. 14
0
        public override async Task <int> Execute(OrganismData model, OrganismDbContext _context)
        {
            ClassT newClass = new ClassT()
            {
                Name = model.Name
            };

            _context.Kingdoms
            .Include(i => i.Phylums).ThenInclude(i => i.Classes)
            .Single(i => i.KingdomTID == model.KingdomID).Phylums
            .Single(i => i.PhylumTID == model.PhylumID).Classes
            .Add(newClass);
            await _context.SaveChangesAsync();

            return(newClass.ClassTID);
        }
Esempio n. 15
0
        public override async Task <int> Execute(OrganismData model, OrganismDbContext _context)
        {
            FamilyT newFamily = new FamilyT()
            {
                Name = model.Name
            };

            _context.Kingdoms
            .Include(i => i.Phylums).ThenInclude(i => i.Classes).ThenInclude(i => i.Orders)
            .ThenInclude(i => i.Families)
            .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
            .Add(newFamily);
            await _context.SaveChangesAsync();

            return(newFamily.FamilyTID);
        }
Esempio n. 16
0
        public async Task <IActionResult> CreatePost()
        {
            OrganismData organism = new OrganismData();

            await TryUpdateModelAsync(organism);

            try
            {
                int SpeciesID = await new CreateStrategyContext().Create(organism, _context);
                if (organism.Taxon == "Druh")
                {
                    return(RedirectToAction("IndexImg", "Img",
                                            routeValues: new
                    {
                        organism.KingdomID,
                        organism.PhylumID,
                        organism.ClassID,
                        organism.OrderID,
                        organism.FamilyID,
                        organism.GenusID,
                        SpeciesID
                    }));
                }
            }
            catch (ArgumentException)
            {
                return(NotFound());
            }

            return(RedirectToAction("Index",
                                    routeValues: new
            {
                organism.KingdomID,
                organism.PhylumID,
                organism.ClassID,
                organism.OrderID,
                organism.FamilyID,
                organism.GenusID,
                organism.SpeciesID
            }));
        }
Esempio n. 17
0
 public abstract Task <int> Execute(OrganismData organism, OrganismDbContext _context);