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)); }
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); }
bool Eat(Domain.Tamagotchi tama) { if (tama == null) { return(false); } if (tama.EatAction(DateTime.UtcNow)) { return(repo.SaveChanges()); } return(false); }
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)); }
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); }