コード例 #1
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(await OnGetAsync());
            }
            Service.Active = true;
            foreach (var item in ServiceJobTitles.Where(r => r.IsSelected == true))
            {
                ServiceJobTitle serviceJobTitle = new ServiceJobTitle();
                serviceJobTitle.Service    = Service;
                serviceJobTitle.JobTitleId = item.ServiceJobId;
                Service.ServiceJobTitle.Add(serviceJobTitle);
            }
            _context.Services.Add(Service);
            await _context.SaveChangesAsync();

            return(RedirectToPage("./AddServices"));
        }
コード例 #2
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                ViewData["ServiceCategoryId"] = new SelectList(_context.ServiceCategory, "Id", "Name");
                List <SelectListItem> TimeInMinutes = new List <SelectListItem>();
                for (int i = 15; i <= 240; i += 15)
                {
                    TimeInMinutes.Add(new SelectListItem {
                        Value = i.ToString(), Text = i.ToString()
                    });
                }
                ViewData["Times"] = new SelectList(TimeInMinutes.Select(r => new { Id = r.Value, r.Value }), "Id", "Value");
                return(Page());
            }

            var belongsToJobTitles = await _context.ServiceJobTitles.Where(r => r.ServiceId == Service.Id).Select(r => r.JobTitleId).ToListAsync();

            foreach (var item in ServiceJobTitles)
            {
                ServiceJobTitle serviceJobTitle = new ServiceJobTitle();
                if (item.IsSelected)
                {
                    if (belongsToJobTitles.Contains(item.ServiceJobId))
                    {
                        //the item was already there
                    }
                    else
                    {
                        serviceJobTitle.Service    = Service;
                        serviceJobTitle.JobTitleId = item.ServiceJobId;
                        Service.ServiceJobTitle.Add(serviceJobTitle);
                    }
                }
                else if (!item.IsSelected)
                {
                    if (belongsToJobTitles.Contains(item.ServiceJobId))
                    {
                        serviceJobTitle = await _context.ServiceJobTitles.Where(r => r.ServiceId == Service.Id && r.JobTitleId == item.ServiceJobId).FirstOrDefaultAsync();

                        if (serviceJobTitle != null)
                        {
                            _context.ServiceJobTitles.Remove(serviceJobTitle);
                        }
                    }
                    else
                    {
                        //item wasn't there
                    }
                }
            }
            _context.Attach(Service).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ServiceExists(Service.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(RedirectToPage("./AddServices"));
        }