protected string RenderUserDetails(TaglistRegisteredUser Model) { return(string.Format( "Imgur Username — {1}" + "\r\nImgur Account ID — {0}" + "\r\nRatings interested in — {2}" + "\r\nCategory Blacklist — {3}", Model.ID, Model.Username, Model.AcceptedRatings, string.Join(", ", Model.CategoryBlacklist) )); }
private async Task <string> ExecuteRegistration(string TaglistName, TaglistRegisteredUser ToRegister) { Log.Application_.LogVerbose("Registering user; performing Registration"); Taglist Model; Lock Lock; try{ Tuple <Taglist, Lock> LoadResult = await Repository.LoadAndLock(TaglistName); Model = LoadResult.Item1; Lock = LoadResult.Item2; }catch (EntityNotFoundException) { return(string.Format("No Taglist with the name '{0}' exists", TaglistName)); }catch (DataAccessException Error) { return("Error retrieving Taglist data: " + Error.Message); } try{ bool added; try{ added = Model.RegisterUser(ToRegister); }catch (AlreadyExistsException Error) { return("Username Conflict — " + Error.Message); } try{ await Repository.Save(Model, Lock); }catch (DataAccessException Error) { return("Error saving updated Taglist: " + Error.Message); } string Response; if (added) { Response = "Imgur user '{1}' (ID {0:D}) has been Registered to Taglist '{2}'; Ratings — {3}; Category Blacklist — {4}"; } else { Response = "Imgur user '{1}' (ID {0:D}) has been updated in the Taglist '{2}'; Updated Ratings — {3}; Updated Category Blacklist — {4}"; } return(string.Format( Response, ToRegister.ID, ToRegister.Username, Model.Name, ToRegister.AcceptedRatings, string.Join(", ", ToRegister.CategoryBlacklist) )); }finally{ Lock.Release(); } }
private async Task Execute( string Username, int?UserID, string TaglistName, string RatingsInterestedInSpecifier, params string[] CategoryBlacklist ) { if (UserID is null) { if (string.IsNullOrWhiteSpace(Username)) { await base.ReplyAsync("Specify a non-empty username"); return; } } TaglistRegisteredUser.RatingFlags?ToRegisterRatings = ParseRatings(RatingsInterestedInSpecifier, out string RatingsParseError); if (ToRegisterRatings is null) { await base.ReplyAsync(RatingsParseError); return; } Log.Application_.LogVerbose("Registering user; parsed Ratings - {0}", ToRegisterRatings); Tuple <int, string> ToRegisterUserDetails = await RetrieveUserIdentity(UserID, Username); if (ToRegisterUserDetails is null) { return; } Log.Application_.LogVerbose("Registering user; username '{1}', ID {0:D}", ToRegisterUserDetails.Item1, ToRegisterUserDetails.Item2); TaglistRegisteredUser ToRegister = new TaglistRegisteredUser( ToRegisterUserDetails.Item2, ToRegisterUserDetails.Item1, ToRegisterRatings.Value, CategoryBlacklist ); string Response = await ExecuteRegistration(TaglistName, ToRegister); await base.ReplyAsync(Response); }