public void EditVolunteerTest()
        {
            #region init
            IdentityHelper ihelper  = IdentityHelper.GetInstance();
            string         userName = "******";
            AppUser        user     = new AppUser
            {
                AccountName = userName,
                Name        = "James",
                Mobile      = "1888888888",
                Email       = "*****@*****.**"
            };
            string  password = "******";
            AppUser dbUser   = database.Users.SingleOrDefault(u => u.AccountName == userName);
            if (dbUser != null)
            {
                database.Users.Remove(dbUser);
                database.SaveChanges();
            }
            IdentityResult result1 = ihelper.CreateUser(user, password, AppRoleEnum.OrgnizationMember, OrganizationEnum.SEA团队);
            testclaims = ihelper.CreateClaims(userName, password, userName);
            helper     = VolunteerHelper.GetInstance(testclaims);
            #endregion
            #region 新建一个志愿者对象
            Volunteer v = new Volunteer
            {
                StudentNum = 0401,
                Name       = "EditTestName",
                Class      = "TestClass",
                Email      = "*****@*****.**",
                Room       = "testroom"
            };
            helper.AddVolunteer(v);
            #endregion

            #region 第一次修改
            v.Name = "ModifiedEditTestName";
            var tempvolunteer = helper.FindVolunteer(v.StudentNum);
            helper.EditVolunteer(tempvolunteer, v);//需要重建一个volunteer实体,因为实体v在加入数据库之后会自动更新链接到数据库中的条目。
            tempvolunteer = helper.FindVolunteer(v.StudentNum);
            if (!Volunteer.AreSame(v, tempvolunteer))
            {
                Assert.Fail("修改志愿者信息失败");
            }
            #endregion

            #region 第二次修改
            v.Name        = "EditByParamTestName";
            tempvolunteer = helper.FindVolunteer(v.StudentNum);
            helper.EditVolunteer(tempvolunteer, v.StudentNum, v.Name);
            tempvolunteer = helper.FindVolunteer(v.StudentNum);
            if (!Volunteer.AreSame(v, tempvolunteer))
            {
                Assert.Fail("第二次修改志愿者信息失败");
            }
            #endregion
            var result3 = helper.FindVolunteer(v.StudentNum);
            database.Volunteers.Remove(result3);//Remove
        }
        public void FindVolunteerTest()
        {
            #region 新建一个志愿者对象
            Volunteer v = new Volunteer
            {
                StudentNum = 0301,
                Name       = "DeleteTest",
                Class      = "TestClass",
                Email      = "*****@*****.**",
                Room       = "testroom",
                Mobile     = "18888888888"
            };
            helper.AddVolunteer(v);
            #endregion

            #region 用两种方式查找同一个志愿者
            var result1 = helper.FindVolunteer(v.StudentNum);
            var result2 = helper.FindVolunteer(v.Name);
            if (!Volunteer.AreSame(v, result1))
            {
                Assert.Fail("通过id查找志愿者失败");
            }
            bool flag = false;
            foreach (Volunteer o in result2)
            {
                if (Volunteer.AreSame(o, v))
                {
                    flag = true;
                    break;
                }
                flag = false;
            }
            if (!flag)
            {
                Assert.Fail("通过Name查找志愿者失败");
            }
            #endregion
            var result3 = helper.FindVolunteer(v.StudentNum);
            database.Volunteers.Remove(result3);//Remove
        }
        private void Confirm_Click(object sender, RoutedEventArgs e)
        {
            //<Volunteer> finalList = csvGrid.SelectedItems as List<Volunteer>;
            List <string>           errors        = new List <string>();
            List <csvItemViewModel> succeededList = new List <csvItemViewModel>();

            foreach (csvItemViewModel v in csvList)
            {
                if (v.Selected)
                {
                    if (vhelper.FindVolunteer(v.StudentNum) == null)
                    {
                        var addResult = vhelper.AddVolunteer(v.Volunteer);
                        if (!addResult.Succeeded)
                        {
                            errors.Add(addResult.ErrorString);
                        }
                        else
                        {
                            var addToProjectResult = pphelper.SingleVolunteerInputById(v.StudentNum, project);
                            if (!addToProjectResult.Succeeded)
                            {
                                errors.Add(string.Join(",", addToProjectResult.Errors) + "没有成功添加入项目");
                            }
                            else
                            {
                                succeededList.Add(v);
                            }
                        }
                    }
                    else
                    {
                        var addToProjectResult = pphelper.SingleVolunteerInputById(v.StudentNum, project);
                        if (!addToProjectResult.Succeeded)
                        {
                            errors.Add(string.Join(",", addToProjectResult.Errors) + "没有成功添加入项目");
                        }
                        else
                        {
                            succeededList.Add(v);
                        }
                    }
                }
            }
            string errorstring = string.Join("\n", errors);

            if (errorstring != "")
            {
                MessageBox.Show(errorstring);
            }
            foreach (csvItemViewModel vm in succeededList)
            {
                csvList.Remove(vm);
            }
            if (csvList.Count != 0)
            {
                MessageBox.Show("最终,共往项目中添加:" + succeededList.Count + "位志愿者.\n现在显示的是没有选择的志愿者跟添加失败的志愿者.\n若不需要添加,请关闭该窗口.", "添加成功", MessageBoxButton.OK);
                ShowCddGrid();
            }
            else
            {
                MessageBox.Show("最终,共往项目中添加: " + succeededList.Count + "位志愿者.\n所有列表中的志愿者已经添加完毕.");
                fatherWindow.Close();
            }
        }
