コード例 #1
0
        // HTTP GEt
        public async Task <IActionResult> Delete(long id)
        {
            if (!IsLoggedIn())
            {
                return(RedirectToPage("/Account/Login"));
            }
            Sleep sleep = await context.Sleeps.Include(s => s.Infant).FirstOrDefaultAsync(s => s.SleepId == id);

            if (!IsSleepOwner(sleep))
            {
                return(RedirectToPage("/Error/Error404"));
            }
            return(View("SleepEditor", SleepViewModelFactory.Delete(sleep, sleep.Infant)));
        }
コード例 #2
0
        // HTTP Get
        public IActionResult Create(long id)
        {
            if (!IsLoggedIn())
            {
                return(RedirectToPage("/Account/Login"));
            }

            Infant infant = context.Infants.FirstOrDefault(i => i.InfantId == id);

            if (!IsInfantOwner(infant))
            {
                return(RedirectToPage("/Error/Error404"));
            }
            Sleep sleep = new Sleep
            {
                StartTime = DateTime.Now,
                EndTime   = DateTime.Now,
                InfantId  = id
            };

            return(View("SleepEditor", SleepViewModelFactory.Create(sleep, infant)));
        }
コード例 #3
0
        public async Task <IActionResult> Create(long id, [FromForm] Sleep sleep)
        {
            if (!IsLoggedIn())
            {
                return(RedirectToPage("/Account/Login"));
            }
            Infant preSaveInfant = context.Infants.FirstOrDefault(i => i.InfantId == id);

            if (!IsInfantOwner(preSaveInfant))
            {
                return(RedirectToPage("/Error/Error404"));
            }
            if (ModelState.IsValid)
            {
                sleep.SleepId = default;
                sleep.Infant  = default;
                context.Sleeps.Add(sleep);
                await context.SaveChangesAsync();

                return(RedirectToAction("Index", "Dashboard", new { id = sleep.InfantId }));
            }
            return(View("SleepEditor", SleepViewModelFactory.Create(sleep, preSaveInfant)));
        }
コード例 #4
0
        public async Task <IActionResult> Edit(long id, [FromForm] Sleep sleep)
        {
            if (!IsLoggedIn())
            {
                return(RedirectToPage("/Account/Login"));
            }
            Sleep preSaveSleep = await context.Sleeps.AsNoTracking().Include(s => s.Infant).FirstOrDefaultAsync(s => s.SleepId == id);

            if (!IsSleepOwner(preSaveSleep))
            {
                return(RedirectToPage("/Error/Error404"));
            }
            Infant infant = preSaveSleep.Infant;

            if (ModelState.IsValid)
            {
                context.Sleeps.Update(sleep);
                await context.SaveChangesAsync();

                return(RedirectToAction("Index", "Dashboard", new { id = sleep.InfantId }));
            }
            return(View("SleepEditor", SleepViewModelFactory.Edit(sleep, infant)));
        }