public GiveModule(ICurrentOwner currentOwner, IItemRepository itemRepository, IOverviewService overviewService, ITelemetryService telemetryService) { _currentOwner = currentOwner; _itemRepository = itemRepository; _overviewService = overviewService; _telemetryService = telemetryService; }
public CreateModule(ICurrentOwner currentOwner, ICatRepository repository, IOwnerRepository ownerRepository, ITelemetryService telemetryService) { _currentOwner = currentOwner; _repository = repository; _ownerRepository = ownerRepository; _telemetryService = telemetryService; }
public void TrackCreateCommand(ICurrentOwner owner, Cat cat) { var properties = new Dictionary <string, string>() { { "ownerId", owner.Owner.Id.ToString() }, { "ownerName", owner.Owner.Name }, { "catId", cat.Id.ToString() }, { "catName", cat.Name } }; Client.TrackEvent("create", properties); Client.Flush(); }
public void TrackGoCommand(ICurrentOwner owner, Cat cat, Adventure adventure) { var properties = new Dictionary <string, string>() { { "ownerId", owner.Owner.Id.ToString() }, { "ownerName", owner.Owner.Name }, { "catId", cat.Id.ToString() }, { "catName", cat.Name }, { "adventureRef", adventure.AdventureRef.ToString() } }; Client.TrackEvent("go", properties); Client.Flush(); }
public async Task <ResultMessage> GetOverviewAsync(ICurrentOwner currentOwner, Cat cat) { Embed embed; var adventureEntry = await _adventureEntryRepository.FindByCatIdAsync(cat.Id); if (adventureEntry != null) { var adventure = _adventureRepository.FindByAdventureRef(adventureEntry.AdventureRef); embed = CatSheet.GetSheet(currentOwner, cat, string.Empty, adventure, adventureEntry.End); } else { embed = CatSheet.GetSheet(currentOwner, cat); } return(new ResultMessage(string.Empty, embed)); }
public void TrackGiveCommand(ICurrentOwner owner, Cat cat, Item item, int amount) { var properties = new Dictionary <string, string>() { { "ownerId", owner.Owner.Id.ToString() }, { "ownerName", owner.Owner.Name }, { "catId", cat.Id.ToString() }, { "catName", cat.Name }, { "itemRef", item.ItemRef.ToString() }, { "itemType", item.ItemType.ToString() } }; var metrics = new Dictionary <string, double>() { { "amount", amount } }; Client.TrackEvent("give", properties, metrics); Client.Flush(); }
public static Embed GetSheet(ICurrentOwner currentOwner, Cat cat, string message = null, Adventure adventure = null, DateTimeOffset?adventureEnd = null) { var embedBuilder = new EmbedBuilder { Color = new Color(50, 184, 31), Author = new EmbedAuthorBuilder { Name = $"{currentOwner.Owner.Name}'s {cat.Name}", IconUrl = currentOwner.Owner.AvatarUrl }, Description = message }; var ageField = new EmbedFieldBuilder { IsInline = adventure != null, Name = "Age", Value = (int)((DateTimeOffset.UtcNow - cat.DateOfBirth).TotalDays / 7) + " weeks" }; embedBuilder.AddField(ageField); if (adventure != null && adventureEnd.HasValue) { var remaining = "completed"; var remainingTime = adventureEnd.Value - DateTimeOffset.UtcNow; if (remainingTime.TotalMilliseconds > 0) { remaining = remainingTime.ToString(@"hh\:mm\:ss"); } var adventureField = new EmbedFieldBuilder { IsInline = false, Name = "Current adventure", Value = $"{adventure.Name} - {remaining} remaining" }; embedBuilder.AddField(adventureField); } var hungerField = new EmbedFieldBuilder { IsInline = true, Name = "Hunger", Value = cat.GetHungerLevel() }; embedBuilder.AddField(hungerField); var thirstField = new EmbedFieldBuilder { IsInline = true, Name = "Thirst", Value = cat.GetThirstLevel() }; embedBuilder.AddField(thirstField); var kindField = new EmbedFieldBuilder { IsInline = true, Name = "Kindness", Value = cat.Stats.Kind }; embedBuilder.AddField(kindField); var lazyField = new EmbedFieldBuilder { IsInline = true, Name = "Laziness", Value = cat.Stats.Lazy }; embedBuilder.AddField(lazyField); var resourcefulField = new EmbedFieldBuilder { IsInline = true, Name = "Resourcefulness", Value = cat.Stats.Resourceful }; embedBuilder.AddField(resourcefulField); var outgoingField = new EmbedFieldBuilder { IsInline = true, Name = "Outgoing", Value = cat.Stats.Outgoing }; embedBuilder.AddField(outgoingField); return(embedBuilder.Build()); }
public GoModule(ICurrentOwner currentOwner, IAdventureEntryRepository adventureEntryRepository, ITelemetryService telemetryService) { _currentOwner = currentOwner; _adventureEntryRepository = adventureEntryRepository; _telemetryService = telemetryService; }