Ejemplo n.º 1
0
 public CheckIfPlayerIsAlreadyRegistered()
 {
     Test = activity => Please.Check(
         new IsUserRegistered(activity.From.Id, activity.Conversation.Id, activity.ServiceUrl));
     Positive = new CheckIfAnyChallengeIsInProgress();
     Negative = new WelcomeUser();
 }
Ejemplo n.º 2
0
        public T OrDefault(string value)
        {
            if (typeof(T).IsEnum)
            {
                T parsed = Easily.Parse <T>(value.ToString());

                DefaultValue = parsed;

                if (Please == null)
                {
                    Please = parsed;
                }
                else if (!Please.Equals(default(T)))
                {
                    Please = parsed;
                }
            }
            else if (typeof(T) == typeof(string))
            {
                DefaultValue = (T)(System.Object)value;

                if (Please == null)
                {
                    Please = DefaultValue;
                }
            }

            return(Please);
        }
Ejemplo n.º 3
0
        public override void Execute(InitializeGame command)
        {
            var gameMaster = Please.Do(new GetOrCreateGameMaster()).Result;
            var player     = Please.Do(new GetOrCreatePlayer(command.Username, command.UserId, command.ConversationId,
                                                             command.ServiceUrl, gameMaster.Id)).Result;

            var adventures = new List <InitializeGameAdventure>()
            {
                new InitializeGameAdventure(ResourcesStrings.PeopleAdventureTitle,
                                            ResourcesStrings.PeopleAdventureFinished, ResourcesImages.PeopleBadge),
                new InitializeGameAdventure(ResourcesStrings.FoodAdventureTitle,
                                            ResourcesStrings.FoodAdventureFinished, ResourcesImages.FoodBadge),
                new InitializeGameAdventure(ResourcesStrings.PlacesAdventureTitle,
                                            ResourcesStrings.PlacesAdventureFinished, ResourcesImages.PlacesBadge)
            };

            var challanges = new List <List <InitializeGameChallenge> >()
            {
                new List <InitializeGameChallenge>()
                {
                    new InitializeGameChallenge(ResourcesStrings.IntroduceYourselfChallengeTitle, ResourcesStrings
                                                .IntroduceYourselfChallengeDescription),
                    new InitializeGameChallenge(ResourcesStrings.LunchChallengeTitle, ResourcesStrings
                                                .LunchChallengeDescription),
                    new InitializeGameChallenge(ResourcesStrings.SelfieChallengeTitle, ResourcesStrings
                                                .SelfieChallengeDescription)
                },
                new List <InitializeGameChallenge>()
                {
                    new InitializeGameChallenge(ResourcesStrings.CoffieWithChallengeTitle, ResourcesStrings
                                                .CoffieWithChallengeDescription),
                    new InitializeGameChallenge(ResourcesStrings.ShopChallengeTitle, ResourcesStrings
                                                .ShopChallengeDescription),
                    new InitializeGameChallenge(ResourcesStrings.BeerChallengeTitle, ResourcesStrings
                                                .BeerChallengeDescription)
                },
                new List <InitializeGameChallenge>()
                {
                    new InitializeGameChallenge(ResourcesStrings.ToiletChallengeTitle, ResourcesStrings
                                                .ToiletChallengeDescription),
                    new InitializeGameChallenge(ResourcesStrings.RelaxRoomChallengeTitle, ResourcesStrings
                                                .RelaxRoomChallengeDescription),
                    new InitializeGameChallenge(ResourcesStrings.KitchenChallengeTitle, ResourcesStrings
                                                .KitchenChallengeDescription)
                }
            };

            for (var i = 0; i < adventures.Count; i++)
            {
                var adventure = CreateAdventure(player, adventures[i], i);

                CreateChallenges(player, adventure, challanges[i]);
            }

            DbContext.SaveChanges();
        }
