예제 #1
0
        public static List <MatchModel> AddCompetitorToMatch(CompetitorModel comp, MatchModel match, List <MatchModel> matches)
        {
            DataAccess.AddCompetitorToEvent(comp, match);

            MatchModel newComp = new MatchModel();

            newComp.CompetitorId = comp.CompetitorId;
            newComp.MatchId      = match.MatchId;
            newComp.Age          = comp.Age;
            newComp.DisplayName  = comp.DisplayName;
            newComp.DojoName     = comp.DojoName;
            newComp.Gender       = comp.Gender;
            newComp.RankName     = comp.RankName;
            newComp.Weight       = comp.Weight;
            newComp.Height       = comp.Height;
            newComp.Children     = new List <MatchModel>();

            foreach (MatchModel m in matches)
            {
                if (m.MatchId == match.MatchId)
                {
                    m.Children.Add(newComp);
                    break;
                }
            }

            return(matches);
        }
예제 #2
0
        /// <summary>
        /// Matches the partner.
        /// </summary>
        protected void MatchPartners()
        {
            // Iterate through each competitor that does not have a partner yet
            foreach (CompetitorModel competitor in this.ScoreKeeperService.Competitors.Where(c => !c.HasPartner))
            {
                OpCodes partnerOpCode;

                // Hong partners with Chung and vice-versa
                switch (competitor.DeviceType)
                {
                case OpCodes.ChungRegistered: partnerOpCode = OpCodes.HongRegistered; break;

                case OpCodes.HongRegistered:  partnerOpCode = OpCodes.ChungRegistered; break;

                default: continue;     // skip anything we don't have a rule for
                }

                // Search for a matching competitor
                CompetitorModel partner = this.ScoreKeeperService.Competitors.FirstOrDefault(c => !c.HasPartner && c.DeviceType == partnerOpCode);

                // Assign the partners if we were successful
                if (partner != null)
                {
                    competitor.Partner = partner; // The model will do the work of reverse mating
                    this.Logger.Log("KickAndPunch matched " + competitor.DisplayName + " with " + partner.DisplayName, Category.Info, Priority.Low);
                }
            }
        }
