Beispiel #1
0
        /// <inheritdoc />
        public async Task <ClubProfileDTO> EditAsync(int ClubId)
        {
            var Club = await GetByIdAsync(ClubId);

            if (Club == null)
            {
                return(null);
            }

            var ClubAdmins = Club.ClubAdministration
                             .ToList();
            var members = Club.ClubMembers
                          .Where(p => ClubAdmins.All(a => a.UserId != p.UserId))
                          .Where(m => m.IsApproved)
                          .ToList();
            var followers = Club.ClubMembers
                            .Where(m => !m.IsApproved)
                            .ToList();

            var ClubProfileDto = new ClubProfileDTO
            {
                Club      = Club,
                Admins    = ClubAdmins,
                Members   = members,
                Followers = followers
            };

            return(ClubProfileDto);
        }
Beispiel #2
0
        /// <inheritdoc />
        public async Task <ClubProfileDTO> GetClubAdminsAsync(int ClubId)
        {
            var Club = await GetByIdAsync(ClubId);

            if (Club == null)
            {
                return(null);
            }

            var ClubHead = Club.ClubAdministration?
                           .FirstOrDefault(a => a.AdminType.AdminTypeName == "Голова Куреня" &&
                                           (DateTime.Now < a.EndDate || a.EndDate == null));
            var ClubAdmins = Club.ClubAdministration
                             .Where(a => a.AdminType.AdminTypeName != "Голова Куреня" &&
                                    (DateTime.Now < a.EndDate || a.EndDate == null))
                             .ToList();

            var ClubProfileDto = new ClubProfileDTO
            {
                Club   = Club,
                Admins = ClubAdmins,
                Head   = ClubHead
            };

            return(ClubProfileDto);
        }
Beispiel #3
0
        /// <inheritdoc />
        public async Task <ClubProfileDTO> GetClubFollowersAsync(int ClubId)
        {
            var Club = await GetByIdAsync(ClubId);

            if (Club == null)
            {
                return(null);
            }

            var followers = Club.ClubMembers
                            .Where(m => !m.IsApproved)
                            .ToList();

            foreach (var follower in followers)
            {
                var userId      = follower.UserId;
                var cityMembers = await _repoWrapper.CityMembers.GetFirstOrDefaultAsync(a => a.UserId == userId);

                var city = await _repoWrapper.City.GetFirstAsync(a => a.ID == cityMembers.CityId);

                follower.User.CityName = city.Name.ToString();
            }

            var ClubProfileDto = new ClubProfileDTO
            {
                Club      = Club,
                Followers = followers
            };

            return(ClubProfileDto);
        }
Beispiel #4
0
        private DataAccessClub.Club CreateClubFromProfileAsync(ClubProfileDTO model)
        {
            var ClubDto = model.Club;

            var Club = _mapper.Map <ClubDTO, DataAccessClub.Club>(ClubDto);

            return(Club);
        }
Beispiel #5
0
        /// <inheritdoc />
        public async Task EditAsync(ClubProfileDTO model, IFormFile file)
        {
            await UploadPhotoAsync(model.Club, file);

            var Club = CreateClubFromProfileAsync(model);

            _repoWrapper.Club.Attach(Club);
            _repoWrapper.Club.Update(Club);
            await _repoWrapper.SaveAsync();
        }
