Ejemplo n.º 1
0
        public IActionResult ExecuteCageAssign(CageAssignViewModel model)
        {
            Mouse mouse = _context.Mouse.Single(m => m.MouseID == model.MouseID);

            mouse.MouseCages = _context.MouseCage.Where(mc => mc.MouseID == mouse.MouseID).ToList();

            if (mouse.MouseCages != null)
            {
                if (mouse.MouseCages.Any(mc => mc.EndDate == null))
                {
                    Cage currentCage = _context.Cage.SingleOrDefault(c => c.CageID == _context.MouseCage.Single(mc => mc.EndDate == null && mc.MouseID == mouse.MouseID).CageID);
                    if (currentCage != null)
                    {
                        MouseCage oldMouseCage = _context.MouseCage.Single(mc => mc.MouseID == model.MouseID && mc.CageID == currentCage.CageID && mc.EndDate == null);
                        oldMouseCage.EndDate = model.Date;
                        _context.MouseCage.Update(oldMouseCage);
                        _context.SaveChanges();
                    }
                }
            }
            _context.MouseCage.Add(
                new MouseCage
            {
                CageID    = model.NewCageID,
                MouseID   = model.MouseID,
                StartDate = model.Date
            }
                );
            _context.SaveChanges();

            return(RedirectToAction("Details", "Lines", new { id = mouse.LineID }));
        }
Ejemplo n.º 2
0
        public IActionResult CageAssign(int mouseID)
        {
            Mouse mouse = _context.Mouse.Single(m => m.MouseID == mouseID);

            if (mouse.PK1ID != null)
            {
                mouse.PK1 = _context.GeneExpression.Single(g => g.GeneExpressionID == mouse.PK1ID);
            }
            if (mouse.PK2ID != null)
            {
                mouse.PK2 = _context.GeneExpression.Single(g => g.GeneExpressionID == mouse.PK2ID);
            }
            if (mouse.MomID != null)
            {
                mouse.Mom = _context.Mouse.Single(m => m.MouseID == mouse.MomID);
            }
            if (mouse.DadID != null)
            {
                mouse.Dad = _context.Mouse.Single(m => m.MouseID == mouse.DadID);
            }

            Cage currentCage = _context.Cage.SingleOrDefault(c => c.CageID == _context.MouseCage.SingleOrDefault(mc => mc.MouseID == mouseID && mc.EndDate == null).CageID);

            List <Cage> usedStandardCages = (
                from c in _context.Cage
                join mc in _context.MouseCage on c.CageID equals mc.CageID
                where c.Breeding == false &&
                mc.EndDate == null
                select c
                ).Distinct().ToList();

            List <Cage> usedStandardInLine = (
                from c in usedStandardCages
                join mc in _context.MouseCage on c.CageID equals mc.CageID
                join m in _context.Mouse on mc.MouseID equals m.MouseID
                where mc.EndDate == null &&
                c.Breeding == false &&
                m.LineID == mouse.LineID
                select c).Distinct().ToList();

            List <Cage> usedBreederCages = (
                from c in _context.Cage
                from mc in _context.MouseCage
                where c.Breeding == true &&
                c.CageID == mc.CageID &&
                mc.EndDate == null
                select c
                ).Distinct().ToList();

            List <Cage> usedBreedingInLine = (
                from c in usedStandardCages
                join mc in _context.MouseCage on c.CageID equals mc.CageID
                join m in _context.Mouse on mc.MouseID equals m.MouseID
                where mc.EndDate == null &&
                c.Breeding == true &&
                m.LineID == mouse.LineID
                select c).Distinct().ToList();


            List <Cage> allBreederCages      = _context.Cage.Where(c => c.Breeding == true).ToList();
            List <Cage> allStandardCages     = _context.Cage.Where(c => c.Breeding == false).ToList();
            List <Cage> notUsedBreederCages  = allBreederCages.Except(usedBreederCages).ToList();
            List <Cage> notUsedStandardCages = allStandardCages.Except(usedStandardCages).ToList();


            CageAssignViewModel model = new CageAssignViewModel
            {
                Mouse                = mouse,
                UsedBreederCages     = usedBreederCages,
                UsedStandardCages    = usedStandardCages,
                NotUsedBreederCages  = notUsedBreederCages,
                NotUsedStandardCages = notUsedStandardCages,
                CurrentCage          = currentCage
            };

            return(View(model));
        }