public async Task <KarmaAkashicRecord> KarmaLost(KarmaTypeNegative karmaType, KarmaSourceType karmaSourceType, string karamSourceTitle, string karmaSourceDesc, bool autoSave = true) { KarmaAkashicRecord record = new KarmaAkashicRecord { KarmaEarntOrLost = KarmaEarntOrLost.Lost, Date = DateTime.Now, Karma = GetKarmaForType(karmaType), KarmaSource = karmaSourceType, KarmaSourceTitle = karamSourceTitle, KarmaSourceDesc = karmaSourceDesc, KarmaTypeNegative = karmaType, UserId = UserId, Provider = ProviderManager.CurrentStorageProviderType }; this.Karma -= GetKarmaForType(karmaType); if (this.KarmaAkashicRecords == null) { this.KarmaAkashicRecords = new List <KarmaAkashicRecord>(); } this.KarmaAkashicRecords.Add(record); if (autoSave) { await Save(); } return(record); }
public async Task <KarmaAkashicRecord> RemoveKarmaFromProfileAsync(IProfile profile, KarmaTypeNegative karmaType, KarmaSourceType karmaSourceType, string karamSourceTitle, string karmaSourceDesc, ProviderType provider = ProviderType.Default) { if (provider != ProviderType.Default) { return(await((IOASISStorage)ProviderManager.GetAndActivateProvider(provider)).SubtractKarmaFromProfileAsync(profile, karmaType, karmaSourceType, karamSourceTitle, karmaSourceDesc)); } return(await ProviderManager.CurrentStorageProvider.SubtractKarmaFromProfileAsync(profile, karmaType, karmaSourceType, karamSourceTitle, karmaSourceDesc)); }
private int GetKarmaForType(KarmaTypeNegative karmaType) { switch (karmaType) { case KarmaTypeNegative.AttackPhysciallyOtherPersonOrPeople: return(10); case KarmaTypeNegative.AttackVerballyOtherPersonOrPeople: return(5); case KarmaTypeNegative.BeingSelfish: return(3); case KarmaTypeNegative.DisrespectPersonOrPeople: return(4); case KarmaTypeNegative.DropLitter: return(9); case KarmaTypeNegative.HarmingAnimals: return(10); case KarmaTypeNegative.HarmingChildren: return(9); case KarmaTypeNegative.HarmingNature: return(10); case KarmaTypeNegative.NotTeamPlayer: return(3); case KarmaTypeNegative.NutritionEatDiary: return(6); case KarmaTypeNegative.NutritionEatDrinkUnhealthy: return(3); case KarmaTypeNegative.NutritionEatMeat: return(7); case KarmaTypeNegative.Other: return(1); case KarmaTypeNegative.OurWorldAttackOtherPlayer: return(7); case KarmaTypeNegative.OurWorldBeSelfish: return(4); case KarmaTypeNegative.OurWorldDisrespectOtherPlayer: return(5); case KarmaTypeNegative.OurWorldDropLitter: return(7); case KarmaTypeNegative.OurWorldNotTeamPlayer: return(3); default: return(0); } }
public Task <KarmaAkashicRecord> SubtractKarmaFromProfileAsync(API.Core.IProfile profile, KarmaTypeNegative karmaType, KarmaSourceType karmaSourceType, string karamSourceTitle, string karmaSourceDesc) { return(profile.KarmaLost(karmaType, karmaSourceType, karamSourceTitle, karmaSourceDesc)); }