Внедрение простой системы достижений для dotnet mvc - PullRequest
0 голосов
/ 29 апреля 2019

Я работаю над созданием банковского приложения для школьного проекта, использующего ASP.net MVC 4. В рамках приложения у нас есть ряд достижений для пользователя. Когда пользователь завершает достижение, скажем «Создать сберегательный счет», его следует вознаграждать, разблокировав достижение и отправив уведомление. Вот класс достижений:

    public class Achievement
    {
        public string UserID { get; set; }

        public AchievementType AchType { get; set; }

        public bool Completed { get; set; }

        public string Description { get; set; }

        public int CountToUnlock { get; set; }
    }

    public enum AchievementType
    {
        CREATE_SAVINGS_ACCOUNT, CREATE_GOAL, COMPLETE_GOAL, ACCOUNT_5K,
        ACCOUNT_10K, UPDATE_GOAL, ADD_TRANSACTION, SAVE_1K_TOTAL
    };

Часть, с которой я борюсь, это как убедиться, что у каждого пользователя одинаковый набор достижений, и где запускать эти достижения. Должны ли они быть в AchievementController или где-то еще.

1 Ответ

0 голосов
/ 29 апреля 2019

Моя первоначальная реакция заключается в том, что у вас должен быть класс Customer, который содержит список достижений этого клиента.

Где вы запускаете добавление этих достижений, зависит от того, где живет логика, которая определяет, когда они достигли одной из целей.Собираетесь ли вы для своего школьного проекта настроить страницу, чтобы имитировать это?

Некоторые псевдо-курсы, с которых можно начать:

public class Customer
{
    public int Id { get; set; }

    public string Name { get; set; }

    public List<Achievement> Achievements { get; set; }

    public bool AddAchievement(Achievement newAchievement)
    {
        // Check to ensure customer doesn't already have the new achievement

        // Persist to the database

        // Add to local collection
        Achievements.Add(newAchievement);

        // Send email to customer

        // Anything else

        // Return
        return true;
    }
}

Предложение: в вашем перечислении должны быть указаны ProperCase иодин элемент в каждой строке.Хорошо, чтобы сделать их адекватно описательными тоже.

public enum AchievementType
{
    CreatedSavingsAccount,
    CreatedGoal,
    CompletedGoal,
    AccountBalance5000,
    // [...]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...