private void OnUnSelectAttackRoute(UserParty party) { var target = AttackParties.SingleOrDefault(x => x.Id == party.Id); var userParty = UserParties.SingleOrDefault(x => x.Party.Value.Id == party.Id); //凸ルート編成後にユーザーパーティを消す場合があるので必ずチェックする if (userParty != null) { userParty.IsSelectedRoute.Value = false; } if (userParty == null) { var result = MessageBox.Show("マイパーティ一覧から既にこの編成が消えています。\nこの編成をマイパーティに追加して凸ルートから削除しますか?", "警告", MessageBoxButton.YesNoCancel); if (result == MessageBoxResult.Yes) { var newParty = new UserParty(party.UserUnits, party.Comment, party.EstimateDamage); Database.I.AddParty(newParty); } else if (result == MessageBoxResult.Cancel) { return; } } AttackParties.Remove(target); CheckDoubling(); }
private void OnSelectAttackRoute(UserParty party, bool isSelect) { if (isSelect) { AttackParties.Add(new AttackRouteListElementViewModel(party, OnUnSelectAttackRoute)); } else { var target = AttackParties.SingleOrDefault(x => x.Id == party.Id); AttackParties.Remove(target); } CheckDoubling(); }
private void SaveAttackRoute() { if (AttackParties.Count == 0) { MessageBox.Show("凸ルートを編成してください"); return; } if (m_CurrentAttackRoute == null) { m_CurrentAttackRoute = new UserAttackRoute(AttackParties.ToArray().Select(x => x.Party), AttackRouteComment.Value); CurrentRouteId.Value = m_CurrentAttackRoute.Id; } else { m_CurrentAttackRoute.Save(AttackParties.Select(x => x.Party), AttackRouteComment.Value); } Database.I.SaveAttackRoute(new UserAttackRoute(m_CurrentAttackRoute)); MessageBox.Show("保存しました"); }
private void CreateNewAttackRoute() { if (m_CurrentAttackRoute != null || AttackParties.Count > 0) { var res = MessageBox.Show("未保存の凸ルートは破棄されます。よろしいですか?", "確認", MessageBoxButton.OKCancel); if (res == MessageBoxResult.Cancel) { return; } } AttackParties.Clear(); m_CurrentAttackRoute = null; CurrentRouteId.Value = string.Empty; AttackRouteComment.Value = string.Empty; foreach (var vm in UserParties) { vm.IsSelectedRoute.Value = false; } }
private void OnChangeUserParty(UserParty party) { var userPartyIndex = UserParties.ToList().FindIndex(x => x.Id == party.Id); if (userPartyIndex >= 0) { UserParties[userPartyIndex].UpdateParty(party);; var parties = UserParties.ToArray(); UserParties.Clear(); UserParties.AddRange(parties.OrderByDescending(x => x.Party.Value.CreateTime)); } var attackRouteIndex = AttackParties.ToList().FindIndex(x => x.Id == party.Id); if (attackRouteIndex >= 0) { AttackParties[attackRouteIndex].UpdateParty(party); CheckDoubling(); } }
private void OpenAttackRoute(UserAttackRoute route) { if (m_CurrentAttackRoute != null || AttackParties.Count > 0) { var res = MessageBox.Show("未保存の凸ルートは破棄されます。よろしいですか?", "確認", MessageBoxButton.OKCancel); if (res == MessageBoxResult.Cancel) { return; } } m_CurrentAttackRoute = route; CurrentRouteId.Value = route.Id; AttackRouteComment.Value = route.Comment ?? string.Empty; AttackParties.Clear(); AttackParties.AddRange(route.RouteParties.Select(x => new AttackRouteListElementViewModel(x, OnUnSelectAttackRoute))); var routeIds = route.RouteParties.Select(x => x.Id).ToArray(); foreach (var vm in UserParties) { vm.IsSelectedRoute.Value = routeIds.Contains(vm.Id); } }