public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/ViewBilliardClub/" + Id);
            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);
            var result = _dbContext.BilliardClubs.
                         SingleOrDefault(equipment => equipment.id == Id);

            if (result != null)
            {
                result.Name        = Input.Name;
                result.Description = Input.Description;
                result.Origin      = Input.Origin;
                result.Website     = Input.Website;
                result.Address     = Input.Address;
                result.Latitude    = Input.Latitude;
                result.Longitude   = Input.Longitude;
            }
            int res = await _dbContext.SaveChangesAsync();

            if (res != 0)
            {
                Console.WriteLine("\n\ninfo: User's selected " + Input.Name + " is UPDATED!");
                StatusMessage = Input.Name + " Updated successfully!";
            }
            return(LocalRedirect(returnUrl));
        }
        public async Task <IActionResult> OnPostJoinRequestAsync(int notificationId, string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/ViewBilliardClub/" + Id);
            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);

            BilliardClubNotifications notification = _dbContext.BilliardClubNotifications.Single(e => e.id == notificationId);

            var user = _dbContext.Users.Single(e => e.Id == notification.userId);

            BilliardClubUserReference billiardClubUser = new BilliardClubUserReference {
                BilliardAppUserId = user.Id,
                BilliardClubId    = Id,
                Approved          = 1
            };

            if (_dbContext.BilliardClubUsersReference.Find(user.Id, Id) != null)
            {
                StatusMessage = user.Name + " " + user.LastName + " is already a member!!";
                return(LocalRedirect(returnUrl));
            }
            _dbContext.BilliardClubUsersReference.Add(billiardClubUser);

            await _dbContext.SaveChangesAsync();

            StatusMessage = user.Name + " " + user.LastName + " is approved!";

            return(LocalRedirect(returnUrl));
        }
示例#3
0
        public void OnGet()
        {
            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);

            var events = from e in _dbContext.BilliardEvents
                         where e.Approved == 1
                         select e;

            _billiardEvent = new List <BilliardEvents> ();
            foreach (var item in events)
            {
                _billiardEvent.Add(new BilliardEvents {
                    id               = item.id,
                    EventStartDate   = item.EventStartDate,
                    Description      = item.Description,
                    Name             = item.Name,
                    NumberOfPlayers  = item.NumberOfPlayers,
                    Address          = item.Address,
                    Latitude         = item.Latitude,
                    Longitude        = item.Longitude,
                    Owner            = item.Owner,
                    Photo            = new ImagePathMaker(item.Photo).validatePath(),
                    ParticipationFee = item.ParticipationFee,
                    Approved         = item.Approved,
                    forBilliardClub  = item.forBilliardClub,
                    CreatedDate      = item.CreatedDate
                });
            }
        }
        public async Task <IActionResult> OnPostDeleteBilliardClubAsync(string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/ViewBilliardClub/");

            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);
            var clubForDelete = _dbContext.BilliardClubs.SingleOrDefault(club => club.id == Id);

            var clubNotifications = from e in _dbContext.BilliardClubNotifications
                                    where e.ForBilliardCLub == Id
                                    select e;

            var clubMembers = from e in _dbContext.BilliardClubUsersReference
                              where e.BilliardClubId == Id
                              select e;

            _dbContext.BilliardClubNotifications.RemoveRange(clubNotifications);
            _dbContext.BilliardClubs.Remove(clubForDelete);
            _dbContext.BilliardClubUsersReference.RemoveRange(clubMembers);

            int res = await _dbContext.SaveChangesAsync();

            if (res != 0)
            {
                Console.WriteLine("info: Billiard club deleted successfully!");
                StatusMessage = "Billiard club deleted successfully!";
            }

            return(LocalRedirect(returnUrl));
        }
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/Identity/Account/Manage/ViewBillardAppUserEquipment");
            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);

            var result = _dbContext.BillardAppUserEquipment.
                         SingleOrDefault(equipment => equipment.id == Input.id);

            if (result != null)
            {
                result.Name        = Input.Name;
                result.Description = Input.Description;
                result.Price       = Input.Price;
                result.Website     = Input.Website;
            }

            int res = await _dbContext.SaveChangesAsync();

            if (res != 0)
            {
                Console.WriteLine("\n\ninfo: User's selected 'Equipment' is UPDATED!");
                StatusMessage = "Item Updated successfully!";
            }
            return(LocalRedirect(returnUrl));
        }
