private static Boolean UpdateUserRole(CatalogUser catalogUser, String newRole, string Url, string Username, string Drowssap) { try { string query = string.Format("/api/CatalogUser/{0}", catalogUser.CatalogUserId.ToString()); catalogUser.Role = newRole; catalogUser.ModifiedDate = System.DateTime.UtcNow; catalogUser.ProductionNotify = false; // Create the http web request. var request = (HttpWebRequest)WebRequest.Create(Url + query); request.Headers.Add(HttpRequestHeader.Authorization, "Basic " + Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(Username + ":" + Drowssap))); request.Method = "PUT"; request.ContentType = "application/json"; var data = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(catalogUser)); var newStream = request.GetRequestStream(); newStream.Write(data, 0, data.Length); newStream.Close(); // execute the request. using (var response = (HttpWebResponse)request.GetResponse()) { if (response != null) { var responseStream = response.GetResponseStream(); var streamReader = new System.IO.StreamReader(responseStream, System.Text.Encoding.UTF8); var responseString = streamReader.ReadToEnd(); CatalogUser apiResponse = responseString.Length > 0 ? Newtonsoft.Json.JsonConvert.DeserializeObject <CatalogUser>(responseString) : null; if (apiResponse != null) { return(true); } Console.WriteLine("ExcludeUser: Invalid API Response:[NULL]"); } } } catch (Exception ex) { Console.WriteLine("DeleteFormDueDate: An unhandled exception occurred:[{0}]", ex.Message); return(false); } return(false); }
/// <summary> /// /// </summary> /// <param name="args"></param> /// <remarks>args[0] = url for Tax Form Catalog</remarks> /// <remarks>args[1] = user id for Tax Form Catalog</remarks> /// <remarks>args[2] = password for Tax Form Catalog</remarks> static void Main(string[] args) { // Exclude users that have not logged in within the last 120 days string sqlExclude = @"SELECT * FROM CatalogUser WHERE Role <> 'EXCLUDED' AND LastLoginDate <= DateAdd(d, -120, getdate())"; List <CatalogUser> catalogUsers = new List <CatalogUser>(); int numberExcluded = 0; using (var context = new TaxFormCatalogContext()) using (var cmd = context.Database.GetDbConnection().CreateCommand()) { cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = sqlExclude; if (cmd.Connection.State != System.Data.ConnectionState.Open) { cmd.Connection.Open(); } var dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { CatalogUser catalogUser = new CatalogUser { CatalogUserId = (Int64)dataReader["CatalogUserId"], IdentityGuid = dataReader["IdentityGuid"].ToString(), UserName = dataReader["UserName"].ToString(), FirstName = dataReader["FirstName"].ToString(), LastName = dataReader["LastName"].ToString(), CreatedDate = (DateTime)dataReader["CreatedDate"], ModifiedDate = (DateTime)dataReader["ModifiedDate"], Role = dataReader["Role"].ToString(), Passphrase = dataReader["Passphrase"].ToString(), LastLoginDate = (DateTime)dataReader["LastLoginDate"], ProductionNotify = (Boolean)dataReader["ProductionNotify"], Email = dataReader["Email"].ToString() }; Boolean result = UpdateUserRole(catalogUser, "EXCLUDED", args[0], args[1], args[2]); if (!result) { Console.WriteLine(string.Format("Unable to Exclude CatalogUser {0}", catalogUser.UserName)); } else { numberExcluded++; } if (numberExcluded % 10 == 0) { Console.WriteLine(string.Format("{0} users Excluded from Tax Form Catalog.", numberExcluded.ToString())); } } Console.WriteLine(string.Format("{0} total users excluded in Tax Form Catalog.", numberExcluded.ToString())); cmd.Connection.Close(); } // Re-enable users that have been excluded but logged in within the last 30 days string strSqlReadOnly = @"SELECT * FROM CatalogUser WHERE Role = 'EXCLUDED' AND LastLoginDate >= DateAdd(d, -30, getdate())"; int numberReenabled = 0; using (var context = new TaxFormCatalogContext()) using (var cmd = context.Database.GetDbConnection().CreateCommand()) { cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = strSqlReadOnly; if (cmd.Connection.State != System.Data.ConnectionState.Open) { cmd.Connection.Open(); } var dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { CatalogUser catalogUser = new CatalogUser { CatalogUserId = (Int64)dataReader["CatalogUserId"], IdentityGuid = dataReader["IdentityGuid"].ToString(), UserName = dataReader["UserName"].ToString(), FirstName = dataReader["FirstName"].ToString(), LastName = dataReader["LastName"].ToString(), CreatedDate = (DateTime)dataReader["CreatedDate"], ModifiedDate = (DateTime)dataReader["ModifiedDate"], Role = dataReader["Role"].ToString(), Passphrase = dataReader["Passphrase"].ToString(), LastLoginDate = (DateTime)dataReader["LastLoginDate"], ProductionNotify = (Boolean)dataReader["ProductionNotify"], Email = dataReader["Email"].ToString() }; Boolean result = UpdateUserRole(catalogUser, "READONLY", args[0], args[1], args[2]); if (!result) { Console.WriteLine(string.Format("Unable to Re-enable CatalogUser {0}", catalogUser.UserName)); } else { numberReenabled++; } if (numberExcluded % 10 == 0) { Console.WriteLine(string.Format("{0} users re-enabled in Tax Form Catalog.", numberReenabled.ToString())); } } Console.WriteLine(string.Format("{0} total users re-enabled in Tax Form Catalog.", numberReenabled.ToString())); cmd.Connection.Close(); } }