Ejemplo n.º 1
0
        //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;
            }
        }