public async Task <IActionResult> Offer(OfferHelpFormInputModel input) { if (!this.ModelState.IsValid) { return(this.View(input)); } // get selected items Id's to list. var selectedAvailable = input.Items.Where(i => i.SelectedAsAvailable).Select(i => i.Id).ToList(); // save image in root folder and get it's name. if (input.Image != null) { this.SaveImage(input.Image); } input.Creator = await this.userManager.GetUserAsync(this.User); input.TaskType = TaskType.Offer; input.AvailableItemsId = selectedAvailable; await this.helpTaskService.CreateOfferAsync(input); return(this.RedirectToAction("Index", "Profile")); }
public async Task CreateOfferAsync(OfferHelpFormInputModel input, [CallerMemberName] string callerMethodName = "") { var helpTask = new HelpTask { Title = input.Title, Description = input.Description, Location = input.Location, ImageName = input.ImageName, Type = input.TaskType, Creator = input.Creator, }; // get selected items by their id's. var availableItems = this.itemService.GetAll().Where(i => input.AvailableItemsId.Contains(i.Id)).ToList(); // add available items to database. foreach (var item in availableItems) { helpTask.Items.Add(new HelpTaskItems() { ItemId = item.Id, ItemUseType = ItemUseType.Available, }); } await this.helpTaskRepo.AddAsync(helpTask); await this.helpTaskRepo.SaveChangesAsync(); }
public IActionResult Offer() { var items = this.itemService.MapAll <SelectedItemsInputModel>(); var viewModel = new OfferHelpFormInputModel { Items = items, }; return(this.View(viewModel)); }