Advertisement
Guest User

SignUpController

a guest
Mar 9th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.80 KB | None | 0 0
  1. namespace Forum.App.Controllers
  2. {
  3.     using Forum.App;
  4.     using Forum.App.Controllers.Contracts;
  5.     using Forum.App.Services;
  6.     using Forum.App.UserInterface;
  7.     using Forum.App.UserInterface.Contracts;
  8.     using System;
  9.  
  10.     public class SignUpController : IController, IReadUserInfoController
  11.     {
  12.         private enum Command
  13.         {
  14.             ReadUsername,
  15.             ReadPassword,
  16.             SignUp,
  17.             Back
  18.         }
  19.  
  20.         public enum SignUpStatus
  21.         {
  22.             Success,
  23.             DetailsError,
  24.             UsernameTakenError
  25.         }
  26.  
  27.         private const string DETAILS_ERROR = "Invalid Username or Password!";
  28.         private const string USERNAME_TAKEN_ERROR = "Username already in use!";
  29.  
  30.         public string Username { get; private set; }
  31.  
  32.         private string Password { get; set; }
  33.  
  34.         private string ErrorMessage { get; set; }
  35.  
  36.         public MenuState ExecuteCommand(int index)
  37.         {
  38.             switch ((Command)index)
  39.             {
  40.                 case Command.ReadUsername:
  41.                     this.ReadUsername();
  42.                     return MenuState.Signup;
  43.                 case Command.ReadPassword:
  44.                     this.ReadPassword();
  45.                     return MenuState.Signup;
  46.                 case Command.SignUp:
  47.                     SignUpStatus signUp = UserService.TrySignUpUser(this.Username, this.Password);
  48.                     switch (signUp)
  49.                     {
  50.                         case SignUpStatus.Success:
  51.                             return MenuState.SuccessfulLogIn;
  52.                         case SignUpStatus.DetailsError:
  53.                             this.ErrorMessage = DETAILS_ERROR;
  54.                             return MenuState.Rerender;
  55.                         case SignUpStatus.UsernameTakenError:
  56.                             this.ErrorMessage = USERNAME_TAKEN_ERROR;
  57.                             return MenuState.Rerender;
  58.                     }
  59.                     break;
  60.                 case Command.Back:
  61.                     this.ResetSignUp();
  62.                     return MenuState.Back;
  63.             }
  64.  
  65.             throw new InvalidOperationException();
  66.         }
  67.  
  68.         public IView GetView(string userName)
  69.         {
  70.             return new SignUpView(this.ErrorMessage);
  71.         }
  72.  
  73.         public void ReadPassword()
  74.         {
  75.             this.Password = ForumViewEngine.ReadRow();
  76.             ForumViewEngine.HideCursor();
  77.         }
  78.  
  79.         public void ReadUsername()
  80.         {
  81.             this.Username = ForumViewEngine.ReadRow();
  82.             ForumViewEngine.HideCursor();
  83.         }
  84.  
  85.         private void ResetSignUp()
  86.         {
  87.             this.ErrorMessage = String.Empty;
  88.             this.Username = String.Empty;
  89.             this.Password = String.Empty;
  90.         }
  91.     }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement