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));
        }
Exemplo n.º 2
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));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> OnGetAsync(string returnUrl = null)
        {
            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);

            var loggedUser = await _userManager.GetUserAsync(User);

            if (_dbContext.BilliardClubs.Single(e => e.id == Id) == null)
            {
                returnUrl = returnUrl ?? Url.Content("~/");
                return(LocalRedirect(returnUrl));
            }

            var billiardClub = _dbContext.BilliardClubs.Single(e => e.id == Id);

            _billiardClub = new BilliardClub {
                Name            = billiardClub.Name,
                Description     = billiardClub.Description,
                Owner           = billiardClub.Owner,
                id              = billiardClub.id,
                Photo           = new ImagePathMaker(billiardClub.Photo).validatePath(),
                NotificationsFk = billiardClub.NotificationsFk,
                Origin          = billiardClub.Origin,
                Website         = billiardClub.Website,
                CreatedDate     = billiardClub.CreatedDate,
                Address         = billiardClub.Address,
                Latitude        = billiardClub.Latitude,
                Longitude       = billiardClub.Longitude
            };

            var Members =
                from e in _dbContext.BilliardClubUsersReference
                join user in _dbContext.Users
                on e.BilliardAppUserId equals user.Id
                where e.BilliardClubId == Id
                select new {
                e.BilliardAppUserId,
                e.BilliardClubId,
                e.Approved,
                user.Name,
                user.LastName,
                user.UserName
            };

            _members = new List <MembersModel> ();
            foreach (var item in Members)
            {
                _members.Add(new MembersModel {
                    BilliardAppUserId = item.BilliardAppUserId,
                    BilliardClubId    = item.BilliardClubId,
                    Approved          = item.Approved,
                    Name     = item.Name,
                    LastName = item.LastName,
                    UserName = item.UserName
                });
            }
            foreach (var item in _members)
            {
                if (item.BilliardAppUserId == loggedUser.Id)
                {
                    _isMember = true;
                    break;
                }
                else
                {
                    _isMember = false;
                }
            }

            return(Page());
        }