Exemplo n.º 1
0
        public ObjectVsObjectDO(ObjectScore objScore, string tourId, string tourType, int tourNumber)
        {
            _objScore     = objScore;
            _tourType     = tourType;
            TourIdentfier = tourId;
            _tourNumber   = tourNumber;

            KillsOf  = _objScore.KillsOf;
            KillsIn  = _objScore.KillsIn;
            KilledBy = _objScore.KilledBy;
            DiedIn   = _objScore.DiedIn;
        }
Exemplo n.º 2
0
        /// <summary>
        /// </summary>
        /// <param name="squad"></param>
        /// <param name="tourNumber"></param>
        /// <param name="reloadPilotsRequired"></param>
        /// <returns></returns>
        public AcesHighPilotStats BuildSquadStatsObject(Squad squad, int tourNumber, ref bool reloadPilotsRequired)
        {
            var tourIdentifier = "";
            var tourType       = "";

            var tourStats = new Dictionary <string, ObjectScore>();

            // FOR EACH PILOT IN SQUAD
            foreach (var squadMember in squad.Members.Where(member => Registry.PilotStatsContains(member.PilotName)))
            {
                // get pilot's registry.
                var pilotReg = Registry.GetPilotStats(squadMember.PilotName);

                // If Pilot wasnt in this sqaud for this tour, dont count their data
                if (!squad.WasPilotInSquadForThisTour(tourNumber, squadMember))
                {
                    continue;
                }

                // FOR EACH MODEL
                foreach (var objVsObj in pilotReg.ObjVsObjCompleteList.Where(objVsObj => objVsObj.TourNumber == tourNumber))
                {
                    if (tourIdentifier == "")
                    {
                        tourIdentifier = objVsObj.TourIdentfier;
                    }

                    if (tourType == "")
                    {
                        tourType = objVsObj.TourType;
                    }

                    if (!tourStats.ContainsKey(objVsObj.Model))
                    {
                        // doesnt exist yet? create new one and add.
                        var thisObjvObj = new ObjectScore
                        {
                            Model    = objVsObj.Model,
                            KilledBy = objVsObj.KilledBy,
                            KillsIn  = objVsObj.KillsIn,
                            KillsOf  = objVsObj.KillsOf,
                            DiedIn   = objVsObj.DiedIn
                        };
                        if (objVsObj.DiedIn == null)
                        {
                            reloadPilotsRequired = true;
                        }

                        tourStats.Add(thisObjvObj.Model, thisObjvObj);
                    }
                    else
                    {
                        // get existing objects reference and add to it.
                        var thisObjvObj = tourStats[objVsObj.Model];
                        thisObjvObj.KilledBy += objVsObj.KilledBy;
                        thisObjvObj.KillsIn  += objVsObj.KillsIn;
                        thisObjvObj.KillsOf  += objVsObj.KillsOf;
                        thisObjvObj.DiedIn   += objVsObj.DiedIn;
                        if (objVsObj.DiedIn == null)
                        {
                            reloadPilotsRequired = true;
                        }
                    }
                }
            }

            var squadStatsObj = new AcesHighPilotStats();

            Utility.ConstructAcesHighPilotStatsInnerObjects(ref squadStatsObj, tourStats.Count);
            squadStatsObj.GameId      = squad.SquadName;
            squadStatsObj.TourId      = tourNumber.ToString();
            squadStatsObj.TourType    = tourType;
            squadStatsObj.TourDetails = tourIdentifier;

            // copy the list content to bounded sized array.
            var i = 0;

            foreach (var obj in tourStats.Values)
            {
                squadStatsObj.VsObjects.ObjectScore[i++] = obj;
            }

            return(squadStatsObj);
        }
        public async Task AddScore(ObjectScore objectScore)
        {
            await _context.ObjectScores.AddAsync(objectScore);

            await _context.SaveChangesAsync();
        }
Exemplo n.º 4
0
        public async Task <IActionResult> CreateScore([FromBody] ObjectScore objectScore)
        {
            await _service.AddScore(objectScore);

            return(Ok());
        }