Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
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"));
        }
Ejemplo n.º 3
0
        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);
        }