public ActionResult Edit(int?id = null) { InvasionReward reward = null; if (id.HasValue) { reward = _uow.GetRepo <InvasionRewardRepository>().GetByID(id.Value); } return(View(new EditInvasionRewardViewModel().Load(_uow, reward))); }
public InvasionRewardViewModel(InvasionReward invasionReward, IItemStore itemStore) { this.invasionReward = invasionReward; if (invasionReward?.CountedItems != null) { var countedItem = invasionReward.CountedItems[0]; Item = itemStore.GetItemById(countedItem.ItemType); ItemCount = invasionReward.CountedItems.Count; Visibility = Visibility.Visible; } else { Visibility = Visibility.Collapsed; } }
public ActionResult Edit([Bind(Prefix = "InvasionReward")] InvasionReward model) { if (ModelState.IsValid) { if (model.ID == 0) { _uow.GetRepo <InvasionRewardRepository>().Add(model); TempData["message"] = "Invasion Reward Added"; } else { _uow.GetRepo <InvasionRewardRepository>().Update(model); TempData["message"] = "Invasion Reward Updated"; } return(RedirectToAction("Index")); } return(View(new EditInvasionRewardViewModel().Load(_uow, model))); }
public List <Invasion> GetInvasions(UnitOfWork unitOfwork, WorldState worldState) { List <Invasion> importantInavsions = new List <Invasion>(); List <InvasionReward> invasionRewardNames = unitOfwork.GetRepo <InvasionRewardRepository>().GetAll(); foreach (Invasion invasion in worldState.Invasions.Where(x => !x.Completed)) { List <InvasionRewardItem> items = new List <InvasionRewardItem>(); if (invasion.AttackerRewardItems.SafeAny()) { items.AddRange(invasion.AttackerRewardItems); } if (invasion.DefenderRewardItems.SafeAny()) { items.AddRange(invasion.DefenderRewardItems); } if (items.Any()) { foreach (InvasionRewardItem item in items) { InvasionReward rewardName = invasionRewardNames.SingleOrDefault(x => x.UniqueName == item.ItemUniqueName); if (rewardName != null) { item.Name = rewardName.Name; } if (rewardName == null || (rewardName != null && rewardName.ShowOnHomeView)) { invasion.IsImportant = true; } } } invasion.AttackerFaction = factions[invasion.AttackerFaction]; invasion.DefenderFaction = factions[invasion.DefenderFaction]; invasion.SolNode = solNodes[invasion.Node]; importantInavsions.Add(invasion); } return(importantInavsions); }
public EditInvasionRewardViewModel Load(UnitOfWork uow, InvasionReward reward = null) { InvasionReward = reward; List <string> names = new List <string>(); List <string> datas = uow.GetRepo <TrackedDataRepository>().GetGroupedByType("InvasionRewards").Select(x => x.Data).ToList(); List <string> existing = uow.GetRepo <InvasionRewardRepository>().GetAll().Select(x => x.UniqueName).ToList(); foreach (string data in datas) { if (!existing.Any(x => x.Equals(data))) { names.Add(data); } } UniqueNameSelectList = new SelectList(names.OrderBy(x => x)); return(this); }
public void StartTask() { WorldStateUtilities worldStateUtilities = new WorldStateUtilities(); WorldState worldState = worldStateUtilities.GetWorldState(); var solNodes = worldStateUtilities.GetSolNodeDictionary(); SentNotificationRepository sentNotificationRepo = uow.GetRepo <SentNotificationRepository>(); InvasionRewardRepository invasionRewardRepo = uow.GetRepo <InvasionRewardRepository>(); List <SentNotification> sentNotifications = sentNotificationRepo.GetByType(TypeName); List <InvasionReward> invasionRewardNames = invasionRewardRepo.GetAll(); foreach (Invasion invasion in worldState.Invasions) { string message = string.Empty; if (invasion.Completed) { continue; } if (sentNotifications.Any(x => x.DataID == invasion.ID)) { continue; } string attackerRewardString = string.Empty; string defenderRewardString = string.Empty; if (invasion.AttackerRewardItems.SafeAny()) { List <string> rewards = new List <string>(); foreach (var reward in invasion.AttackerRewardItems) { InvasionReward rewardInfo = invasionRewardNames.SingleOrDefault(x => x.UniqueName == reward.ItemUniqueName); if (rewardInfo == null) { rewards.Add(reward.ItemUniqueName.Split('/').Last()); } else if (rewardInfo.ShowOnHomeView) { rewards.Add(rewardInfo.Name); } } if (rewards.Any()) { attackerRewardString = $" Attacker: ({ string.Join(", ", rewards)})"; } } if (invasion.DefenderRewardItems.SafeAny()) { List <string> rewards = new List <string>(); foreach (var reward in invasion.DefenderRewardItems) { InvasionReward rewardInfo = invasionRewardNames.SingleOrDefault(x => x.UniqueName == reward.ItemUniqueName); if (rewardInfo == null) { rewards.Add(reward.ItemUniqueName.Split('/').Last()); } else if (rewardInfo.ShowOnHomeView) { rewards.Add(rewardInfo.Name); } } if (rewards.Any()) { defenderRewardString = $" Defender: ({string.Join(", ", rewards)})"; } } if (!string.IsNullOrWhiteSpace(attackerRewardString) || !string.IsNullOrWhiteSpace(defenderRewardString)) { invasion.SolNode = solNodes[invasion.Node]; message = $"{invasion.SolNode.Name} "; if (invasion.IsBlocked) { message += "(Currently blocked by another invasion) "; } message += $"Invasion Rewards:{Environment.NewLine}"; if (!string.IsNullOrWhiteSpace(attackerRewardString)) { message += attackerRewardString; } if (!string.IsNullOrWhiteSpace(attackerRewardString) && !string.IsNullOrWhiteSpace(defenderRewardString)) { message += Environment.NewLine; } if (!string.IsNullOrWhiteSpace(defenderRewardString)) { message += defenderRewardString; } new PushBulletHelper().SendNotificationToCellPhone(message, appSecrets); sentNotificationRepo.Add(new SentNotification { Type = TypeName, DataID = invasion.ID }); } } }