コード例 #1
0
        public TamagotchiContract(Domain.Tamagotchi tama)
        {
            ID      = tama.TamagotchiID;
            Name    = tama.Name;
            Status  = tama.Status;
            HasDied = tama.HasDied;
            var now = DateTime.UtcNow;

            IsInCoolDown = tama.IsInCoolDown(now);

            if (IsInCoolDown)
            {
                CoolDownLeft     = tama.CoolDown - (now - tama.LastAccessedOnUtc);
                CoolDownUntilUtc = now + CoolDownLeft;
            }
            else
            {
                CoolDownLeft     = TimeSpan.Zero;
                CoolDownUntilUtc = DateTime.MinValue;
            }

            CreatedOnUtc = tama.CreatedOnUtc;
            DiedOnUtc    = tama.DiedOnUtc;

            Health     = tama.Health;
            Hungriness = tama.Hunger;
            Sleepiness = tama.Sleep;
            Boredom    = tama.Boredom;

            tama.TamagotchiRules.ToList();

            Rules = tama.TamagotchiRules?.OrderBy(r => r.Rule.Order)
                    .Select(r => new RuleContract(r));
        }
コード例 #2
0
        public CreatedArguments Add(string name)
        {
            if (string.IsNullOrWhiteSpace(name) || _context.Tamagotchis.Any(t => t.Name == name))
                return new CreatedArguments(0, name, false);

            var tamagotchi = new Domain.Tamagotchi(name, _context.Rules.ToArray());

            _context.Tamagotchis.Add(tamagotchi);
            var wasCreated = SaveChanges();
            return new CreatedArguments(tamagotchi.TamagotchiID, name, wasCreated);
        }
コード例 #3
0
        bool Eat(Domain.Tamagotchi tama)
        {
            if (tama == null)
            {
                return(false);
            }

            if (tama.EatAction(DateTime.UtcNow))
            {
                return(repo.SaveChanges());
            }

            return(false);
        }
コード例 #4
0
        public CreatedArguments Add(string name)
        {
            if (string.IsNullOrWhiteSpace(name) || _context.Tamagotchis.Any(t => t.Name == name))
            {
                return(new CreatedArguments(0, name, false));
            }

            var tamagotchi = new Domain.Tamagotchi(name, _context.Rules.ToArray());

            _context.Tamagotchis.Add(tamagotchi);
            var wasCreated = SaveChanges();

            return(new CreatedArguments(tamagotchi.TamagotchiID, name, wasCreated));
        }
コード例 #5
0
        bool SetIsActiveForRule(Domain.Tamagotchi tama, string ruleName, bool value)
        {
            if (tama == null)
            {
                return(false);
            }

            var rule = tama.TamagotchiRules.FirstOrDefault(r => r.RuleName == ruleName);

            if (rule == null)
            {
                return(false);
            }

            rule.IsActive = value;

            if (!value)
            {
                rule.Rule.Deactivate(tama);
            }

            repo.SaveChanges();
            return(true);
        }