コード例 #1
0
        public static async Task Add(State.Linked.LinkedAccount linkedAccount, AccountApi.Wisa.Student wisa, AccountApi.Directory.Account directory)
        {
            var ssAccount = new AccountApi.Smartschool.Account();

            ssAccount.UID        = directory.UID;
            ssAccount.RegisterID = wisa.StateID;
            try
            {
                ssAccount.StemID = Convert.ToInt32(wisa.StemID);
            }
            catch (Exception)
            {
                ssAccount.StemID = 0;
            }

            ssAccount.Role           = AccountRole.Student;
            ssAccount.GivenName      = wisa.FirstName;
            ssAccount.SurName        = wisa.Name;
            ssAccount.Gender         = wisa.Gender;
            ssAccount.Birthday       = wisa.DateOfBirth;
            ssAccount.BirthPlace     = wisa.PlaceOfBirth;
            ssAccount.Street         = wisa.Street;
            ssAccount.HouseNumber    = wisa.HouseNumber;
            ssAccount.HouseNumberAdd = wisa.HouseNumberAdd;
            ssAccount.PostalCode     = wisa.PostalCode;
            ssAccount.City           = wisa.City;
            ssAccount.Mail           = directory.PrincipalName;

            var result = await AccountApi.Smartschool.AccountManager.Save(ssAccount, "FakeP4ssword").ConfigureAwait(false);

            if (!result)
            {
                MainWindow.Instance.Log.AddError(Origin.Smartschool, "Failed to add " + wisa.FullName);
                return;
            }
            else
            {
                linkedAccount.Smartschool.Account = ssAccount;
                MainWindow.Instance.Log.AddMessage(Origin.Smartschool, "Added account for " + wisa.FullName);
            }


            IGroup classgroup;

            if (wisa.ClassGroup.Contains("ANS") || wisa.ClassGroup.Contains("BNS"))
            {
                classgroup = AccountApi.Smartschool.GroupManager.Root.Find("Leerlingen");
            }
            else
            {
                classgroup = AccountApi.Smartschool.GroupManager.Root.Find(wisa.ClassGroup);
            }

            await MoveToSmartschoolClassGroup.Move(linkedAccount, classgroup).ConfigureAwait(false);
        }
コード例 #2
0
        public static void AddActions(State.Linked.LinkedAccount account)
        {
            if (account is null)
            {
                return;
            }

            account.OK = true;
            account.SetBasicFlags();

            if (!account.Wisa.Exists || !account.Directory.Exists || !account.Smartschool.Exists)
            {
                RemoveFromGoogle.Evaluate(account);
                RemoveFromDirectory.Evaluate(account);
                UnregisterSmartschool.Evaluate(account);
                DeleteFromSmartschool.Evaluate(account);
                AddToDirectoryAndSmartschool.Evaluate(account);
                AddToDirectory.Evaluate(account);
                RemoveFromDirectoryAndSmartschool.Evaluate(account);
                account.OK = false;
            }
            else
            {
                ModifySmartschoolStudentAddress.Evaluate(account);
                AddToADStudentGroup.Evaluate(account);
                //ModifyStudentHomeDir.Evaluate(account);
                ModifyAccountID.Evaluate(account);
                ModifySmartschoolStemID.Evaluate(account);
                ModifySmartschoolBirthPlace.Evaluate(account);
                //CreateHomeDir.Evaluate(account);
                MoveDirectoryClassGroup.Evaluate(account);
                MoveToSmartschoolClassGroup.Evaluate(account);
                ModifyDirectoryData.Evaluate(account);
                PrincipalNameMustEqualMail.Evaluate(account);
                AddToADClassGroup.Evaluate(account);
                ModifySmartschoolStudentEmail.Evaluate(account);
            }
        }