コード例 #1
0
        public async void ReplaceAsync_Works_DataMatches(User postUser, User replaceUser,
                                                         UserCompare equalityComparer, List <EfRepo.UserRepository> suts,
                                                         SqlRepo.UserRepository sqlUserRepo)
        {
            var savedUsers = new List <User>();

            foreach (var sut in suts)
            {
                var postEfUser = await sut.CreateAsync(postUser);

                replaceUser.Id = postEfUser.Id;
                await sut.ReplaceAsync(replaceUser);

                var replacedUser = await sut.GetByIdAsync(replaceUser.Id);

                savedUsers.Add(replacedUser);
            }

            var postSqlUser = await sqlUserRepo.CreateAsync(postUser);

            replaceUser.Id = postSqlUser.Id;
            await sqlUserRepo.ReplaceAsync(replaceUser);

            savedUsers.Add(await sqlUserRepo.GetByIdAsync(replaceUser.Id));

            var distinctItems = savedUsers.Distinct(equalityComparer);

            Assert.True(!distinctItems.Skip(1).Any());
        }
コード例 #2
0
        public async void DeleteAsync_Works_DataMatches(User user, UserCompare equalityComparer,
                                                        List <EfRepo.UserRepository> suts, SqlRepo.UserRepository sqlUserRepo)
        {
            foreach (var sut in suts)
            {
                var postEfUser = await sut.CreateAsync(user);

                sut.ClearChangeTracking();

                var savedEfUser = await sut.GetByIdAsync(postEfUser.Id);

                Assert.True(savedEfUser != null);
                sut.ClearChangeTracking();

                await sut.DeleteAsync(savedEfUser);

                sut.ClearChangeTracking();

                savedEfUser = await sut.GetByIdAsync(savedEfUser.Id);

                Assert.True(savedEfUser == null);
            }

            var postSqlUser = await sqlUserRepo.CreateAsync(user);

            var savedSqlUser = await sqlUserRepo.GetByIdAsync(postSqlUser.Id);

            Assert.True(savedSqlUser != null);

            await sqlUserRepo.DeleteAsync(postSqlUser);

            savedSqlUser = await sqlUserRepo.GetByIdAsync(postSqlUser.Id);

            Assert.True(savedSqlUser == null);
        }
コード例 #3
0
        public async void CreateAsync_Works_DataMatches(
            User user, UserCompare equalityComparer,
            List <EfRepo.UserRepository> suts,
            SqlRepo.UserRepository sqlUserRepo
            )
        {
            var savedUsers = new List <User>();

            foreach (var sut in suts)
            {
                var postEfUser = await sut.CreateAsync(user);

                sut.ClearChangeTracking();

                var savedUser = await sut.GetByIdAsync(postEfUser.Id);

                savedUsers.Add(savedUser);
            }

            var sqlUser = await sqlUserRepo.CreateAsync(user);

            savedUsers.Add(await sqlUserRepo.GetByIdAsync(sqlUser.Id));

            var distinctItems = savedUsers.Distinct(equalityComparer);

            Assert.True(!distinctItems.Skip(1).Any());
        }
コード例 #4
0
        public async void SearchAsync_Works_DataMatches(User user, int skip, int take,
                                                        UserCompare equalityCompare, List <EfRepo.UserRepository> suts,
                                                        SqlRepo.UserRepository sqlUserRepo)
        {
            var searchedEfUsers = new List <User>();

            foreach (var sut in suts)
            {
                var postEfUser = await sut.CreateAsync(user);

                sut.ClearChangeTracking();

                var searchedEfUsersCollection = await sut.SearchAsync(postEfUser.Email.ToUpperInvariant(), skip, take);

                searchedEfUsers.Concat(searchedEfUsersCollection.ToList());
            }

            var postSqlUser = await sqlUserRepo.CreateAsync(user);

            var searchedSqlUsers = await sqlUserRepo.SearchAsync(postSqlUser.Email.ToUpperInvariant(), skip, take);

            var distinctItems = searchedEfUsers.Concat(searchedSqlUsers).Distinct(equalityCompare);

            Assert.True(!distinctItems.Skip(1).Any());
        }
