private async Task <Advertisement> ParseAdvertisementAsync(AdvertisementForm model) { Advertisement advertisement = new Advertisement( title: model.Title !, isPriorized: false, createdDate: DateTime.Now, daysToLive: (int)model.DaysToLive !, description: model.Description !, condition: (bool)model.IsUsed ! ? DAL.Entities.Condition.Used : DAL.Entities.Condition.New, status: DAL.Entities.Status.New, categoryId: (int)model.CategoryId !, cityId: (int)model.CityId !) { Price = model.Price }; string userName = User.Identity.Name !; var user = await _userService.GetUserByEmailAsync(userName); if ((bool)model.IsBuying !) { advertisement.CustomerId = user.Id; } else { advertisement.SellerId = user.Id; } SetPropertiesToAdvertisement(advertisement, model.PropertyInputs); if (model.Images.Any()) { foreach (var image in model.Images) { var imagePath = Path.Combine(@"~/images/advertisementPhotos", Path.GetFileName(image.FileName)); advertisement.AdvertisementImagePaths.Add(imagePath); } } else { foreach (var image in model.OriginalImagePaths) { var imagePath = Path.Combine(@"~/images/advertisementPhotos", Path.GetFileName(image)); advertisement.AdvertisementImagePaths.Add(imagePath); } } return(advertisement); }
public async Task <IActionResult> CreateAdvertisement() { if (User.Identity.IsAuthenticated) { var user = await _userService.GetUserByEmailAsync(User.Identity.Name !); AdvertisementForm advertisementForm = new AdvertisementForm { CityId = user.City?.Id }; return(View(advertisementForm)); } else { return(RedirectToAction("Login", "Account")); } }
public async Task <IActionResult> CreateAdvertisement(AdvertisementForm model) { if (!User.Identity.IsAuthenticated) { return(RedirectToAction("Login", "Account")); } if (!ModelState.IsValid) { return(View("CreateAdvertisement", model)); } Advertisement advertisement = await ParseAdvertisementAsync(model); advertisement = await _advertisementService.InsertAdvertisementAsync(advertisement); await UploadImages(model.Images); return(Redirect($"{advertisement.Id}")); }