//public async Task<bool> CheckExist(string UserCode) //{ // return await AD.CheckUser(UserCode); //} public bool Interact(EspackUser User) { try { AD.EC.ServerName = ServerName; if (User.Flags.Contains("DIS")) { User.ServiceCommands.Add(new ServiceCommand() { Command = AD.UpdateUser(User.Name, User.Surname, User.UserCode, User.Password, User.Email, User.Sede.COD3, User.Position, User.Area, User.Sede.COD3Description) }); User.ServiceCommands.Add(new ServiceCommand() { Command = AD.DisableUser(User.UserCode) }); return(true); } // insert or update the user User.ServiceCommands.Add(new ServiceCommand() { Command = AD.InteractUser(User.Name, User.Surname, User.UserCode, User.Password, User.Email, User.Sede.COD3, User.Position, User.Area, User.Sede.COD3Description) }); // create the OU if not exists User.ServiceCommands.Add(new ServiceCommand() { Command = AD.CreateOrganizationalUnit(User.Sede.COD3, User.Sede.COD3Description, AD.DefaultPath) }); // move to the OU if not there User.ServiceCommands.Add(new ServiceCommand() { Command = AD.MoveUserToOU(User.UserCode, User.Sede.COD3) }); // remove from non present flag groups foreach (var f in Flags) { if (!User.Flags.Contains(f.Key)) { User.ServiceCommands.Add(new ServiceCommand() { Command = AD.RemoveUserFromGroup(User.UserCode, f.Value, AD.DefaultPath) }); } } // add to flag groups if (User.Flags != null) { foreach (var f in User.Flags) { User.ServiceCommands.Add(new ServiceCommand() { Command = AD.CreateGroup(Flags[f], Flags[f], "Security", AD.DefaultPath) }); User.ServiceCommands.Add(new ServiceCommand() { Command = AD.AddUserToGroup(User.UserCode, Flags[f], GroupPath: AD.DefaultPath) }); } } return(true); } catch (Exception ex) { throw ex; } }