示例#6
0
        public async Task <IActionResult> OnGetAsync()
        {
            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);

            var loggedUser = await _userManager.GetUserAsync(User);

            var billiardClubs = from bc in _dbContext.BilliardClubs select bc;

            return(Page());
        }
示例#7
0
        public void OnGet()
        {
            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);

            _billiardEvent       = _dbContext.BilliardEvents.Single(e => e.id == Id);
            _billiardEvent.Photo = new ImagePathMaker(_billiardEvent.Photo).validatePath();

            _billiardClub = _dbContext.BilliardClubs.Single(e => e.id == _billiardEvent.forBilliardClub);
            _billiardEvent.NumberOfPlayers = fixBrackets(_billiardEvent.NumberOfPlayers);
        }
        public async Task <IActionResult> OnGetAsync()
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }

            var userName = await _userManager.GetUserNameAsync(user);

            Username = userName;

            using (_dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options)) {
                var equipment = from eq in _dbContext.BillardAppUserEquipment
                                where eq.Owner.Equals(Username)
                                select eq;
                //Photo = "~/images/[email protected]/r360Edge-1-300x300.jpg";
                ListInputModel = new List <InputModel> ();
                foreach (BillardAppUserEquipment item in equipment)
                {
                    ImagePathMaker pathMaker = new ImagePathMaker(item.Photo);

                    //                    input.Name = item.Name;
                    //                    input.Description = item.Description;
                    //                    input.Website = string.IsNullOrEmpty (item.Website) == false ? (item.Website.Contains ("www.") == true ? item.Website : "None") : "None";
                    //                    input.Price = item.Price;
                    //                    input.imagePath = pathMaker.validatePath ();

                    ListInputModel.Add(new InputModel {
                        id          = item.id,
                        Name        = item.Name,
                        Description = item.Description,
                        Website     = string.IsNullOrEmpty(item.Website) == false ? (item.Website.Contains("www.") == true ? item.Website : "<br/>") : "<br/>",
                        Price       = item.Price,
                        imagePath   = pathMaker.validatePath()
                    });
                }
                InputModel Input = new InputModel {
                    id          = 0,
                    Name        = "None",
                    Description = "None",
                    Price       = "0",
                    Website     = "None",
                    imagePath   = "None",
                    Upload      = null
                };
            }
            return(Page());
        }