Beispiel #6
0
        /// <inheritdoc />
        public async Task <int> CreateAsync(ClubProfileDTO model, IFormFile file)
        {
            await UploadPhotoAsync(model.Club, file);

            var Club = CreateClubFromProfileAsync(model);

            _repoWrapper.Club.Attach(Club);
            await _repoWrapper.Club.CreateAsync(Club);

            await _repoWrapper.SaveAsync();

            return(Club.ID);
        }
        private async Task <ClubProfileDTO> GetClubInfoAsync(int clubId)
        {
            var club = await GetByIdAsync(clubId);

            if (club == null)
            {
                return(null);
            }
            var clubHead = club.ClubAdministration?
                           .FirstOrDefault(a => a.AdminType.AdminTypeName == Roles.KurinHead &&
                                           (DateTime.Now < a.EndDate || a.EndDate == null));
            var clubHeadDeputy = club.ClubAdministration?
                                 .FirstOrDefault(a => a.AdminType.AdminTypeName == Roles.KurinHeadDeputy &&
                                                 (DateTime.Now < a.EndDate || a.EndDate == null));
            var clubAdmins = club.ClubAdministration?
                             .Where(a => a.AdminType.AdminTypeName != Roles.KurinHead &&
                                    a.AdminType.AdminTypeName != Roles.KurinHeadDeputy &&
                                    (DateTime.Now < a.EndDate || a.EndDate == null))
                             .ToList();

            club.AdministrationCount = club.ClubAdministration == null ? 0
                : club.ClubAdministration.Count(a => (DateTime.Now < a.EndDate || a.EndDate == null));
            var members = club.ClubMembers
                          .Where(m => m.IsApproved)
                          .ToList();

            club.MemberCount = club.ClubMembers
                               .Count(m => m.IsApproved);
            var followers = club.ClubMembers
                            .Where(m => !m.IsApproved)
                            .ToList();

            club.FollowerCount = club.ClubMembers
                                 .Count(m => !m.IsApproved);
            club.DocumentsCount = club.ClubDocuments.Count();
            var clubDoc        = club.ClubDocuments.Take(6).ToList();
            var clubProfileDto = new ClubProfileDTO
            {
                Club       = club,
                Head       = clubHead,
                HeadDeputy = clubHeadDeputy,
                Members    = members,
                Followers  = followers,
                Admins     = clubAdmins,
                Documents  = clubDoc,
            };

            return(clubProfileDto);
        }
Beispiel #8
0
        public async Task CreateTest()
        {
            ClubService    ClubService    = CreateClubService();
            ClubProfileDTO ClubProfileDto = new ClubProfileDTO
            {
                Club = new ClubDTO
                {
                    ID = 0
                }
            };

            var result = await ClubService.CreateAsync(ClubProfileDto, null);

            Assert.Equal(ClubProfileDto.Club.ID, result);
        }
Beispiel #9
0
        /// <inheritdoc />
        public async Task <ClubProfileDTO> GetClubProfileAsync(int ClubId)
        {
            var Club = await GetByIdAsync(ClubId);

            if (Club == null)
            {
                return(null);
            }

            var ClubHead = Club.ClubAdministration?
                           .FirstOrDefault(a => a.AdminType.AdminTypeName == "Голова Куреня" &&
                                           (DateTime.Now < a.EndDate || a.EndDate == null));
            var ClubAdmins = Club.ClubAdministration
                             .Where(a => a.AdminType.AdminTypeName != "Голова Куреня" &&
                                    (DateTime.Now < a.EndDate || a.EndDate == null))
                             .Take(6)
                             .ToList();

            Club.AdministrationCount = Club.ClubAdministration
                                       .Count(a => (DateTime.Now < a.EndDate || a.EndDate == null));
            var members = Club.ClubMembers
                          .Where(m => m.IsApproved)
                          .Take(9)
                          .ToList();

            Club.MemberCount = Club.ClubMembers
                               .Count(m => m.IsApproved);
            var followers = Club.ClubMembers
                            .Where(m => !m.IsApproved)
                            .Take(6)
                            .ToList();

            Club.FollowerCount = Club.ClubMembers
                                 .Count(m => !m.IsApproved);
            var ClubDoc = Club.ClubDocuments.Take(6).ToList();

            var ClubProfileDto = new ClubProfileDTO
            {
                Club      = Club,
                Head      = ClubHead,
                Members   = members,
                Followers = followers,
                Admins    = ClubAdmins,
                Documents = ClubDoc,
            };

            return(ClubProfileDto);
        }
Beispiel #10
0
        public async Task CreateAsync_WhereFormFileIsNull_ReturnClubDtoID()
        {
            // Arrange
            ClubService    clubService    = CreateClubService();
            ClubProfileDTO clubProfileDto = new ClubProfileDTO
            {
                Club = new ClubDTO
                {
                    ID = 0
                }
            };

            // Act
            var result = await clubService.CreateAsync(clubProfileDto, null);

            // Assert
            Assert.AreEqual(clubProfileDto.Club.ID, result);
        }
Beispiel #11
0
        /// <inheritdoc />
        public async Task <ClubProfileDTO> GetClubDocumentsAsync(int ClubId)
        {
            var Club = await GetByIdAsync(ClubId);

            if (Club == null)
            {
                return(null);
            }

            var ClubDoc = Club.ClubDocuments.ToList();

            var ClubProfileDto = new ClubProfileDTO
            {
                Club      = Club,
                Documents = ClubDoc
            };

            return(ClubProfileDto);
        }