예제 #3
0
 public ActionResult AddCompetitor(string name)
 {
     try
     {
         var competitor = new CompetitorModel
         {
             Name        = name,
             CreatedDate = DateTime.Now
         };
         var competitorBLL = new CompetitorBLL();
         competitorBLL.AddCompetitor(competitor);
         var message = new MessageResult <CompetitorModel>
         {
             isError    = false,
             ResultList = null,
             Message    = "Success",
             Result     = null
         };
         return(Json(message, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         var message = new MessageResult <ClientModel>
         {
             isError    = true,
             ResultList = null,
             Message    = ex.Message,
             Result     = null
         };
         return(Json(message, JsonRequestBehavior.AllowGet));
     }
 }
예제 #4
0
        /// <summary>
        /// Called when the receiver reports data from a device indicating a hit has registered.
        /// We need to update the scorekeeper service if a game is in progress.
        /// </summary>
        /// <param name="deviceData">The sensor impact data.</param>
        protected void OnSensorHit(DeviceDataEventArgs deviceData)
        {
            CompetitorModel competitor = this.ScoreKeeperService.Competitors.FirstOrDefault(c => c.DeviceId.Equals(deviceData.DeviceId));

            if (competitor != null)
            {
                byte impactLevel = Math.Max(deviceData.HeadHitValue, deviceData.VestHitValue);

                // If we are in partnering mode, we need to flip to award score/impact to the correct person
                if (competitor.HasPartner)
                {
                    competitor = competitor.Partner;
                }

                competitor.LastImpactLevel = impactLevel;

                if (!this.StopWatchService.IsRunning && this.StopWatchService.DisplayTime == this.StopWatchService.Duration)
                {
                    competitor.Score = competitor.HighestImpactLevel;
                }
                else if (this.StopWatchService.IsRunning && impactLevel >= competitor.RequiredImpactLevel)
                {
                    competitor.Score += 1; // TODO: Allow configurable points
                    this.Logger.Log("KickAndPunch score for " + competitor.DisplayName + " is now " + competitor.Score, Category.Info, Priority.Low);
                }
            }
        }
        /// <summary>
        /// Gets the meter view and wires up the competitor to it
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns></returns>
        private MeterView GetMeterView(CompetitorModel model)
        {
            // Note: This should probably be refactored into a factory class somewhere!!!!!

            var meter = this.container.GetExportedValue <MeterView>();

            meter.ViewModel.HasPanels         = model.DeviceType == OpCodes.TargetRegistered;
            meter.ViewModel.Competitor        = model;
            meter.ViewModel.CloseMeterCommand = new DelegateCommand(delegate
            {
                model.UnPartner();
                this.scoreKeeperService.Competitors.Remove(model);
            });
            meter.ViewModel.MoveMeterRightCommand = new DelegateCommand(delegate
            {
                var pos = this.Meters.IndexOf(meter);
                if (pos + 1 < this.Meters.Count)
                {
                    this.Meters.Move(pos, pos + 1);
                }
            });
            meter.ViewModel.MoveMeterLeftCommand = new DelegateCommand(delegate
            {
                var pos = this.Meters.IndexOf(meter);
                if (pos > 0)
                {
                    this.Meters.Move(pos, pos - 1);
                }
            });

            return(meter);
        }
예제 #6
0
 public ActionResult UpdateCompetitor(int id, string name)
 {
     try
     {
         var competitor = new CompetitorModel
         {
             Id   = id,
             Name = name
         };
         var competitorBLL = new CompetitorBLL();
         competitorBLL.UpdateCompetitor(competitor);
         var message = new MessageResult <CompetitorModel>
         {
             isError    = false,
             ResultList = null,
             Message    = "Success",
             Result     = null
         };
         return(Json(message, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         var message = new MessageResult <ClientModel>
         {
             isError    = true,
             ResultList = null,
             Message    = ex.Message,
             Result     = null
         };
         return(Json(message, JsonRequestBehavior.AllowGet));
     }
 }
예제 #7
0
        /// <summary>
        /// Called when the receiver sends a status packet such as low battery or lost connection to us
        /// </summary>
        /// <param name="deviceStatus">The <see cref="LaJust.EIDSS.Communications.Entities.DeviceStatusEventArgs"/> instance containing the event data.</param>
        protected void OnStatusNotification(DeviceStatusEventArgs deviceStatus)
        {
            CompetitorModel competitor = this.ScoreKeeperService.Competitors.FirstOrDefault(c => c.DeviceId.Equals(deviceStatus.DeviceId));

            if (competitor != null)
            {
                competitor.DeviceStatus = deviceStatus.DeviceStatus;
            }
        }
        public IHttpActionResult Competitors()
        {
            var model    = new CompanyKeywordManager(this.config, this.clientUser).GetCompanies();
            var response = new CompetitorModel {
                CompanyName = this.clientUser.UserFilter.UserName
            };

            response.Competitors.AddRange(this.clientUser.CompetitorFilter.Select(i => i.UserName));
            return(this.Ok(response));
        }
예제 #9
0
 public IHttpActionResult PostReiniciarGanador()
 {
     if (CompetitorModel.ReiniciarGanador())
     {
         return(Json(new { status = true, info = "Reiniciar Registrado" }));
     }
     else
     {
         return(Json(new { status = false, info = "Ha ocurrido un problema al ingresar al reiniciar" }));
     }
 }
예제 #10
0
        public bool ValidateCompetitorExists(CompetitorModel competitor)
        {
            var competitors = _repository.Get(i => i.Name == competitor.Name).ToList();

            if (competitors.Count == 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
예제 #11
0
        public IHttpActionResult GetObtenerGanadorAnterior()
        {
            CompetitorModel ls = CompetitorModel.ObtenerGanadorAnterior();

            if (ls != null)
            {
                return(Json(new { status = true, data = ls }));
            }
            else
            {
                return(Json(new { status = false, info = "Error al obtener ganador anterior" }));
            }
        }
예제 #12
0
        public IHttpActionResult GetObtenerCompetitors()
        {
            List <CompetitorModel> ls = CompetitorModel.ObtenerTodos();

            if (ls != null)
            {
                return(Json(new { status = true, data = ls }));
            }
            else
            {
                return(Json(new { status = false, info = "Error al intentar obtener a los competidores" }));
            }
        }
예제 #13
0
 public void AddCompetitor(CompetitorModel competitor)
 {
     if (ValidateCompetitorExists(competitor))
     {
         TinyMapper.Bind <CompetitorModel, CompetitorEntity>();
         var competitorEntity = TinyMapper.Map <CompetitorEntity>(competitor);
         _repository.Insert(competitorEntity);
     }
     else
     {
         throw new Exception("Competitor already exists!");
     }
 }
예제 #14
0
 public void UpdateCompetitor(CompetitorModel competitor)
 {
     if (ValidateCompetitorExists(competitor))
     {
         Mapper.Initialize(cfg => cfg.CreateMap <CompetitorModel, CompetitorEntity>().ForMember(x => x.CreatedDate, opt => opt.Ignore()));
         var competitorEntity = _repository.Get(i => i.Id == competitor.Id).First();
         Mapper.Map(competitor, competitorEntity);
         competitorEntity.ModifiedDate = DateTime.Now;
         _repository.Update(competitorEntity);
     }
     else
     {
         throw new Exception("Competitor already exists!");
     }
 }
예제 #15
0
 public IHttpActionResult PostActualizarCuerpo(CompetitorModel ganador)
 {
     if (ganador != null)
     {
         if (CompetitorModel.ActualizarGanador(ganador.id))
         {
             return(Json(new { status = true, info = "Ganador Registrado" }));
         }
         else
         {
             return(Json(new { status = false, info = "Ha ocurrido un problema al ingresar al ganador" }));
         }
     }
     else
     {
         return(Json(new { status = false, info = "Los datos enviados son incorrectos" }));
     }
 }
예제 #16
0
        public static List <CompetitorModel> GetCompetitorModel(List <Competitor> mcs)
        {
            List <Models.CompetitorModel> model = new List <Models.CompetitorModel>();

            foreach (Competitor obj in mcs)
            {
                if (model.Any(m => m.CompetitorId == obj.CompetitorId))
                {
                    continue;
                }

                CompetitorModel mm = new CompetitorModel(obj);

                model.Add(mm);
            }

            return(model);
        }
예제 #17
0
        //Dynamic select options for enrollmember
        public List <SelectListItem> ApprovedEventList(int userID)
        {
            CompetitorModel comp = new CompetitorModel();

            comp.userID = userID;
            string query = "select e.eventID from eventclub as ec inner join club as c on ec.clubID = c.clubID inner join event as e on e.eventID = ec.eventID where userID = @userID  and startdate >= date('now')";

            competitorList = SqliteDataAccess.LoadManyObjects(comp, query);
            List <SelectListItem> events2 = new List <SelectListItem>();

            foreach (var obj in competitorList)
            {
                events2.Add(new SelectListItem {
                    Text = obj.eventID, Value = obj.eventID
                });
            }

            comp.eventList = events2;
            return(events2);
        }
예제 #18
0
        //Adds member to eventcompetitor if club is in eventclub table
        public ActionResult EnrollMember(CompetitorModel comp)
        {
            //checks if club is allowed to submit members for said event
            EnrolledUserModel obj = new EnrolledUserModel();

            obj.eventID = comp.eventID;
            obj.userID  = (int)HttpContext.Session.GetInt32("UserID");
            string query1 = "select * from eventclub as ec join club as c on ec.clubID = c.clubID where userID = @userID and ec.eventID = @eventID";

            Console.WriteLine("1. " + comp.eventID + " " + comp.userID);
            obj = SqliteDataAccess.SingleObject(obj, query1);

            if (obj == null)
            {
                Console.WriteLine("NULL");
                return(RedirectToAction("Application", "Home"));
            }
            else
            {
                CompetitorModel competitor = new CompetitorModel();
                competitor.userID = comp.userID;
                string query3 = "select * from competitor where userID = @userID";
                competitor         = SqliteDataAccess.SingleObject(competitor, query3);
                competitor.eventID = comp.eventID;

                string query2 = "insert into eventcompetitor(eventID, competitorID) values(@eventID, @competitorID)";
                SqliteDataAccess.SaveSingleObject(competitor, query2);

                for (int i = 1; i < 7; i++)
                {
                    CompetitorModel comp2 = new CompetitorModel();
                    comp2.eventID      = comp.eventID;
                    comp2.competitorID = competitor.competitorID;
                    comp2.jumpnr       = i;
                    competitorList.Add(comp2);
                }
                string query4 = "insert into jump(eventID, competitorID, jumpnr) values(@eventID, @competitorID, @jumpnr)";
                SqliteDataAccess.SaveManyObjects(competitorList, query4);
            }
            return(RedirectToAction("Application", "Home"));
        }
예제 #19
0
        public List <string> ApprovedEventList2(int userID)
        {
            CompetitorModel comp = new CompetitorModel();

            comp.userID = userID;
            string query = "select e.eventID from eventclub as ec inner join club as c on ec.clubID = c.clubID inner join event as e on e.eventID = ec.eventID where userID = 16  and startdate >= date('now')";

            competitorList = SqliteDataAccess.LoadManyObjects(comp, query);

            var events2 = new List <string>();

            foreach (var obj in competitorList)
            {
                events2.Add(obj.eventID);
            }



            comp.eventListstring = events2.ToList();
            return(events2.ToList());
        }
예제 #20
0
        public static List <MatchModel> FilterMatchModel_ApplicableMatches(List <MatchModel> model, CompetitorModel competitor, List <Division> divisions)
        {
            if (divisions.Count == 0)
            {
                return(model);
            }

            List <Division> filteredDivs = new List <Division>();

            foreach (var div in divisions)
            {
                if (div.MinAge <= competitor.Age &&
                    div.MaxAge >= competitor.Age &&
                    div.Gender == competitor.Gender &&
                    div.MinRank.Level <= competitor.Level &&
                    div.MaxRank.Level >= competitor.Level &&
                    div.MinWeight_lb <= competitor.Weight &&
                    div.MaxWeight_lb >= competitor.Weight)
                {
                    filteredDivs.Add(div);
                }
            }

            List <MatchModel> filteredModel = new List <MatchModel>();

            foreach (var m in model)
            {
                if (filteredDivs.Any(d => d.DivisionId == m.DivisionId))
                {
                    filteredModel.Add(m);
                }
            }

            return(filteredModel);
        }
예제 #21
0
 public static Competitor GetCompetitorFromCompetitorModel(CompetitorModel cm)
 {
     return(DataAccess.GetCompetitor(cm.CompetitorId));
 }
예제 #22
0
        public static CompetitorModel GetCompetitorModel(Competitor obj)
        {
            CompetitorModel mm = new CompetitorModel(obj);

            return(mm);
        }