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); }
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); } }