示例#9
0
        public async Task <IActionResult> OnGetAsync()
        {
            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);

            _equipment = _dbContext.BillardAppUserEquipment.SingleOrDefault(eq => eq.id == Id);

            var user = await _userManager.FindByEmailAsync(_equipment.Owner);

            _user = new UserModel {
                Name     = user.Name,
                LastName = user.LastName,
                UserName = user.UserName
            };
            photo = new ImagePathMaker(_equipment.Photo).validatePath();

            return(Page());
        }
        /*
         *      public DbContextOptionsBuilder<BillardAppIdentityDbContext> setupOptions () {
         *          DbContextOptionsBuilder<BillardAppIdentityDbContext> optionsBuilder = new DbContextOptionsBuilder<BillardAppIdentityDbContext> ();
         *          optionsBuilder.UseSqlServer (Configuration.GetConnectionString ("BillardAppIdentityDbContextConnection"));
         *          return optionsBuilder;
         *      }
         */
        public async Task clearEquipmentData(IServiceProvider _serviceProvider)
        {
            BillardAppDatabaseInitializer _dbInit = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _db     = new BillardAppIdentityDbContext(_dbInit.setupOptions().Options);
            //BillardAppIdentityDbContext _db = new BillardAppIdentityDbContext (setupOptions ().Options);

            //            Console.WriteLine ("EXECUTED?");
            //            Console.WriteLine(_db.Database.ExecuteSqlCommand ("UPDATE [BillardAppUserEquipment] SET Owner = '*****@*****.**' WHERE id = 1;"));
            // var _dbContext = _serviceProvider.GetRequiredService<BillardAppIdentityDbContext> ();
            List <BillardAppUserEquipment> allEquipment = await _db.BillardAppUserEquipment.ToListAsync();

            foreach (var item in allEquipment)
            {
                Console.WriteLine(item.Name);
                Console.WriteLine(item.Description);
                Console.WriteLine(item.Owner);
            }
        }
        public async Task <IActionResult> OnPostDeleteNotificationAsync(int notificationId, string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/ViewBilliardClub/" + Id);
            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);
            var result = _dbContext.BilliardClubNotifications.
                         SingleOrDefault(notif => notif.id == notificationId);

            _dbContext.BilliardClubNotifications.Remove(result);
            int res = await _dbContext.SaveChangesAsync();

            if (res != 0)
            {
                Console.WriteLine("info: Notification deleted successfully!");
                StatusMessage = "Notification deleted successfully!";
            }
            return(LocalRedirect(returnUrl));
        }
        public async Task <IActionResult> OnPostDelete(int Id, string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/Identity/Account/Manage/ViewBillardAppUserEquipment");
            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);
            var equipment = from eq in _dbContext.BillardAppUserEquipment
                            where eq.id.Equals(Id)
                            select eq;

            _dbContext.BillardAppUserEquipment.Remove(equipment.First());
            int result = await _dbContext.SaveChangesAsync();

            if (result != 0)
            {
                Console.WriteLine("\n\ninfo: User's selected 'Equipment' deleted!");
                StatusMessage = "Item deleted successfully!";
            }
            return(LocalRedirect(returnUrl));
        }
        public JsonResult OnGetEquipmentEdit(int itemId)
        {
            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);
            var equipment = from eq in _dbContext.BillardAppUserEquipment
                            where eq.id.Equals(itemId)
                            select eq;

            ImagePathMaker pathMaker = new ImagePathMaker(equipment.First().Photo);

            Input.id          = equipment.First().id;
            Input.Name        = equipment.First().Name;
            Input.Description = equipment.First().Description;
            Input.Price       = equipment.First().Price;
            Input.Website     = string.IsNullOrEmpty(equipment.First().Website) == false ? (equipment.First().Website.Contains("www.") == true ? equipment.First().Website : "None") : "None";
            Input.imagePath   = pathMaker.validatePath();

            return(new JsonResult(Input));
        }
示例#14
0
        /*
         *      public async Task<IActionResult> UploadImage (IFormFile file) {
         *          var user = await _userManager.GetUserAsync (User);
         *
         *          if (file == null || file.Length == 0) {
         *              return NotFound ($"No Image file specified!");
         *          }
         *          var path = Path.Combine (Directory.GetCurrentDirectory (), "wwwroot", user.UserName, file.Name);
         *          using (var stream = new FileStream (path, FileMode.Create)) {
         *              await file.CopyToAsync (stream);
         *          }
         *
         *      }
         */
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/Identity/Account/Manage/ViewBillardAppUserEquipment");
            var user = await _userManager.GetUserAsync(User);

            //var path = "";
            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);
            }
            var userEquipment = new BillardAppUserEquipment {
                Name        = Input.Name,
                Description = Input.Description,
                Website     = Input.Website,
                Price       = Input.Price,
                Photo       = imagePath,
                Owner       = user.UserName
            };
            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);

            _dbContext.BillardAppUserEquipment.Add(userEquipment);
            int result = await _dbContext.SaveChangesAsync();

            if (result != 0)
            {
                _logger.LogInformation("Equipment added to " + user.UserName + "!");
            }
            return(LocalRedirect(returnUrl));
        }
示例#15
0
        public async Task <IActionResult> OnGetJoinRequestAsync(string returnUrl = null)
        {
            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);

            var user = await _userManager.GetUserAsync(User);

            _dbContext.BilliardClubNotifications.Add(new BilliardClubNotifications {
                Type            = NotificationType.JoinRequest,
                Description     = user.Name + ' ' + user.LastName + " wishes to join, approval is required!",
                ForBilliardCLub = Id,
                CreatedDate     = DateTime.Now,
                userId          = user.Id
            });
            await _dbContext.SaveChangesAsync();

            StatusMessage = "Your request is sent and is being reviewed!";
            returnUrl     = returnUrl ?? Url.Content("~/BilliardClub/" + Id);
            return(LocalRedirect(returnUrl));
        }
