Esempio n. 1
0
        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));
        }