コード例 #1
0
        public async Task TestGetThreadsForSpecifiedUser()
        {
            StudentifyAccountsRepository studentifyAccountsRepository = new StudentifyAccountsRepository(_context,
                                                                                                         new SelectRepositoryBase <StudentifyAccount>(_context),
                                                                                                         new UpdateRepositoryBase <StudentifyAccount>(_context),
                                                                                                         new InsertRepositoryBase <StudentifyAccount>(_context));
            StudentifyUser user = new StudentifyUser
            {
                UserName = "******"
            };
            StudentifyAccount account = new StudentifyAccount
            {
                StudentifyUserId = user.Id,
                User             = user
            };
            Thread insertedThread = new Thread()
            {
                ReferencedEventId = 1,
                ReferencedEvent   = new Info {
                    Author = account
                },
                UserAccount = account
            };

            await studentifyAccountsRepository.Insert.One(account);

            await _repository.Insert.One(insertedThread);

            var threads = await _repository.SelectAllUserRelatedThreads(account.UserName);

            Assert.True(threads.Any());
        }
コード例 #2
0
        public async Task TestSkillsManagement()
        {
            StudentifyUser user = new StudentifyUser()
            {
                UserName = "******",
            };

            Skill skill = new Skill()
            {
                Name  = "skill",
                Owner = null,
                Rate  = 50
            };

            var addedAccount = new StudentifyAccount {
                StudentifyUserId = user.Id, User = user
            };
            await _repository.Insert.One(addedAccount);

            var account = await _repository.SelectByUsername("skilled-user");

            await _repository.SaveSkill(account.Id, skill);

            var skills = await _repository.GetSkills(account.Id);

            Assert.IsTrue(skills.Contains(skill));
        }
コード例 #3
0
        public async Task <IActionResult> Register([FromBody] RegisterDto dto)
        {
            var user = new StudentifyUser()
            {
                Email         = dto.Email,
                FirstName     = dto.FirstName,
                LastName      = dto.LastName,
                SecurityStamp = Guid.NewGuid().ToString(),
                UserName      = dto.Username
            };
            var result = await _userManager.CreateAsync(user, dto.Password);

            if (!result.Succeeded)
            {
                var errors = result.Errors;
                return(StatusCode(StatusCodes.Status500InternalServerError, errors));
            }

            var account = new StudentifyAccount {
                StudentifyUserId = user.Id, User = user
            };
            await _accountsRepository.Insert.One(account);

            var token = await GenerateToken(user);

            return(Ok(new
            {
                token = new JwtSecurityTokenHandler().WriteToken(token),
                expiration = token.ValidTo,
                account
            }));
        }
コード例 #4
0
        public async Task <IActionResult> PatchTradeOffer(int id, TradeOfferDto tradeOfferDto)
        {
            TradeOffer tradeOffer;

            try
            {
                tradeOffer = await _tradeOffersRepository.Select.ById(id);
            }
            catch (DataException)
            {
                return(BadRequest());
            }

            StudentifyAccount buyerAccount = null;

            if (tradeOfferDto.BuyerId.HasValue)
            {
                var buyerId = tradeOfferDto.BuyerId.Value;

                try
                {
                    buyerAccount = await _accountsRepository.Select.ById(buyerId);
                }
                catch (DataException)
                {
                    return(NotFound("Buyer id not found"));
                }
            }

            tradeOffer.Name        = tradeOfferDto.Name;
            tradeOffer.ExpiryDate  = tradeOfferDto.ExpiryDate;
            tradeOffer.MapPoint.X  = tradeOfferDto.Longitude;
            tradeOffer.MapPoint.Y  = tradeOfferDto.Latitude;
            tradeOffer.Address     = tradeOfferDto.Address;
            tradeOffer.Description = tradeOfferDto.Description;
            tradeOffer.Offer       = tradeOfferDto.Offer;
            tradeOffer.Price       = tradeOfferDto.Price;
            tradeOffer.Buyer       = buyerAccount;

            try
            {
                await _tradeOffersRepository.Update.One(tradeOffer, id);
            }
            catch (DataException)
            {
                return(NotFound());
            }

            return(NoContent());
        }
コード例 #5
0
        public async Task TestSelectByUsername()
        {
            StudentifyUser user = new StudentifyUser()
            {
                UserName = "******",
            };

            var addedAccount = new StudentifyAccount {
                StudentifyUserId = user.Id, User = user
            };
            await _repository.Insert.One(addedAccount);

            var account = await _repository.SelectByUsername("test-user");

            Assert.IsTrue(account != null);
        }
コード例 #6
0
        public async Task CreateAccountSuccess()
        {
            const int expectedNumberOfAccounts = 1;

            StudentifyUser user = new StudentifyUser()
            {
                UserName = "******",
            };

            var account = new StudentifyAccount {
                StudentifyUserId = user.Id, User = user
            };
            await _repository.Insert.One(account);

            var accounts = (await _repository.Select.All())
                           .Where(acc => acc.StudentifyUserId == user.Id).ToList();

            Assert.AreEqual(expectedNumberOfAccounts, accounts.Count);
        }
コード例 #7
0
        public async Task <ActionResult <TradeOffer> > PostTradeOffer(TradeOfferDto tradeOfferDto)
        {
            var username = User.Identity.Name;
            var account  = await _accountsRepository.SelectByUsername(username);

            StudentifyAccount buyerAccount = null;

            if (tradeOfferDto.BuyerId.HasValue)
            {
                var buyerId = tradeOfferDto.BuyerId.Value;

                try
                {
                    buyerAccount = await _accountsRepository.Select.ById(buyerId);
                }
                catch (DataException)
                {
                    return(NotFound("Buyer id not found"));
                }
            }

            var tradeOffer = new TradeOffer
            {
                Name       = tradeOfferDto.Name,
                ExpiryDate = tradeOfferDto.ExpiryDate,
                MapPoint   = new Point(tradeOfferDto.Longitude, tradeOfferDto.Latitude)
                {
                    SRID = 4326
                },
                Address      = tradeOfferDto.Address,
                Description  = tradeOfferDto.Description,
                AuthorId     = account.Id,
                CreationDate = DateTime.Now,
                Offer        = tradeOfferDto.Offer,
                Price        = tradeOfferDto.Price,
                Buyer        = buyerAccount
            };

            await _tradeOffersRepository.Insert.One(tradeOffer);

            return(CreatedAtAction(nameof(GetTradeOffer), new { id = tradeOffer.Id }, tradeOffer));
        }
コード例 #8
0
        public async Task TestRegisterAttendance()
        {
            const int expectedNumberOfParticipants = 1;
            Meeting   meeting = new Meeting()
            {
                AuthorId                = 1,
                Address                 = null,
                Name                    = "Testowe spotkanie",
                CreationDate            = DateTime.Now,
                ExpiryDate              = DateTime.Now,
                MaxNumberOfParticipants = 2,
                Participants            = new List <StudentifyAccount>()
            };
            StudentifyAccount account = new StudentifyAccount();

            await _repository.Insert.One(meeting);

            await _repository.RegisterAttendance(meeting, account);

            var selectedMeeting = await _repository.Select.ById(meeting.Id);

            Assert.AreEqual(expectedNumberOfParticipants, selectedMeeting.Participants.Count);
        }
コード例 #9
0
 public async Task RegisterAttendance(Meeting meeting, StudentifyAccount account)
 {
     meeting.Participants.Add(account);
     await Context.SaveChangesAsync();
 }