Ejemplo n.º 4
0
        public override IsUserRegistered Perform(IsUserRegistered query)
        {
            Please.Do(new UpdatePlayerServiceAndConversation(query.UserId, query.ServiceUrl, query.ConversationId));

            var player = DbContext.Players.SingleOrDefault(x => x.UserId == query.UserId);

            query.QueryResult = player != null;

            return(query);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Defines the default and returns the result
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public T OrDefault(T @default)
        {
            DefaultValue = @default;

            if (Please.Equals(default(T)))
            {
                Please = DefaultValue;
            }

            return(Please);
        }
Ejemplo n.º 6
0
        public override void Handle(EditUser command)
        {
            var userToEdit = new User
            {
                Login = command.Login
            };

            Console.WriteLine(" ");
            Console.WriteLine($"Edytuję użykownika o loginie {userToEdit.Login}");

            Please.Tell(new UserEdited(userToEdit.Login));
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Defines the default and returns the result
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public T OrDefault(int value) // for use with Enums
        {
            // the generic version of this seems to cover enums
            if (typeof(T).IsEnum)
            {
                DefaultValue = (T)(System.Object)value; // force it

                if (!Please.Equals(default(T)))
                {
                    Please = DefaultValue;
                }
            }

            return(Please);
        }
Ejemplo n.º 8
0
        public override void Handle(DeleteUser command)
        {
            var userToDelete = new User
            {
                Login = command.Login
            };

            Console.WriteLine(" ");
            Console.WriteLine($"Usuwam użykownika o loginie {userToDelete.Login}");


            //delete from db

            Please.Tell(new UserDeleted(userToDelete.Login));
        }
Ejemplo n.º 9
0
        public override IEnumerable <Activity> Evaluate(Activity activity)
        {
            var challengeInProgress = Please.Give(new ChallengeInProgress(activity.From.Id)).QueryResult;
            var content             = string.Format(ResourcesStrings.AdventureHowIsChallengeGoing, challengeInProgress.Title);
            var reply      = activity.CreateReply();
            var actionCard = new ThumbnailCard()
            {
                Buttons = GetActions(),
                Text    = content
            };

            reply.Attachments.Add(actionCard.ToAttachment());

            yield return(reply);
        }
Ejemplo n.º 10
0
        public override IEnumerable <Activity> Evaluate(Activity activity)
        {
            var challenge = Please.Give(new ChallengeInProgress(activity.From.Id)).QueryResult;

            Please.Do(new CompleteChallenge(challenge.Id));

            var reply = activity.CreateReply($"{Resources.ResourcesStrings.Congratulations} {Resources.Emoji.Tada} You have finished {challenge.Order + 1}/3 steps of this adventure. ");

            var areAllChallengesFromAdventureFinished =
                Please.Check(new AreAllChallengesInAdventureFinished(challenge.Adventure.Id));

            if (areAllChallengesFromAdventureFinished)
            {
                var content = challenge.Adventure.FinishedText + " ";
                if (!string.IsNullOrEmpty(challenge.Adventure.FinishedImageUrl))
                {
                    var a = new Attachment("image/png", challenge.Adventure.FinishedImageUrl, null, null, null);
                    reply.Attachments.Add(a);
                }
                reply.Text = content;
            }

            yield return(reply);

            var userHasUnfinishedChallenge = Please.Give(new HasAnyChallengeUnfinished(activity.From.Id)).QueryResult;

            if (!userHasUnfinishedChallenge)
            {
                yield return(activity.CreateReply("Congratulations! That's all I prepared for you by now! But stay ready for new adventures!"));
            }

            var giveUserChallengerResponses = new GiveUserChallenge().Evaluate(activity);

            if (giveUserChallengerResponses == null)
            {
                yield break;
            }

            foreach (var response in giveUserChallengerResponses)
            {
                yield return(response);
            }
        }
Ejemplo n.º 11
0
        public override IEnumerable <Activity> Evaluate(Activity activity)
        {
            var challenge = Please.Give(new NextUnfinishedChallenge(activity.From.Id)).QueryResult;

            if (challenge == null)
            {
                yield break;
            }

            Please.Do(new BeginChallange(challenge.Id));

            var content = ResourcesStrings.AdventureNewChallengeForYou + "\"" + challenge.Title + "\"!";

            foreach (var item in new List <Activity>()
            {
                activity.CreateReply(content), activity.CreateReply(challenge.Description)
            })
            {
                yield return(item);
            }
        }
Ejemplo n.º 12
0
        public override IEnumerable <Activity> Evaluate(Activity activity)
        {
            Please.Do(new InitializeGame(activity.From.Name, activity.From.Id, activity.Conversation.Id, activity.ServiceUrl));
            var reply      = activity.CreateReply();
            var actionCard = new ThumbnailCard()
            {
                Buttons = new List <CardAction>()
                {
                    new CardAction
                    {
                        Value = "I'm ready!",
                        Title = "I'm ready!",
                        Type  = "imBack"
                    }
                },
                Text = ResourcesStrings.WelcomeText
            };

            reply.Attachments.Add(actionCard.ToAttachment());
            yield return(reply);
        }
Ejemplo n.º 13
0
 private void SetPlease(string value)
 {
     Please = Please.Equals(default(T)) ? Please : Easily.Parse <T>(value);
 }
Ejemplo n.º 14
0
 private void SetPlease(T value)
 {
     Please = Please.Equals(default(T)) ? Please : value;
 }
Ejemplo n.º 15
0
 public CheckIfAnyChallangeIsUnfinished()
 {
     Test     = activity => Please.Check(new HasAnyChallengeUnfinished(activity.From.Id));
     Positive = new GiveUserChallenge();
     Negative = new FinishUserGame();
 }
Ejemplo n.º 16
0
 public CheckIfGameShouldBeFinished()
 {
     Test     = activity => Please.Check(new HasAnyChallengeUnfinished(activity.From.Id));
     Positive = new CompleteUserChallenge();
     Negative = new FinishUserGame();
 }
Ejemplo n.º 17
0
 public override IEnumerable <Activity> Evaluate(Activity activity)
 {
     Please.Do(new ResetGame(activity.From.Id));
     yield return(activity.CreateReply("Game has been resetted"));
 }
 public CheckIfAnyChallengeIsInProgress()
 {
     Test     = activity => Please.Check(new IsAnyChallengeInProgress(activity.From.Id));
     Positive = new CheckIfChallengeShouldBeFinished();
     Negative = new CheckIfAnyChallangeIsUnfinished();
 }