示例#16
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);

            returnUrl = returnUrl ?? Url.Content("~/ViewBilliardClub/" + _billiardEvent.forBilliardClub.ToString());

            var approveEvent = _dbContext.BilliardEvents.Single(e => e.id == Id);

            if (approveEvent.Approved == 1)
            {
                StatusMessage = "Tournament is already approved!!";
            }
            else
            {
                approveEvent.Approved = 1;
                await _dbContext.SaveChangesAsync();

                StatusMessage = "Tournament is approved successfully!";
            }
            return(LocalRedirect(returnUrl));
        }
示例#17
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());
        }
        public async Task <IActionResult> OnGetAsync()
        {
            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);

            if (!string.IsNullOrEmpty(Id))
            {
                var eqSelect = from eq in _dbContext.BillardAppUserEquipment
                               where eq.Owner == Id
                               select new {
                    eqName        = eq.Name,
                    eqDescription = eq.Description,
                    eqPrice       = eq.Price,
                    eqWebsite     = eq.Website,
                    eqPhoto       = new ImagePathMaker(eq.Photo).validatePath(),
                    eqId          = eq.id,
                    eqOwner       = eq.Owner
                };

                var uSelect = await _userManager.FindByEmailAsync(Id);

                _user = new UserModel {
                    uName     = uSelect.Name,
                    uLastName = uSelect.LastName,
                    uUserName = uSelect.UserName,
                    uEmail    = uSelect.Email,
                    uId       = uSelect.Id
                };

                _user._billiardClubs = new List <BKMember> ();
                _user._equipment     = new List <EquipmentModel> ();

                var equipment = from eq in eqSelect where eq.eqOwner == _user.uEmail select eq;

                var memberOf =
                    from bc in _dbContext.BilliardClubs
                    join bcref in _dbContext.BilliardClubUsersReference
                    on bc.id equals bcref.BilliardClubId
                    join user in _dbContext.Users
                    on bcref.BilliardAppUserId equals _user.uId
                    select new {
                    clubId        = bc.id,
                    clubName      = bc.Name,
                    userFirstName = user.Name,
                    userLastName  = user.LastName,
                    photo         = new ImagePathMaker(bc.Photo).validatePath()
                };
                memberOf = memberOf.GroupBy(x => x.clubId).Select(g => g.First());

                foreach (var item in equipment)
                {
                    _user._equipment.Add(new EquipmentModel {
                        eqName        = item.eqName,
                        eqDescription = item.eqDescription,
                        eqPrice       = item.eqPrice,
                        eqWebsite     = item.eqWebsite,
                        eqPhoto       = new ImagePathMaker(item.eqPhoto).validatePath(),
                        eqId          = item.eqId,
                        eqOwner       = item.eqOwner
                    });
                }

                foreach (var item in memberOf)
                {
                    _user._billiardClubs.Add(new BKMember {
                        clubId   = item.clubId,
                        clubName = item.clubName,
                        photo    = item.photo
                    });
                }

                return(Page());
            }
            else
            {
                var eqSelect = from eq in _dbContext.BillardAppUserEquipment
                               select new {
                    eqName        = eq.Name,
                    eqDescription = eq.Description,
                    eqPrice       = eq.Price,
                    eqWebsite     = eq.Website,
                    eqPhoto       = new ImagePathMaker(eq.Photo).validatePath(),
                    eqId          = eq.id,
                    eqOwner       = eq.Owner
                };

                var uSelect = from u in _dbContext.Users
                              select new {
                    uName     = u.Name,
                    uLastName = u.LastName,
                    uUserName = u.UserName,
                    uEmail    = u.Email,
                    uId       = u.Id
                };
                _users = new List <UserModel> ();
                foreach (var item in uSelect)
                {
                    _users.Add(new UserModel {
                        uName     = item.uName,
                        uLastName = item.uLastName,
                        uUserName = item.uUserName,
                        uEmail    = item.uEmail,
                        uId       = item.uId,
                    });
                }
                for (int i = 0; i < _users.Count(); i++)
                {
                    _users[i]._equipment     = new List <EquipmentModel> ();
                    _users[i]._billiardClubs = new List <BKMember> ();
                    var equipment = from eq in eqSelect where eq.eqOwner == _users[i].uEmail select eq;
                    var memberOf  =
                        from bc in _dbContext.BilliardClubs
                        join bcref in _dbContext.BilliardClubUsersReference
                        on bc.id equals bcref.BilliardClubId
                        join user in _dbContext.Users
                        on bcref.BilliardAppUserId equals _users[i].uId
                        select new {
                        clubId        = bc.id,
                        clubName      = bc.Name,
                        userFirstName = user.Name,
                        userLastName  = user.LastName,
                        photo         = new ImagePathMaker(bc.Photo).validatePath()
                    };
                    memberOf = memberOf.GroupBy(x => x.clubId).Select(g => g.First());
                    foreach (var item in equipment)
                    {
                        _users[i]._equipment.Add(new EquipmentModel {
                            eqName        = item.eqName,
                            eqDescription = item.eqDescription,
                            eqPrice       = item.eqPrice,
                            eqWebsite     = item.eqWebsite,
                            eqPhoto       = new ImagePathMaker(item.eqPhoto).validatePath(),
                            eqId          = item.eqId,
                            eqOwner       = item.eqOwner
                        });
                    }

                    foreach (var item in memberOf)
                    {
                        _users[i]._billiardClubs.Add(new BKMember {
                            clubId   = item.clubId,
                            clubName = item.clubName,
                            photo    = item.photo
                        });
                    }
                }
                return(Page());
            }
        }
        public IActionResult OnGet(string returnUrl = null)
        {
            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);

            if (Id == 0)
            {
                _billiardClubs = from e in _dbContext.BilliardClubs
                                 where e.Owner == _userManager.GetUserName(User)
                                 select e;
                return(Page());
            }
            else
            {
                if (_userManager.GetUserName(User) != _dbContext.BilliardClubs.SingleOrDefault(e => e.id == Id).Owner)
                {
                    returnUrl     = returnUrl ?? Url.Content("~/ViewBilliardClub/0");
                    StatusMessage = "This billiard club is not yours!!";
                    return(LocalRedirect(returnUrl));
                }
                _billiardClub  = _dbContext.BilliardClubs.SingleOrDefault(e => e.id == Id);
                _notifications = from e in _dbContext.BilliardClubNotifications
                                 where e.ForBilliardCLub == _billiardClub.id
                                 select e;
                _notificationCount = _notifications.Count();

                ImagePathMaker pathMaker = new ImagePathMaker(_billiardClub.Photo);
                _billiardClub.Photo = pathMaker.validatePath();
                Input = new InputModel {
                    Name        = _billiardClub.Name,
                    Description = _billiardClub.Description,
                    Origin      = _billiardClub.Origin,
                    Website     = _billiardClub.Website,
                    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
                    });
                }

                var billiardEvents =
                    from e in _dbContext.BilliardEvents
                    where e.forBilliardClub == Id
                    select e;
                foreach (var item in billiardEvents)
                {
                    _billiardEvents.Add(new BilliardEvents {
                        EventStartDate   = item.EventStartDate,
                        Description      = item.Description,
                        Name             = item.Name,
                        NumberOfPlayers  = item.NumberOfPlayers,
                        Address          = item.Address,
                        Latitude         = item.Latitude,
                        Longitude        = item.Longitude,
                        Owner            = item.Owner,
                        Photo            = item.Photo,
                        ParticipationFee = item.ParticipationFee,
                        Approved         = item.Approved,
                        forBilliardClub  = item.forBilliardClub,
                        CreatedDate      = item.CreatedDate,
                        id = item.id
                    });
                }

                return(Page());
            }
        }
        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));
        }
        public void OnGet(string returnUrl = null)
        {
            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);

            var billiardClubs = from e in _dbContext.BilliardClubs
                                select new {
                Name            = e.Name,
                Description     = e.Description,
                Owner           = e.Owner,
                id              = e.id,
                Photo           = new ImagePathMaker(e.Photo).validatePath(),
                NotificationsFk = e.NotificationsFk,
                Origin          = e.Origin,
                Website         = e.Website,
                CreatedDate     = e.CreatedDate
            };

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

            _billiardClubs = new List <BilliardModel> ();

            var intersection = from bc in billiardClubs
                               join member in members
                               on bc.id equals member.BilliardClubId
                               select new {
                bcName            = bc.Name,
                bcDescription     = bc.Description,
                bcOwner           = bc.Owner,
                bcid              = bc.id,
                bcPhoto           = bc.Photo,
                bcNotificationsFk = bc.NotificationsFk,
                bcOrigin          = bc.Origin,
                bcWebsite         = bc.Website,
                bcCreatedDate     = bc.CreatedDate,
                uName             = member.Name,
                uLastName         = member.LastName,
                uUserName         = member.UserName,
                uid = member.BilliardAppUserId
            };

            foreach (var item in intersection)
            {
                var bcMembers = new List <MemberModel> ();
                foreach (var member in intersection)
                {
                    if (item.bcid == member.bcid)
                    {
                        bcMembers.Add(new MemberModel {
                            bcId      = member.bcid,
                            uId       = member.uid,
                            uName     = member.uName,
                            uLastName = member.uLastName,
                            uUserName = member.uUserName,
                        });
                    }
                }
                _billiardClubs.Add(new BilliardModel {
                    bcId          = item.bcid,
                    bcName        = item.bcName,
                    bcDescription = item.bcDescription,
                    bcOwner       = item.bcOwner,
                    bcPhoto       = item.bcPhoto,
                    bcOrigin      = item.bcOrigin,
                    bcWebsite     = item.bcWebsite,
                    bcMembers     = bcMembers
                });
            }
            _billiardClubs = _billiardClubs.GroupBy(x => x.bcId).Select(g => g.First()).ToList();
        }
