public async Task <IActionResult> Create([Bind("DonationID,DateOfDonation,UsersFK")] DonationIndexViewModel donationIVM) { if (!GetAuthorization(5, 'c')) { return(NotFound()); } ViewBag.Permission = getPermissions(); if (!checkValues(donationIVM)) { return(Redirect(nameof(Create))); } if (ModelState.IsValid) { string selected = Request.Form["checkProduct"].ToString(); string[] selectedList = selected.Split(','); Donation donation = new Donation { DateOfDonation = donationIVM.DateOfDonation, UsersFK = donationIVM.UsersFK }; _context.Add(donation); _context.SaveChanges(); if (selectedList[0] != "") { foreach (var temp in selectedList) { int prodKey = Convert.ToInt32(temp); int newQuant = 0; if (Request.Form["quantityProduct " + Convert.ToInt32(temp)] != "") { newQuant = Convert.ToInt32(Request.Form["quantityProduct " + Convert.ToInt32(temp)].ToString()); } DonationProduct donationProduct = new DonationProduct { DonationFK = donation.DonationID, ProductFK = prodKey, Quantity = newQuant }; var prod = new Product { ProductID = prodKey }; prod.Quantity = _context.Products.Where(e => e.ProductID == prodKey).FirstOrDefault().Quantity + newQuant; _context.Entry(prod).Property("Quantity").IsModified = true; _context.SaveChanges(); _context.Add(donationProduct); } } await _context.SaveChangesAsync(); TempData["Message"] = "Doacao criada com sucesso!"; return(RedirectToAction(nameof(Index))); } return(View(donationIVM)); }
private bool checkValues(DonationIndexViewModel donation) { if (donation.DateOfDonation == DateTime.MinValue) { TempData["Message"] = "Escolha uma data para a doação!"; return(false); } if (donation.UsersFK <= 0) { TempData["Message"] = "Escolha uma cliente para a doação!"; return(false); } return(true); }
// GET: Donations public async Task <IActionResult> Index() { DonationIndexViewModel viewModel = new DonationIndexViewModel(); var user = await GetCurrentUserAsync(); // if there is nobody logged in if (user == null) { return(View("../Home/LoginError")); } // if the user is an employee else if (user.UserTypeId == 2) { var allDonations = _context.Donations .Include(d => d.Status) .Include(d => d.Items) .Include(d => d.ApplicationUser) .ToList(); viewModel.Donations = allDonations; return(View(viewModel)); } // if the user is a customer else if (user.UserTypeId == 4) { var allItems = _context.Items .Include(i => i.ItemType) .Include(i => i.Donation) .Include(i => i.ApplicationUser) .Where(i => i.ApplicationUserId == user.Id); List <Donation> allDonations = _context.Donations .Include(d => d.Status) .ToList(); var donations = new HashSet <Donation>(); foreach (var item in allItems) { donations.Add(item.Donation); } viewModel.CustDonations = donations; return(View(viewModel)); } return(View("../Home/LoginError")); }
public async Task <IActionResult> Edit(int id, [Bind("DonationID,DateOfDonation,UsersFK")] DonationIndexViewModel donationIVM) { /*if (id != donationIVM.EditDonation.DonationID) * { * return NotFound(); * }*/ if (!GetAuthorization(5, 'u')) { return(NotFound()); } ViewBag.Permission = getPermissions(); if (!checkValues(donationIVM)) { return(Redirect(nameof(Edit))); } if (ModelState.IsValid) { try { string selected = Request.Form["checkProduct"].ToString(); string[] selectedList = selected.Split(','); Donation toEdit = _context.Donation.FirstOrDefault(e => e.DonationID == id); toEdit.DateOfDonation = donationIVM.DateOfDonation; toEdit.UsersFK = donationIVM.UsersFK; _context.Update(toEdit); _context.SaveChanges(); var x = 0; var allToRemove = _context.DonationProduct.Where(p => p.DonationFK == id); foreach (DonationProduct don in allToRemove) { var result3 = _context.Products.SingleOrDefault(p => p.ProductID == don.ProductFK); if (result3 != null) { result3.Quantity -= don.Quantity; _context.DonationProduct.Remove(don); } } if (selectedList[0] != "") { foreach (var temp in selectedList) { int prodKey = Convert.ToInt32(temp); int newQuant = 0; if (Request.Form["quantityProduct " + Convert.ToInt32(temp)] != "") { newQuant = Convert.ToInt32(Request.Form["quantityProduct " + Convert.ToInt32(temp)].ToString()); } DonationProduct donationProduct = new DonationProduct { DonationFK = id, ProductFK = prodKey, Quantity = newQuant }; x++; var quantityToRemove = allToRemove.Where(p => p.ProductFK == prodKey && p.DonationFK == id).ToList(); var result = _context.Products.SingleOrDefault(p => p.ProductID == prodKey); if (result != null) { result.Quantity += newQuant; _context.SaveChanges(); } _context.SaveChanges(); _context.Add(donationProduct); } } await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!DonationExists(donationIVM.EditDonation.DonationID)) { return(NotFound()); } else { throw; } } TempData["Message"] = "Doacao editada com sucesso!"; return(RedirectToAction(nameof(Index))); } return(View(donationIVM)); }
// GET: Donations/Edit/5 public async Task <IActionResult> Edit(int?id, string searchString, string animalType, string productType) { if (!GetAuthorization(5, 'u')) { return(NotFound()); } ViewBag.Permission = getPermissions(); if (id == null) { return(NotFound()); } var donation = await _context.Donation.FindAsync(id); if (donation == null) { return(NotFound()); } /** * Produtos */ var query = from product in _context.Products join productsType in _context.ProductTypes on product.ProductTypeFK equals productsType.ProductTypeID join animalsType in _context.AnimalTypes on product.AnimalTypeFK equals animalsType.AnimalTypeID select new { ProductID = product.ProductID, Name = product.Name, Quantity = product.Quantity, AnimalTypeFK = product.AnimalTypeFK, ProductTypeFK = product.ProductTypeFK, ProductTypeName = productsType.Name, AnimaltypeName = animalsType.Name }; if (!String.IsNullOrEmpty(searchString)) { query = query.Where(product => product.Name.Contains(searchString)); } if (!String.IsNullOrEmpty(animalType)) { query = query.Where(product => product.AnimaltypeName.Contains(animalType)); } if (!String.IsNullOrEmpty(productType)) { query = query.Where(product => product.ProductTypeName.Contains(productType)); } var result = query.ToList().Select(e => new Product { ProductID = e.ProductID, Name = e.Name, Quantity = e.Quantity, ProductTypeName = e.ProductTypeName, AnimaltypeName = e.AnimaltypeName }).ToList(); var animalTypeQuery = from animal in _context.AnimalTypes orderby animal.Name select animal.Name; var productTypeQuery = from product in _context.ProductTypes orderby product.Name select product.Name; /** * */ var queryDonationProducts = _context.DonationProduct.Where(e => e.DonationFK == id); var donationProducts = queryDonationProducts.ToList(); var donationIndexVM = new DonationIndexViewModel { Products = result, DateOfDonation = donation.DateOfDonation, UsersFK = donation.UsersFK, AnimalTypes = new SelectList(animalTypeQuery.Distinct().ToList()), ProductTypes = new SelectList(productTypeQuery.Distinct().ToList()), DonationProducts = donationProducts }; string date31string = donationIndexVM.DateOfDonation.ToString("yyyy/MM/dd"); donationIndexVM.DateOfDonation = DateTime.ParseExact(date31string, "yyyy/MM/dd", null); ViewBag.UsersFK = _context.Users.AsParallel(); return(View(donationIndexVM)); }
// GET: Donations public async Task <IActionResult> Index(string searchString, string animalType, string productType, string clientString, DateTime dateString) { if (!GetAuthorization(5, 'r')) { return(NotFound()); } ViewBag.Permission = getPermissions(); var donationUserQuery = from donation in _context.Donation join user in _context.Users on donation.UsersFK equals user.UserID select new { DonationID = donation.DonationID, DateOfDonation = donation.DateOfDonation, UsersFK = donation.UsersFK, UsersName = user.Name }; if (!String.IsNullOrEmpty(clientString)) { donationUserQuery = donationUserQuery.Where(don => don.UsersName.Contains(clientString)); } if (dateString != DateTime.MinValue) { donationUserQuery = donationUserQuery.Where(don => don.DateOfDonation.Day.Equals(dateString.Day) && don.DateOfDonation.Month.Equals(dateString.Month) && don.DateOfDonation.Year.Equals(dateString.Year)); } /*if (!String.IsNullOrEmpty(searchString)) * { * query = query.Where(product => product.Name.Contains(searchString)); * } * * if (!String.IsNullOrEmpty(animalType)) * { * query = query.Where(product => product.AnimaltypeName.Contains(animalType)); * } * * if (!String.IsNullOrEmpty(productType)) * { * query = query.Where(product => product.ProductTypeName.Contains(productType)); * }*/ var result = donationUserQuery.ToList().Select(e => new Donation { DonationID = e.DonationID, DateOfDonation = e.DateOfDonation, UsersFK = e.UsersFK, UsersName = e.UsersName }).ToList(); foreach (Donation don in result) { var productsQuery = from donationProduct in _context.DonationProduct join product in _context.Products on donationProduct.ProductFK equals product.ProductID select new { DonationID = donationProduct.DonationFK, ProductID = donationProduct.ProductFK, ProductName = product.Name, Quantity = donationProduct.Quantity }; var getAll = productsQuery.ToList().Where(p => p.DonationID == don.DonationID).Select(e => "" + e.ProductName + " - " + e.Quantity); String phrase = ""; foreach (String s in getAll) { phrase += s; if (s != getAll.Last()) { phrase += " , "; } } don.ProductName = phrase; } var animalTypeQuery = from animal in _context.AnimalTypes orderby animal.Name select animal.Name; var productTypeQuery = from product in _context.ProductTypes orderby product.Name select product.Name; var usersNameQuery = from user in _context.Users orderby user.Name select user.Name; DonationIndexViewModel donationIVM = new DonationIndexViewModel { Donation = result, AnimalTypes = new SelectList(animalTypeQuery.Distinct().ToList()), ProductTypes = new SelectList(productTypeQuery.Distinct().ToList()), UsersNames = new SelectList(usersNameQuery.Distinct().ToList()) }; return(View(donationIVM)); }
// GET: Donations/Create public IActionResult Create(string searchString, string animalType, string productType) { if (!GetAuthorization(5, 'c')) { return(NotFound()); } ViewBag.Permission = getPermissions(); List <Product> selectedProducts = new List <Product>(); if (ViewBag.selectedProducts != null) { List <Product> savedProducts = ViewBag.selectedProducts; if (savedProducts.Count > 0) { selectedProducts = savedProducts; } } if (Request.HasFormContentType && Request.Form != null && Request.Form.Count() > 0) { string selected = Request.Form["checkProduct"].ToString(); string[] selectedList = selected.Split(','); foreach (var temp in selectedList) { int prodKey = Convert.ToInt32(temp); int newQuant = Convert.ToInt32(Request.Form["quantityProduct " + Convert.ToInt32(temp)].ToString()); selectedProducts.Add(new Product { ProductID = prodKey, ProductTypeFK = prodKey, Quantity = newQuant }); } } /** * Produtos */ var query = from product in _context.Products join productsType in _context.ProductTypes on product.ProductTypeFK equals productsType.ProductTypeID join animalsType in _context.AnimalTypes on product.AnimalTypeFK equals animalsType.AnimalTypeID select new { ProductID = product.ProductID, Name = product.Name, Quantity = product.Quantity, AnimalTypeFK = product.AnimalTypeFK, ProductTypeFK = product.ProductTypeFK, ProductTypeName = productsType.Name, AnimaltypeName = animalsType.Name }; if (!String.IsNullOrEmpty(searchString)) { query = query.Where(product => product.Name.Contains(searchString)); } if (!String.IsNullOrEmpty(animalType)) { query = query.Where(product => product.AnimaltypeName.Contains(animalType)); } if (!String.IsNullOrEmpty(productType)) { query = query.Where(product => product.ProductTypeName.Contains(productType)); } var result = query.ToList().Select(e => new Product { ProductID = e.ProductID, Name = e.Name, Quantity = e.Quantity, ProductTypeName = e.ProductTypeName, AnimaltypeName = e.AnimaltypeName }).ToList(); var animalTypeQuery = from animal in _context.AnimalTypes orderby animal.Name select animal.Name; var productTypeQuery = from product in _context.ProductTypes orderby product.Name select product.Name; var donationIndexVM = new DonationIndexViewModel { Products = result, AnimalTypes = new SelectList(animalTypeQuery.Distinct().ToList()), ProductTypes = new SelectList(productTypeQuery.Distinct().ToList()), SelectedProducts = selectedProducts }; /** * */ ViewBag.UsersFK = _context.Users.AsParallel(); ViewBag.selectedProducts = selectedProducts; return(View(donationIndexVM)); }