Example #1
0
        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();
                }
            }
        }
Example #3
0
        /// <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));
        }
Example #5
0
        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);
            }
        }
Example #6
0
        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);
        }
Example #7
0
        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);
        }
Example #8
0
 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));
 }
Example #9
0
        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);
        }
Example #10
0
    /* 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);
        }