示例#22
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 void OnGet()
        {
            BillardAppDatabaseInitializer _dbinit    = new BillardAppDatabaseInitializer();
            BillardAppIdentityDbContext   _dbContext = new BillardAppIdentityDbContext(_dbinit.setupOptions().Options);

            _members = new List <News> ();
            _billiardClubNotifications = new List <NewsNotifications> ();
            _userEquipment             = new List <UserEquipment> ();

            var userEquipment =
                from eq in _dbContext.BillardAppUserEquipment
                join user in _dbContext.Users
                on eq.Owner equals user.UserName
                select new {
                eqId      = eq.id,
                uId       = user.Id,
                uName     = user.Name,
                uLastName = user.LastName,
                eqName    = eq.Name,
                eqPrice   = eq.Price,
                eqPhoto   = eq.Photo
            };

            foreach (var item in userEquipment)
            {
                _userEquipment.Add(new UserEquipment {
                    eqId      = item.eqId,
                    uId       = item.uId,
                    uName     = item.uName,
                    uLastName = item.uLastName,
                    eqName    = item.eqName,
                    eqPrice   = item.eqPrice,
                    eqPhoto   = new ImagePathMaker(item.eqPhoto).validatePath()
                });
            }

            var billiardClubNotifications =
                from bc in _dbContext.BilliardClubs
                join notif in _dbContext.BilliardClubNotifications
                on bc.id equals notif.ForBilliardCLub
                select new {
                clubId    = bc.id,
                clubName  = bc.Name,
                clubDesc  = bc.Description,
                notifType = notif.Type,
                created   = bc.CreatedDate,
                origin    = bc.Origin,
                photo     = bc.Photo
            };

            foreach (var item in billiardClubNotifications)
            {
                _billiardClubNotifications.Add(new NewsNotifications {
                    type          = item.notifType,
                    bcId          = item.clubId,
                    bcName        = item.clubName,
                    bcDescription = item.clubDesc,
                    bcOrigin      = item.origin,
                    notifCreated  = item.created,
                    photo         = new ImagePathMaker(item.photo).validatePath()
                });
            }

            var members =
                from bc in _dbContext.BilliardClubs
                join bcref in _dbContext.BilliardClubUsersReference
                on bc.id equals bcref.BilliardClubId
                join user in _dbContext.Users
                on bcref.BilliardAppUserId equals user.Id
                select new {
                clubId        = bc.id,
                clubName      = bc.Name,
                userFirstName = user.Name,
                userLastName  = user.LastName,
                photo         = new ImagePathMaker(bc.Photo).validatePath()
            };

            foreach (var item in members)
            {
                _members.Add(new News {
                    clubId        = item.clubId,
                    clubName      = item.clubName,
                    userFirstName = item.userFirstName,
                    userLastName  = item.userLastName,
                    photo         = item.photo
                });
            }

            /*
             * foreach (var item in _billiardClubNotifications) {
             *  item.
             * }
             */
        }