public async Task <IActionResult> OnPostAsync(string returnUrl = null) { BillardAppDatabaseInitializer _dbinit = new BillardAppDatabaseInitializer(); BillardAppIdentityDbContext _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options); returnUrl = returnUrl ?? Url.Content("~/BilliardClub/" + Id); var user = await _userManager.GetUserAsync(User); if (user == null) { return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.")); } string imagePath = "None"; if (Input.Photo != null) { Directory.CreateDirectory(Path.Combine(_environment.ContentRootPath, "wwwroot", "images", user.Name + user.LastName + user.Id)); var file = Path.Combine(_environment.ContentRootPath, "wwwroot", "images", user.Name + user.LastName + user.Id, Input.Photo.FileName); imagePath = "~/images/" + user.Name + user.LastName + user.Id + "/" + Input.Photo.FileName; using (var fileStream = new FileStream(file, FileMode.Create)) { await Input.Photo.CopyToAsync(fileStream); } Console.WriteLine(imagePath); } BillardApp.Areas.Identity.Data.BilliardClubNotifications notifications = new BillardApp.Areas.Identity.Data.BilliardClubNotifications { Type = NotificationType.EventRequest, Description = user.Name + ' ' + user.LastName + " has made an event! Approval is required!", ForBilliardCLub = Id, eventId = 0 }; _billiardClub = _dbContext.BilliardClubs.Single(e => e.id == Id); BilliardEvents billiardEvent = new BilliardEvents { Owner = user.UserName, Name = Input.Name, Description = Input.Description, Address = _billiardClub.Address, Latitude = _billiardClub.Latitude, Longitude = _billiardClub.Longitude, Photo = imagePath, CreatedDate = DateTime.Now, EventStartDate = Input.EventStartDate, ParticipationFee = Input.ParticipationFee, NumberOfPlayers = Input.NumberOfPlayers, forBilliardClub = Id, Approved = 0 }; _dbContext.BilliardEvents.Add(billiardEvent); _dbContext.BilliardClubNotifications.Add(notifications); await _dbContext.SaveChangesAsync(); StatusMessage = "Event created successfully! You will have to wait until the event is validated!"; BillardApp.Areas.Identity.Data.BilliardClubNotifications refactorNotification = _dbContext.BilliardClubNotifications.Last(); BilliardEvents refactorEvent = _dbContext.BilliardEvents.Last(); refactorNotification.eventId = refactorEvent.id; await _dbContext.SaveChangesAsync(); return(LocalRedirect(returnUrl)); }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); var user = await _userManager.GetUserAsync(User); if (user == null) { return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.")); } string imagePath = "None"; if (Input.Upload != null) { Directory.CreateDirectory(Path.Combine(_environment.ContentRootPath, "wwwroot", "images", user.Name + user.LastName + user.Id)); var file = Path.Combine(_environment.ContentRootPath, "wwwroot", "images", user.Name + user.LastName + user.Id, Input.Upload.FileName); imagePath = "~/images/" + user.Name + user.LastName + user.Id + "/" + Input.Upload.FileName; using (var fileStream = new FileStream(file, FileMode.Create)) { await Input.Upload.CopyToAsync(fileStream); } Console.WriteLine(imagePath); } BillardApp.Areas.Identity.Data.BilliardClubNotifications notifications = new BillardApp.Areas.Identity.Data.BilliardClubNotifications { Type = NotificationType.Created, Description = Notifications.BILLIARD_CLUB_CREATED_0 + " '" + Input.Name + "' " + Notifications.BILLIARD_CLUB_CREATED_1 + " Update it's full address so it's easier to find it!", ForBilliardCLub = 0 }; BilliardClub billiardClub = new BilliardClub { Name = Input.Name, Description = Input.Description, Origin = Input.Origin, Owner = user.UserName, Photo = imagePath, Website = Input.Website, NotificationsFk = 0 }; BillardAppDatabaseInitializer _dbinit = new BillardAppDatabaseInitializer(); BillardAppIdentityDbContext _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options); _dbContext.BilliardClubs.Add(billiardClub); _dbContext.BilliardClubNotifications.Add(notifications); await _dbContext.SaveChangesAsync(); BilliardClub refactorBilliardClub = _dbContext.BilliardClubs.Last(); BillardApp.Areas.Identity.Data.BilliardClubNotifications refactorNotifications = _dbContext.BilliardClubNotifications.Last(); refactorBilliardClub.NotificationsFk = refactorNotifications.id; refactorNotifications.ForBilliardCLub = refactorBilliardClub.id; BilliardClubUserReference billiardClubUser = new BilliardClubUserReference { BilliardAppUserId = user.Id, BilliardClubId = refactorBilliardClub.id, Approved = 1 }; _dbContext.BilliardClubUsersReference.Add(billiardClubUser); await _dbContext.SaveChangesAsync(); return(LocalRedirect(returnUrl)); }