Beispiel #12
0
        public async Task <IActionResult> ClubAdmins(int ClubId)
        {
            try
            {
                ClubProfileDTO ClubProfileDto = await _ClubService.GetClubAdminsAsync(ClubId);

                if (ClubProfileDto == null)
                {
                    return(RedirectToAction("HandleError", "Error", new { code = StatusCodes.Status404NotFound }));
                }

                return(View(_mapper.Map <ClubProfileDTO, ClubProfileViewModel>(ClubProfileDto)));
            }
            catch (Exception e)
            {
                _logger.LogError($"Exception :{e.Message}");

                return(RedirectToAction("HandleError", "Error", new { code = StatusCodes.Status505HttpVersionNotsupported }));
            }
        }
Beispiel #13
0
        /// <inheritdoc />
        public async Task <ClubProfileDTO> GetClubFollowersAsync(int ClubId)
        {
            var Club = await GetByIdAsync(ClubId);

            if (Club == null)
            {
                return(null);
            }

            var followers = Club.ClubMembers
                            .Where(m => !m.IsApproved)
                            .ToList();

            var ClubProfileDto = new ClubProfileDTO
            {
                Club      = Club,
                Followers = followers
            };

            return(ClubProfileDto);
        }
Beispiel #14
0
        public async Task CreateAsync_WithOldImageName_WhereFormFileIsNull_ReturnClubDtoID()
        {
            // Arrange
            ClubService    clubService    = CreateClubService();
            ClubProfileDTO clubProfileDto = new ClubProfileDTO
            {
                Club = new ClubDTO
                {
                    ID = 0
                }
            };

            _repoWrapper.Setup(r => r.Club.GetFirstOrDefaultAsync(It.IsAny <Expression <Func <DataAccessClub.Club, bool> > >(), null))
            .ReturnsAsync((DataAccessClub.Club)null);

            // Act
            var result = await clubService.CreateAsync(clubProfileDto, null);

            // Assert
            Assert.AreEqual(clubProfileDto.Club.ID, result);
        }
Beispiel #15
0
        /// <inheritdoc />
        public async Task <ClubProfileDTO> GetClubAdminsAsync(int ClubId)
        {
            var Club = await GetByIdAsync(ClubId);

            if (Club == null)
            {
                return(null);
            }

            var ClubHead = Club.ClubAdministration?
                           .FirstOrDefault(a => a.AdminType.AdminTypeName == "Голова Куреня" &&
                                           (DateTime.Now < a.EndDate || a.EndDate == null));

            var ClubAdmins = Club.ClubAdministration
                             .Where(a => a.AdminType.AdminTypeName != "Голова Куреня" &&
                                    (DateTime.Now < a.EndDate || a.EndDate == null)).ToList();


            foreach (var admin in ClubAdmins)
            {
                var userId      = admin.UserId;
                var cityMembers = await _repoWrapper.CityMembers.GetFirstOrDefaultAsync(a => a.UserId == userId);

                if (cityMembers != null)
                {
                    var city = await _repoWrapper.City.GetFirstAsync(a => a.ID == cityMembers.CityId);

                    admin.User.CityName = city.Name.ToString();
                }
            }

            var ClubProfileDto = new ClubProfileDTO
            {
                Club   = Club,
                Admins = ClubAdmins,
                Head   = ClubHead
            };

            return(ClubProfileDto);
        }
Beispiel #16
0
        public async Task EditAsync_WithModelAndFormFile_ReturnsClubEdited()
        {
            // Arrange
            ClubService    clubService    = CreateClubService();
            ClubProfileDTO clubProfileDto = new ClubProfileDTO
            {
                Club = new ClubDTO
                {
                    ID = 0
                }
            };

            _repoWrapper.Setup(r => r.Club.Attach(It.IsAny <DataAccessClub.Club>()));
            _repoWrapper.Setup(r => r.Club.Update(It.IsAny <DataAccessClub.Club>()));
            _repoWrapper.Setup(r => r.SaveAsync());

            // Act
            await clubService.EditAsync(clubProfileDto, It.IsAny <IFormFile>());

            // Assert
            _repoWrapper.Verify(r => r.Club.Attach(It.IsAny <DataAccessClub.Club>()), Times.Once);
            _repoWrapper.Verify(r => r.Club.Update(It.IsAny <DataAccessClub.Club>()), Times.Once);
            _repoWrapper.Verify(r => r.SaveAsync(), Times.Once);
        }