public IList <TabReportOut> GetReportItems(IDbConnection connection, int currentUserId, int lastReportId) { var collection = _getReportItemsList(connection, currentUserId, lastReportId); TabReportOut.InitComplexBtnCollection(collection); return(collection); }
public IPlanshetViewData InitialPlanshet(IDbConnection connection, int currentUserId, List <int> userPlanetIds = null) { if (userPlanetIds == null) { var up = _gDetailPlanetService.GetUserPlanets(connection, currentUserId); userPlanetIds = up.Select(i => i.Id).ToList(); } #region Task var taskTab = new TabTaskOut { MotherJump = _motherJumpService.GetJumpTaskModel(connection, currentUserId), Collection = _uTaskService.GetActiveTask(connection, currentUserId, SetTaskItem, userPlanetIds) }; taskTab.TaskButtons(); TabTaskOut.InitComplexBtnCollection(taskTab.Collection); #endregion #region Report var reportTab = new TabReportOut { Collection = _getReportItemsList(connection, currentUserId), TotalItems = _uReportService.GetTotalUserReports(connection, currentUserId), }; TabReportOut.InitComplexBtnCollection(reportTab.Collection); #endregion #region Spy var spyCollection = _getSpyItemsList(connection, currentUserId); var spyTab = new TabSpyOut { Collection = spyCollection, TotalItems = _uSpyService.GetTotalUserSpyReports(connection, currentUserId), Buttons = new List <IButtonsView> { ButtonsView.NewSpyItemFromSerch() } }; TabSpyOut.InitComplexBtnCollection(spyTab.Collection); #endregion return(JournalOut.InitialTabs(taskTab, reportTab, spyTab, _localizer)); }
public TabReportOut GetReportItemByTaskId(IDbConnection connection, int currentUserId, int taskId) { var userId = currentUserId; var task = _uTaskService.GetByTaskId(connection, taskId, true); var reportItem = _uReportService.GetUserReportByTaskId(connection, userId, taskId, i => i); var reportInfo = SetReportItem(userId, new List <UserTaskDataModel> { task })(reportItem); if (reportItem == null) { throw new Exception(Error.NoData); } TabReportOut.InitComplexBtnItem(reportInfo); return(reportInfo); }
public Func <UserReportDataModel, TabReportOut> SetReportItem(int userId, List <UserTaskDataModel> tasks) { return(i => { var doneTask = tasks.Single(t => t.Id == i.TaskId); if (doneTask == null) { throw new NullReferenceException(Error.NoData); } var jumpToPlanetoid = ImageView.Img(_spriteImages.MapControlIcons("jumptoplanetoid").Icon, doneTask.TargetPlanetName, false, doneTask.TargetPlanetName); var isLose = !(i.AtackerWin && userId == i.AtackerUserId || !i.AtackerWin && userId == i.DefenderUserId); var report = new TabReportOut { Id = i.Id, CurrentUserIsAtacker = i.AtackerUserId == userId, SourceUserName = i.AtackerUserName, SourceReportHangar = ReportFleetOut.ConvertBattleFleetsToReportFleetView(i.AtackerSummaryReport), TargetUserName = i.DefenderUserName, TargetReportHangar = ReportFleetOut.ConvertBattleFleetsToReportFleetView(i.DefenderSummaryReport), AtackerIsSkagry = i.AtackerIsSkagry, TargetPlanetId = doneTask.TargetPlanetId, TargetPlanetName = doneTask.TargetPlanetName, TargetSystemName = doneTask.TargetPlanetName.Substring(0, 5), Date = UnixTime.GetDateFromTimeStamp(i.BattleTime), TimeNow = UnixTime.GetTimeFromTimeStamp(i.BattleTime), TargetResource = i.Resources.ConvertToInt(), //todo временно назначен LeftImage = doneTask.SourceOwnType ? jumpToPlanetoid : ImageView.Img(_spriteImages.MapControlIcons("jumptomother").Icon, null, false, null), RightImage = jumpToPlanetoid, // RightImage = ImageView.Img("r-RightImage"), //todo сделать аву для скагрей IsLose = isLose }; return report; }); }
// todo не работает public TabReportOut CreateReportItem(IDbConnection connection, string id) { throw new NotImplementedException("ReportItem(string id) метод не работает проверить место вызова"); var random = new Random(); var randPlanetId = random.Next(300, 500); var tmpSorce = false; var tPlanet = _gDetailPlanetService.GetPlanet(connection, randPlanetId, i => i); var systemName = _geometryPlanetService.GetPlanetSystemName(connection, randPlanetId); var tUser = _gameUserService.GetGameUser(connection, tPlanet.UserId); var j = new TabReportOut { Id = 300, TargetUserName = tUser.Nickname, TargetSystemName = systemName, TargetPlanetName = tPlanet.Name, TargetResource = tPlanet.Resources.Current.ConvertToInt(), SourceOwnType = false, SourceUserName = "", //get user //TargetHangar = HangarUnitsOut.EmptyHangar(), //todo временно назначен LeftImage = (!tmpSorce) ? ImageView.Img(_spriteImages.MapControlIcons("jumptomother").Icon) : ImageView.Img(_spriteImages.MapControlIcons("jumptoplanetoid").Icon), RightImage = ImageView.Img(_spriteImages.MapControlIcons("jumptoplanetoid").Icon), // RightImage = ImageView.Img("r-RightImage"), Date = UnixTime.GetDateFromTimeStamp(DateTime.UtcNow), TimeNow = UnixTime.GetTimeFromTimeStamp(DateTime.UtcNow) }; if (tmpSorce) { } return(j); }
public void NotyfyTaskFinished(UserTaskDataModel finishedTask, UserReportDataModel report = null, int?newTotalWinnerUserCc = null) { IDbConnection connection = null; // коннекшен для этого метода не нужен, это часть интерфейса if (!finishedTask.TaskEnd) { throw new NotImplementedException("NotyfyTaskFinished: finishedTask.TaskEnd = false"); } IList <ConnectionUser> hubUsers; if (finishedTask.IsTransfer) { hubUsers = _hubCache.LocalFind(connection, (key, val) => val.UserId == finishedTask.SourceUserId); if (hubUsers == null || hubUsers.Count != 1 || !hubUsers[0].Connected) { return; } _hub.Clients.Client(hubUsers[0].ConnectionId).InvokeAsync("journalOnTaskFinished", new { Task = finishedTask, TabReportOut = 0 }); return; } if (report == null) { return; } hubUsers = _hubCache.LocalFind(connection, (key, val) => val.UserId == report.AtackerUserId || val.UserId == report.DefenderUserId); if (hubUsers == null || hubUsers.All(i => !i.Connected)) { return; } var atakerUsers = hubUsers.Where(i => i.UserId == report.AtackerUserId).ToList(); var defendorUsers = hubUsers.Where(i => i.UserId == report.DefenderUserId).ToList(); ConnectionUser ataker = null; ConnectionUser defendor = null; if (atakerUsers.Any() && atakerUsers.Count == 1 && atakerUsers[0].Connected) { ataker = atakerUsers[0]; } if (defendorUsers.Any() && defendorUsers.Count == 1 && defendorUsers[0].Connected) { defendor = defendorUsers[0]; } if (ataker != null) { var client = _hub.Clients.Client(ataker.ConnectionId); if (client != null) { L10N.SetCulture(ataker.Lang); var atakerReport = _journalOut.SetReportItem(report.AtackerUserId, new List <UserTaskDataModel> { finishedTask })( report.CloneDeep()); TabReportOut.InitComplexBtnItem(atakerReport); client.InvokeAsync("journalOnTaskFinished", new { Task = finishedTask, TabReportOut = atakerReport, NewTotalWinnerUserCc = newTotalWinnerUserCc != null && !atakerReport.IsLose ? newTotalWinnerUserCc : null }); } } if (defendor != null) { var client = _hub.Clients.Client(defendor.ConnectionId); if (client != null) { L10N.SetCulture(defendor.Lang); var defendorReport = _journalOut.SetReportItem(report.DefenderUserId, new List <UserTaskDataModel> { finishedTask })(report.CloneDeep()); TabReportOut.InitComplexBtnItem(defendorReport); client.InvokeAsync("journalOnTaskFinished", new { Task = finishedTask, TabReportOut = defendorReport, NewTotalWinnerUserCc = newTotalWinnerUserCc != null && !defendorReport.IsLose ? newTotalWinnerUserCc : null }); } } }