public async Task <bool> Create(DonationView result) { var donation = new DonationModel { Quantity = result.Bags, Institution = await _context.Instituties.FindAsync(result.SelectedInstitutionId), Street = result.Address, City = result.City, ZipCode = result.Postcode, PickUpDate = result.Data, PickUpTime = result.Time, PickUpComment = result.Moreinfo }; foreach (var category in result.CategoriesSelected) { var toDb = new CategoryDonationModel { Donation = donation, Category = await _context.Categories.FindAsync(category) }; _context.CategoryDonation.Add(toDb); } _context.Donations.Add(donation); return(await _context.SaveChangesAsync() > 0); }
public async Task <IActionResult> Donate(DonationView result) { if (result.CategoriesSelected == null) { ModelState.AddModelError("", "Zaznacz przynajmniej jedną kategorie"); } if (result.SelectedInstitutionId == 0) { ModelState.AddModelError("", "Wybierz organizację"); } if (!ModelState.IsValid) { var viewModel = await _donationService.PrepareViewModel(result); return(View(viewModel)); } // jeżeli przeszło walidacje dodajemy donacje do bazy await _donationService.Create(result); return(RedirectToAction("DonateConfirmation", "Donation")); }
public async Task <DonationView> PrepareViewModel(DonationView result = null) { var viewModel = new DonationView(); // 1. kategorie do widoku List <CategoryView> categoryItems = new List <CategoryView>() { }; var categories = await _context.Categories.ToListAsync(); foreach (var category in categories) { CategoryView tempCat; if (result != null && result.CategoriesSelected != null && result.CategoriesSelected.Contains(category.Id)) { tempCat = new CategoryView { Id = category.Id, Value = category.Name, Text = category.Name, IsChecked = true }; } else { tempCat = new CategoryView { Id = category.Id, Value = category.Name, Text = category.Name, IsChecked = false }; } categoryItems.Add(tempCat); } viewModel.CategoriesItems = categoryItems; // 2. instytucje do widoku List <InstitionView> institionItems = new List <InstitionView>() { }; var institutions = await _context.Instituties.ToListAsync(); foreach (var institution in institutions) { InstitionView tempInst; if (result != null && result.SelectedInstitutionId != 0 && result.SelectedInstitutionId == institution.Id) { tempInst = new InstitionView { Id = institution.Id, Name = institution.Name, Description = institution.Description, IsChecked = true }; } else { tempInst = new InstitionView { Id = institution.Id, Name = institution.Name, Description = institution.Description, IsChecked = false }; } institionItems.Add(tempInst); } viewModel.InstitutionItems = institionItems; return(viewModel); }