예제 #4
0
        public DealWithConflict(Project p, List <Volunteer> fulllist, InputWindow window)//list为完整list
        {
            InitializeComponent();
            project      = p;
            fatherWindow = window;
            fullList     = fulllist;
            database     = DatabaseContext.GetInstance();
            itemList     = new List <csvItemViewModel>();
            foreach (Volunteer item in fullList)
            {
                if (database.Volunteers.Where(v => v.StudentNum == item.StudentNum).ToList().Count() != 0)
                {
                    conflictList.Add(item);
                }
                else
                {
                    if (vhelper.FindVolunteer(item.StudentNum) == null)
                    {
                        normalList.Add(item);
                    }
                    else
                    {
                        normalList.Add(vhelper.FindVolunteer(item.StudentNum));
                    }
                }
            }

            if (conflictList.Count() == 0)
            {
                List <csvItemViewModel> finalList = new List <csvItemViewModel>();
                foreach (Volunteer v in normalList)
                {
                    finalList.Add(new csvItemViewModel(v));
                }
                MessageBox.Show("导入信息成功!", "", MessageBoxButton.OK);
                Csvviewer viewer = new Csvviewer(project, finalList, fatherWindow);
                fatherWindow.Content = viewer;

                //this.Visibility=Visibility.Collapsed;
            }
            else
            {
                foreach (Volunteer v in conflictList)
                {
                    Volunteer        old   = vhelper.FindVolunteer(v.StudentNum);
                    csvItemViewModel vmNew = new csvItemViewModel(v);
                    csvItemViewModel vmOld = new csvItemViewModel(old);
                    vmOld.IsOld = true;
                    vmNew.IsOld = false;
                    vmNew.Pair  = vmOld;
                    vmOld.Pair  = vmNew;
                    itemList.Add(vmNew);
                    itemList.Add(vmOld);
                }

                /* List<Volunteer> theOldAndNew = new List<Volunteer>();
                 * Volunteer theOld;
                 * foreach (Volunteer theNew in conflictList)
                 * {
                 *   theOldAndNew.Add(theNew);
                 *   theOld = vhelper.FindVolunteer(theNew.StudentNum);
                 *   theOldAndNew.Add(theOld);
                 * }
                 * isOld = false;
                 * conflictList = theOldAndNew;
                 * csvGrid.ItemsSource = conflictList;*/
                ShowCnfGrid();
            }
        }