private void ConfigureServices(IServiceCollection services) { var trainer = new TrainerDetails() { Guid = trainerID, Name = "Jan Paweł II" }; var trainerResult = Maybe <TrainerDetails> .From(trainer); var trainerProviderMock = new Mock <ITrainerProvider>(MockBehavior.Strict); trainerProviderMock.Setup(x => x.GetTrainerDetails(trainerID)).Returns(Task.FromResult(trainerResult)); trainerProviderMock.Setup(x => x.GetTrainerDetails(It.IsAny <IReadOnlyCollection <Guid> >())).Returns(Task.FromResult(new[] { trainerResult.Value } as IReadOnlyCollection <TrainerDetails>)); var editionProviderMock = new Moq.Mock <DependentServices.IEditionProvider>(); editionProviderMock .Setup(x => x.GetEdition(1)) .Returns(Task.FromResult(Maybe <DependentServices.EditionDetails> .From(new DependentServices.EditionDetails() { Id = 1, StartDateTime = new NodaTime.LocalDateTime(2019, 09, 01, 00, 00).InMainTimezone().ToOffsetDateTime().ToInstant(), EndDateTime = new NodaTime.LocalDateTime(2020, 06, 30, 00, 00).InMainTimezone().ToOffsetDateTime().ToInstant() }))); services.AddSingleton <DependentServices.IEditionProvider>(editionProviderMock.Object); services.AddSingleton (Mock.Of <Engine.Infrastructure.IRequestAuthorizationAnalyzer>( x => x.Authorize(It.IsAny <IBaseRequest>()) == Task.FromResult(Microsoft.AspNetCore.Authorization.AuthorizationResult.Success()))); services.Remove <NodaTime.IClock>(); services.AddSingleton <NodaTime.IClock>(NodaTime.Testing.FakeClock.FromUtc(2019, 08, 01)); services.AddSingleton(trainerProviderMock.Object); }
public async Task GetSubProgramName(Guid subProgramId) { var program = await _pMTEntityContext.PMT_SubPrograms.Where(s => s.SubProgramId == subProgramId).ToListAsync(); if (program != null && program.Any()) { SubDescription = program.FirstOrDefault().Description; SubProgramName = program.FirstOrDefault().SubProgramName; var trainerPrograms = await _pMTEntityContext.PMT_TrainerProgramDetails.Where(s => s.SubProgramLevelId == SubProgramLevel.SubProgramLevelID).ToListAsync(); if (trainerPrograms.Any()) { var trainerIds = trainerPrograms.Select(s => s.TrainerId).Distinct(); var trainerDetails = await _pMTEntityContext.PMT_TrainerDetails.Where(p => trainerIds.Contains(p.TrainerId) && !p.IsDeleted).ToListAsync(); if (trainerDetails != null && trainerDetails.Any()) { TrainerDetails = trainerDetails.Where(s => trainerIds.Contains(s.TrainerId)).ToList(); } TotalTrainerCount = TrainerDetails.Count(); } } }
/// <summary> /// Load Trainer Details /// </summary> private void LoadTrainerDetails() { dtTrainers = new DataTable(); _objTrainers = new TrainerDetails(); dtTrainers = _objTrainers.LoadTrainers(); DataRow dr = dtTrainers.NewRow(); dr[0] = 0; dr[1] = "-- Select Trainer --"; dtTrainers.Rows.InsertAt(dr, 0); cmBxTrainers.DataSource = dtTrainers; cmBxTrainers.DisplayMember = "Name"; cmBxTrainers.ValueMember = "UserId"; }
private void ConfigureServices(IServiceCollection services) { var trainer = new TrainerDetails() { Guid = trainerID, Name = "Jan Paweł II" }; var trainerProviderMock = new Mock <ITrainerProvider>(); trainerProviderMock.Setup(x => x.GetTrainerDetails(trainerID)).Returns(Task.FromResult(Maybe <TrainerDetails> .From(trainer))); trainerProviderMock.Setup(x => x.GetTrainerDetails(It.IsAny <IReadOnlyCollection <Guid> >())).Returns(Task.FromResult(new[] { trainer } as IReadOnlyCollection <TrainerDetails>)); ConfigureServicesBase(services); services.AddSingleton <NodaTime.IClock>(NodaTime.Testing.FakeClock.FromUtc(2019, 08, 01)); services.Remove <ITrainerProvider>(); services.AddSingleton(trainerProviderMock.Object); services.AddSingleton(Mock.Of <IUserAccessor>(mock => mock.GetUser() == Task.FromResult(new Models.Users.ApplicationUser() { Id = trainerID, UserName = "******" }), MockBehavior.Strict)); }
public TrainerDetails getTrainerDetails(long trainerid) { TrainerDetails tDetails = null; using (SqlConnection connect = ConnectionHandler.getConnection()) { List <TrainerDetails> trainerDetailsList = new List <TrainerDetails>(); connect.Open(); SqlCommand cmd = new SqlCommand("select * from trainer ta join trainerAvailability t on ta.trainerId=t.trainer_Id where trainer_Id=@trainerId ", connect); cmd.Parameters.AddWithValue("@trainerId", trainerid); SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); connect.Close(); DataTable dt = ds.Tables[0]; foreach (DataRow dr in dt.Rows) { tDetails = new TrainerDetails((long.Parse(dr["trainerId"].ToString())), dr["first_name"].ToString(), dr["last_name"].ToString(), dr["gender"].ToString(), long.Parse(dr["contact_no"].ToString()), long.Parse(dr["age"].ToString()), dr["userid"].ToString(), dr["emailId"].ToString(), dr["description"].ToString(), dr["availability_status"].ToString(), DateTime.Parse(dr["startDate"].ToString()), DateTime.Parse(dr["enddate"].ToString())); } return(tDetails); } }
private async Task <Details.TrainingDetails> BuildCurrentTrainingDetails(Training training, TrainerDetails trainer) { var invitedCandidates = _enrollmentRepo.Query() .Where(x => x.SelectedTraining != null && x.SelectedTraining.ID == training.ID) .Select(x => BuildCurrentTrainingParticipant(x, training)) .ToArray(); var preferringCandidates = _enrollmentRepo.Query() .Where(x => x.PreferredTrainings.Select(y => y.ID).Contains(training.ID)) .Select(x => BuildCurrentTrainingParticipant(x, training)) .ToArray(); var details = new Details.CurrentTrainingDetails() { Timing = TrainingTiming.Current, InvitedCandidates = invitedCandidates, PreferringCandidates = preferringCandidates }; await FixupCommonProperties(details, training, trainer); return(details); }
private async Task <Details.TrainingDetails> BuildFutureTrainingDetails(Training training, TrainerDetails trainer, Instant now) { var invitedCandidates = _enrollmentRepo.Query() .Where(x => x.SelectedTraining != null && x.SelectedTraining.ID == training.ID) .Select(x => BuildFutureParticipant(x, training)) .ToArray(); var preferringCandidates = _enrollmentRepo.Query() .Where(x => x.PreferredTrainings.Select(y => y.ID).Contains(training.ID)) .Select(x => BuildFutureParticipant(x, training)) .ToArray(); var details = new Details.FutureTrainingDetails() { Timing = TrainingTiming.Future, InvitedCandidates = invitedCandidates, PreferringCandidates = preferringCandidates.ToArray(), AvailableCandidates = preferringCandidates .Where(x => x.HasAccepted == false && x.HasResignedPermanently == false && (x.HasResignedTemporarily == false || x.ResignationEndDate == null || x.ResignationEndDate < training.StartDateTime.Date)) .ToArray() }; await FixupCommonProperties(details, training, trainer); return(details); }
private async Task FixupCommonProperties(Details.TrainingDetails details, Training training, TrainerDetails trainer) { details.Id = training.ID; details.City = training.City; details.Address = training.Address; details.Start = training.StartDateTime; details.End = training.EndDateTime; details.CoordinatorId = trainer.Guid; details.CoordinatorName = trainer.Name; details.Duration = training.EndDateTime - training.StartDateTime; details.Notes = await Task.WhenAll(training.Notes .Select(BuildTrainingNote)); }
private async Task <Details.TrainingDetails> BuildPastTrainingDetails(Training training, TrainerDetails trainer) { var invitedCandidates = _enrollmentRepo.Query() .Where(x => x.SelectedTraining != null && x.SelectedTraining.ID == training.ID) .Select(x => BuildPastParticipant(x, training)) .ToArray(); var preferringCandidates = _enrollmentRepo.Query() .Where(x => x.PreferredTrainings.Select(y => y.ID).Contains(training.ID)) .Select(x => BuildPastParticipant(x, training)) .ToArray(); var details = new Details.PastTrainingDetails() { Timing = TrainingTiming.Past, InvitedCandidates = invitedCandidates, UnreportedCandidates = invitedCandidates .Where(x => x.IsUnreported).ToArray(), PresentCandidates = invitedCandidates .Where(x => x.WasPresentAndAcceptedAsLecturer || x.WasPresentButDidNotAcceptedAsLecturer).ToArray(), AbsentCandidates = invitedCandidates .Where(x => x.WasAbsent).ToArray(), PreferringCandidates = preferringCandidates }; await FixupCommonProperties(details, training, trainer); return(details); }
/* Data CSV Columns: * npc id (int) * gym id (int, if applicable otherwise blank for null) * name (string) * challenge message (string) * chat message (string) * defeat messages (strings separated by ';') * battle background resource name (string) * class (string for trainer's trainer class) * mode (string for trainer's npc battle participant mode) * (for gym leaders) healing item id (int or blank) * (for gym leaders) max times healed (int or blank) * [for each of 6 pokemon:] * pmon i's species id (int) * pmon i's gender (m/f/{blank}) * pmon i's level (int) * pmon i's evs (6 ints separated by ';') * pmon i's ivs (6 ints separated by ';') * pmon i's move ids (4 ints separated by ';' or blank if should use defaults) */ public static void LoadData() { List <TrainerDetails> details = new List <TrainerDetails>(); string[][] data = CSV.ReadCSVResource(dataPath, ignoreDataFirstLine); foreach (string[] entry in data) { int id, leaderHealingItemId, leaderMaxTimesHealed; int? gymId; string name, challengeMessage, chatMessage, battleBackgroundResourceName; string[] defeatMessages; TrainerClass.Class trainerClass; BattleParticipantNPC.Mode mode; List <PokemonInstance.BasicSpecification> pmonList; if (entry.Length < 47) { Debug.LogWarning("Invalid trainers details to load - " + entry); continue; } // Id if (!int.TryParse(entry[0], out id)) { Debug.LogWarning("Invalid id for trainer details - " + entry[0]); continue; } // Gym id if (entry[1] == "") { gymId = null; } else { if (int.TryParse(entry[1], out int gymIdParsed)) { gymId = gymIdParsed; } else { Debug.LogWarning("Invalid gym id for trainer details id - " + id); continue; } } // Name name = entry[2]; // Challenge message challengeMessage = entry[3]; // Chat message chatMessage = entry[4]; // Defeat messages string defeatMessagesEntry = entry[5]; if (defeatMessagesEntry == "") { defeatMessages = new string[0]; } else { defeatMessages = defeatMessagesEntry.Split(';'); } // Battle background resource string battleBackgroundResourceNameEntry = entry[6]; if (battleBackgroundResourceNameEntry == "") { battleBackgroundResourceName = BattleEntranceArguments.defaultBackgroundName; } else { battleBackgroundResourceName = battleBackgroundResourceNameEntry; } // Trainer class if (!TrainerClass.TryParse(entry[7], out trainerClass)) { Debug.LogWarning("Invalid trainer class for trainer details id - " + id); continue; } // Mode string modeEntry = entry[8]; if (modeEntry == "") { if (gymId == null) { mode = BattleParticipantNPC.defaultTrainerMode; } else { mode = BattleParticipantNPC.defaultGymLeaderMode; } } else if (!BattleParticipantNPC.TryParse(modeEntry, out mode)) { Debug.LogWarning("Invalid trainer class for trainer details id - " + id); continue; } // Gym leader healing settings string leaderHealingItemIdEntry = entry[9]; if (leaderHealingItemIdEntry == "") { leaderHealingItemId = Battle.NPCBattleParticipantModes.GymLeader.defaultHealingItemId; } else { if (!int.TryParse(leaderHealingItemIdEntry, out leaderHealingItemId)) { Debug.LogError("Invalid leader healing item id for trainer id - " + id); leaderHealingItemId = Battle.NPCBattleParticipantModes.GymLeader.defaultHealingItemId; } else { Items.Item item = Items.Item.GetItemById(leaderHealingItemId); if (item == null || !(item is Items.MedicineItems.HealthMedicineItem)) { Debug.LogError("Inappropriate leader healing item id for trainer id - " + id); leaderHealingItemId = Battle.NPCBattleParticipantModes.GymLeader.defaultHealingItemId; } } } string leaderMaxTimesHealedEntry = entry[10]; if (leaderMaxTimesHealedEntry == "") { leaderMaxTimesHealed = Battle.NPCBattleParticipantModes.GymLeader.defaultMaxTimesHealed; } else if (!int.TryParse(leaderMaxTimesHealedEntry, out leaderMaxTimesHealed)) { Debug.LogError("Invalid leader max times healed entry for trainer id - " + id); } // Pokemon pmonList = new List <PokemonInstance.BasicSpecification>(); bool invalidPokemonFound = false; for (int pmonIndex = 0; pmonIndex < PlayerData.partyCapacity; pmonIndex++) { const int pmonEntryCount = 6; int indexOffset = 11 + (pmonIndex * pmonEntryCount); int speciesId; bool? gender; byte level; Stats <byte> evs, ivs; int[] moveIds; bool useDefaultMoves; // Species id string idEntry = entry[indexOffset]; if (idEntry == "") // Pokemon not set { continue; } else if (!int.TryParse(idEntry, out speciesId)) { Debug.LogWarning("Invalid species id for pokemon for trainer details id - " + id); invalidPokemonFound = true; break; } // Gender switch (entry[indexOffset + 1].ToLower()) { case "m": gender = true; break; case "f": gender = false; break; case "": case "n": gender = null; break; default: Debug.LogWarning("Invalid gender for pokemon for trainer details id - " + id); invalidPokemonFound = true; gender = default; break; } if (invalidPokemonFound) { break; } // Level if (!byte.TryParse(entry[indexOffset + 2], out level)) { Debug.LogWarning("Invalid level for pokemon for trainer details id - " + id); invalidPokemonFound = true; break; } // EVs byte evAtk, evDef, evSpatk, evSpdef, evHp, evSpd; string[] evParts = entry[indexOffset + 3].Split(';'); try { evAtk = byte.Parse(evParts[0]); evDef = byte.Parse(evParts[1]); evSpatk = byte.Parse(evParts[2]); evSpdef = byte.Parse(evParts[3]); evHp = byte.Parse(evParts[4]); evSpd = byte.Parse(evParts[5]); } catch (FormatException) { Debug.LogWarning("Invalid evs entry for pokemon for trainer details id - " + id); invalidPokemonFound = true; break; } evs = new Stats <byte>() { attack = evAtk, defense = evDef, specialAttack = evSpatk, specialDefense = evSpdef, health = evHp, speed = evSpd }; // IVs byte ivAtk, ivDef, ivSpatk, ivSpdef, ivHp, ivSpd; string[] ivParts = entry[indexOffset + 4].Split(';'); try { ivAtk = byte.Parse(ivParts[0]); ivDef = byte.Parse(ivParts[1]); ivSpatk = byte.Parse(ivParts[2]); ivSpdef = byte.Parse(ivParts[3]); ivHp = byte.Parse(ivParts[4]); ivSpd = byte.Parse(ivParts[5]); } catch (FormatException) { Debug.LogWarning("Invalid ivs entry for pokemon for trainer details id - " + id); invalidPokemonFound = true; break; } ivs = new Stats <byte>() { attack = ivAtk, defense = ivDef, specialAttack = ivSpatk, specialDefense = ivSpdef, health = ivHp, speed = ivSpd }; // Move ids string movesEntry = entry[indexOffset + 5]; if (movesEntry == "") { useDefaultMoves = true; moveIds = default; } else { useDefaultMoves = false; moveIds = new int[4] { -1, -1, -1, -1 }; int movesIdsIndex = 0; foreach (string s in movesEntry.Split(';')) { if (int.TryParse(s, out int moveId)) { moveIds[movesIdsIndex++] = moveId; } else { Debug.LogWarning("Invalid move id for pokemon for trainer details id - " + id); invalidPokemonFound = true; break; } } if (invalidPokemonFound) { break; } } // Add to list PokemonInstance.BasicSpecification pokemon = new PokemonInstance.BasicSpecification() { speciesId = speciesId, gender = PokemonInstance.BasicSpecification.GetGenderEnumVal(gender), useAutomaticMoves = useDefaultMoves, moveIds = moveIds, level = level, EVs = evs, IVs = ivs }; pmonList.Add(pokemon); } if (invalidPokemonFound) { continue; } // Add entry TrainerDetails trainer = new TrainerDetails() { id = id, gymId = gymId, name = name, challengeMessage = challengeMessage, chatMessage = chatMessage, defeatMessages = defeatMessages, battleBackgroundResourceName = battleBackgroundResourceName, trainerClass = trainerClass, mode = mode, leaderHealingItemId = leaderHealingItemId, leaderMaxTimesHealed = leaderMaxTimesHealed, pokemonSpecifications = pmonList.ToArray() }; details.Add(trainer); } registry.SetValues(details.ToArray()); }
public void UpdateTrainerDetails([FromBody] TrainerDetails td) { BenefitSystem b = new BenefitSystem(); b.UpdateTrainerDetails(td); }