protected override string Handle(ICommand command, IDealershipEngine engine) { var type = command.Parameters[0]; var make = command.Parameters[1]; var model = command.Parameters[2]; var price = decimal.Parse(command.Parameters[3]); var additionalParam = command.Parameters[4]; var typeEnum = (VehicleType)Enum.Parse(typeof(VehicleType), type, true); IVehicle vehicle = null; switch (typeEnum) { case VehicleType.Car: vehicle = engine.Factory.GetCar(make, model, price, int.Parse(additionalParam)); break; case VehicleType.Motorcycle: vehicle = engine.Factory.GetMotorcycle(make, model, price, additionalParam); break; case VehicleType.Truck: vehicle = engine.Factory.GetTruck(make, model, price, int.Parse(additionalParam)); break; default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } engine.LoggedUser.AddVehicle(vehicle); return(string.Format(VehicleAddedSuccessfully, engine.LoggedUser.Username)); }
protected override string Handle(ICommand command, IDealershipEngine engine) { var username = command.Parameters[0]; var firstName = command.Parameters[1]; var lastName = command.Parameters[2]; var password = command.Parameters[3]; var role = Role.Normal; if (command.Parameters.Count > 4) { role = (Role)Enum.Parse(typeof(Role), command.Parameters[4]); } if (engine.LoggedUser != null) { return(string.Format(UserLoggedInAlready, engine.LoggedUser.Username)); } if (engine.Users.Any(u => u.Username.ToLower() == username.ToLower())) { return(string.Format(UserAlreadyExist, username)); } var user = engine.Factory.CreateUser(username, firstName, lastName, password, role.ToString()); engine.LoggedUser = user; engine.Users.Add(user); return(string.Format(UserRegisterеd, username)); }
protected override string Handle(ICommand command, IDealershipEngine engine) { var username = command.Parameters[0]; var password = command.Parameters[1]; if (engine.LoggedUser != null) { return(string.Format(UserLoggedInAlready, engine.LoggedUser.Username)); } var userFound = engine.Users.FirstOrDefault( u => string.Equals(u.Username, username, StringComparison.CurrentCultureIgnoreCase)); if (userFound == null || userFound.Password != password) { return(WrongUsernameOrPassword); } engine.LoginUser(userFound); return(string.Format(UserLoggedIn, username)); }
protected override string ProcessCommand(ICommand command, IDealershipEngine engine) { var type = command.Parameters[0]; var make = command.Parameters[1]; var model = command.Parameters[2]; var price = decimal.Parse(command.Parameters[3]); var additionalParam = command.Parameters[4]; var typeEnum = (VehicleType)Enum.Parse(typeof(VehicleType), type, true); IVehicle vehicle = null; if (typeEnum == VehicleType.Car) { vehicle = engine.Factory.CreateCar(make, model, price, int.Parse(additionalParam)); } else if (typeEnum == VehicleType.Motorcycle) { vehicle = engine.Factory.CreateMotorcycle(make, model, price, additionalParam); } else if (typeEnum == VehicleType.Truck) { vehicle = engine.Factory.CreateTruck(make, model, price, int.Parse(additionalParam)); } engine.LoggedUser.AddVehicle(vehicle); return(string.Format(VehicleAddedSuccessfully, engine.LoggedUser.Username)); }
public static void Main() { StandardKernel normalKernel = new StandardKernel(new DealershipModule()); IDealershipEngine dealershipEngine = normalKernel.Get <IDealershipEngine>(); dealershipEngine.Start(); }
protected override string ProcessCommand(ICommand command, IDealershipEngine engine) { var vehicleIndex = int.Parse(command.Parameters[0]) - 1; CommandHandler.ValidateRange(vehicleIndex, 0, engine.LoggedUser.Vehicles.Count, CommandHandler.RemovedVehicleDoesNotExist); var vehicle = engine.LoggedUser.Vehicles[vehicleIndex]; engine.LoggedUser.RemoveVehicle(vehicle); return(string.Format(VehicleRemovedSuccessfully, engine.LoggedUser.Username)); }
protected override string ProcessCommand(ICommand command, IDealershipEngine engine) { var username = command.Parameters[0]; var user = engine.Users.FirstOrDefault(u => u.Username.ToLower() == username.ToLower()); if (user == null) { return(string.Format(CommandHandler.NoSuchUser, username)); } return(user.PrintVehicles()); }
public string HandleCommand(ICommand command, IDealershipEngine engine) { if (this.CanHandle(command)) { return(this.Handle(command, engine)); } if (this.Next != null) { return(this.Next.HandleCommand(command, engine)); } return(InvalidCommand); }
protected override string Handle(ICommand command, IDealershipEngine engine) { if (engine.LoggedUser.Role != Role.Admin) { return(YouAreNotAnAdmin); } var builder = new StringBuilder(); builder.AppendLine("--USERS--"); var counter = 1; foreach (var user in engine.Users) { builder.AppendLine(string.Format("{0}. {1}", counter, user.ToString())); counter++; } return(builder.ToString().Trim());; }
protected override string Handle(ICommand command, IDealershipEngine engine) { var username = command.Parameters[0]; var password = command.Parameters[1]; if (engine.LoggedUser != null) { return(string.Format(UserLoggedInAlready, engine.LoggedUser.Username)); } var userFound = engine.Users.FirstOrDefault(u => u.Username.ToLower() == username.ToLower()); if (userFound != null && userFound.Password == password) { engine.LoggedUser = userFound; return(string.Format(UserLoggedIn, username)); } return(WrongUsernameOrPassword); }
protected override string ProcessCommand(ICommand command, IDealershipEngine engine) { var vehicleIndex = int.Parse(command.Parameters[0]) - 1; var commentIndex = int.Parse(command.Parameters[1]) - 1; var username = command.Parameters[2]; var user = engine.Users.FirstOrDefault(u => u.Username == username); if (user == null) { return(string.Format(CommandHandler.NoSuchUser, username)); } CommandHandler.ValidateRange(vehicleIndex, 0, user.Vehicles.Count, CommandHandler.RemovedVehicleDoesNotExist); CommandHandler.ValidateRange(commentIndex, 0, user.Vehicles[vehicleIndex].Comments.Count, RemovedCommentDoesNotExist); var vehicle = user.Vehicles[vehicleIndex]; var comment = user.Vehicles[vehicleIndex].Comments[commentIndex]; engine.LoggedUser.RemoveComment(comment, vehicle); return(string.Format(CommentRemovedSuccessfully, engine.LoggedUser.Username)); }
protected override string Handle(ICommand command, IDealershipEngine engine) { var content = command.Parameters[0]; var author = command.Parameters[1]; var vehicleIndex = int.Parse(command.Parameters[2]) - 1; var comment = engine.Factory.CreateComment(content); comment.Author = engine.LoggedUser.Username; var user = engine.Users.FirstOrDefault(u => u.Username == author); if (user == null) { return(string.Format(NoSuchUser, author)); } RangeValidator.ValidateRange(vehicleIndex, 0, user.Vehicles.Count, VehicleDoesNotExist); var vehicle = user.Vehicles[vehicleIndex]; engine.LoggedUser.AddComment(comment, vehicle); return(string.Format(CommentAddedSuccessfully, engine.LoggedUser.Username)); }
public string HandleCommand(ICommand command, IDealershipEngine engine) { if (command.Name != "RegisterUser" && command.Name != "Login") { if (engine.LoggedUser == null) { return(UserNotLogged); } } if (this.CanHandleCommand(command)) { return(this.ProcessCommand(command, engine)); } else if (this.Successor != null) { return(this.Successor.HandleCommand(command, engine)); } else { string errorMessage = string.Format(InvalidCommand, command.Name); return(errorMessage); } }
protected abstract string Handle(ICommand command, IDealershipEngine engine);
protected override string Handle(ICommand command, IDealershipEngine engine) { engine.LoginUser(null); return(UserLoggedOut); }
protected override string ProcessCommand(ICommand command, IDealershipEngine engine) { engine.LoggedUser = null; return(UserLoggedOut); }
protected abstract string ProcessCommand(ICommand command, IDealershipEngine engine);