コード例 #5
0
        public async void GetBySsoUserAsync_Works_DataMatches(User user, Organization org,
                                                              SsoUser ssoUser, UserCompare equalityComparer, List <EfRepo.UserRepository> suts,
                                                              List <EfRepo.SsoUserRepository> ssoUserRepos, List <EfRepo.OrganizationRepository> orgRepos,
                                                              SqlRepo.UserRepository sqlUserRepo, SqlRepo.SsoUserRepository sqlSsoUserRepo,
                                                              SqlRepo.OrganizationRepository sqlOrgRepo)
        {
            var returnedList = new List <User>();

            foreach (var sut in suts)
            {
                var i = suts.IndexOf(sut);

                var postEfUser = await sut.CreateAsync(user);

                sut.ClearChangeTracking();

                var efOrg = await orgRepos[i].CreateAsync(org);
                sut.ClearChangeTracking();

                ssoUser.UserId         = postEfUser.Id;
                ssoUser.OrganizationId = efOrg.Id;
                var postEfSsoUser = await ssoUserRepos[i].CreateAsync(ssoUser);
                sut.ClearChangeTracking();

                var returnedUser = await sut.GetBySsoUserAsync(postEfSsoUser.ExternalId.ToUpperInvariant(), efOrg.Id);

                returnedList.Add(returnedUser);
            }

            var sqlUser = await sqlUserRepo.CreateAsync(user);

            var sqlOrganization = await sqlOrgRepo.CreateAsync(org);

            ssoUser.UserId         = sqlUser.Id;
            ssoUser.OrganizationId = sqlOrganization.Id;
            var postSqlSsoUser = await sqlSsoUserRepo.CreateAsync(ssoUser);

            var returnedSqlUser = await sqlUserRepo
                                  .GetBySsoUserAsync(postSqlSsoUser.ExternalId, sqlOrganization.Id);

            returnedList.Add(returnedSqlUser);

            var distinctItems = returnedList.Distinct(equalityComparer);

            Assert.True(!distinctItems.Skip(1).Any());
        }
コード例 #6
0
        public DataTable FormatMonitor()
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("ID");
            dt.Columns.Add("Имя участника");
            foreach (string s in _short_names)
            {
                dt.Columns.Add(s);
            }
            dt.Columns.Add("Всего решено");
            dt.Columns.Add("Время");
            dt.Columns.Add("Место");

            UserCompare uc    = new UserCompare();
            int         count = 1;

            init_db();
            for (int i = 0; i < _users.Count; i++)
            {
                DataRow  dr = dt.NewRow();
                UserData ud = (UserData)_users[i];
                dr[0] = ud.UID;
                dr[1] = _db.GetUser(ud.UID).Fullname;
                for (int j = 0; j < _prob_nums.Length; j++)
                {
                    if (ud.Problems[j].Result > 0)
                    {
                        // Write a result to the problem's column
                        dr[2 + j] = "<span style='color:blue;'>+";
                        if (ud.Problems[j].Result != 1)
                        {
                            dr[2 + j] += (ud.Problems[j].Result - 1).ToString();
                        }
                        dr[2 + j] += "</span><span style='font-size:smaller;display:block;'>(";
                        dr[2 + j] += HtmlFunctions.BeautifyTimeSpan(
                            TimeUtils.ZeroTimeSpan(ud.Problems[j].AcTime - _con.Beginning), true);
                        dr[2 + j] += ")</span>";
                    }
                    else if (ud.Problems[j].Result < 0)
                    {
                        dr[2 + j]  = "<span style='color:red;'>";
                        dr[2 + j] += ud.Problems[j].Result.ToString();
                        dr[2 + j] += "</span>";
                    }
                    else
                    {
                        dr[2 + j] = "";
                    }
                }
                dr[dr.Table.Columns.Count - 3] = ud.Solved;
                dr[dr.Table.Columns.Count - 2] = ud.Time;
                if (i > 0 && uc.Compare(_users[i], _users[i - 1]) != 0)
                {
                    count++;
                }
                dr[dr.Table.Columns.Count - 1] = count;
                dt.Rows.Add(dr);
            }
            close_db();
            return(dt);
        }
コード例 #7
0
 public UserComparer(UserCompare userCompare)
 {
     this.userCompare = userCompare;
 }