public EventSlot Create(EventSlot eventSlot)
        {
            string query = @"INSERT INTO [dbo].[EventSlot]            
                                           ([EventTypeId]
                                           ,[EventPageId]
                                           ,[Date]
                                           ,[Cost]
                                           ,[MaxParticipants]
                                           ,[Distances]
                                           ,[IndemnityWaiverDocumentLink]
                                           ,[CovidDocumentLink]
                                           ,[IsGuestEvent]
                                           ,[RequiresBTFLicense])
                                        OUTPUT Inserted.Id
                                        VALUES
                                           (@EventTypeId
                                           ,@EventPageId
                                           ,@Date
                                           ,@Cost
                                           ,@MaxParticipants
                                           ,@Distances
                                           ,@IndemnityWaiverDocumentLink
                                           ,@CovidDocumentLink
                                           ,@IsGuestEvent
                                           ,@RequiresBTFLicense)";


            using (IDbConnection connection = _dataConnection.SqlConnection)
            {
                eventSlot.Id = connection.Query <int>(query, eventSlot).Single();
            }

            return(eventSlot);
        }
Example #2
0
 void Init()
 {
     if (_onChange == null)
     {
         _onChange = new EventSlot <byte>();
     }
 }
Example #3
0
        public RepairDisaster(EventSlot slot, long startTime, long endTime, StationPart stationPart) :
            base(slot, startTime, endTime)
        {
            StationPart = stationPart;
            IsSilenced  = false;

            switch (slot)
            {
            case EventSlot.North:
                Position = northDrawLoc;
                break;

            case EventSlot.South:
                Position = southDrawLoc;
                break;

            case EventSlot.East:
                Position = eastDrawLoc;
                break;

            case EventSlot.West:
                Position = westDrawLoc;
                break;

            case EventSlot.Center:
                Position = centerDrawLoc;
                break;
            }
        }
Example #4
0
        private Rule DeserializeIfElse(EventSlot slot, XElement element)
        {
            var rule = (IfElseRule)TypeActivator.CreateInstance(typeof(IfElseRule));
            var conditionsElement = element.Element("conditions");

            if (conditionsElement != null)
            {
                foreach (var conditionElement in conditionsElement.Elements())
                {
                    rule.Conditions.Add(DeserializeCondition(conditionElement));
                }
            }

            var thenElement = element.Element("then");

            if (thenElement != null)
            {
                foreach (var ruleElement in thenElement.Elements())
                {
                    rule.Then.Add(DeserializeRule(slot, ruleElement));
                }
            }

            var elseElement = element.Element("else");

            if (elseElement != null)
            {
                foreach (var ruleElement in elseElement.Elements())
                {
                    rule.Else.Add(DeserializeRule(slot, ruleElement));
                }
            }

            return(rule);
        }
        public void Update(EventSlot slot)
        {
            string query = @"UPDATE [dbo].[EventSlot]
                                    SET  [Cost] = @Cost
                                        ,[MaxParticipants] = @MaxParticipants
                                        ,[Distances] = @Distances
                                        ,[IndemnityWaiverDocumentLink] = @IndemnityWaiverDocumentLink
                                        ,[CovidDocumentLink] = @CovidDocumentLink
                                        ,[IsGuestEvent] = @IsGuestEvent
                                        ,[RequiresBTFLicense] = @RequiresBTFLicense
                                    WHERE Id = @Id";

            using (IDbConnection connection = _dataConnection.SqlConnection)
            {
                connection.Execute(query, new
                {
                    Id                          = slot.Id,
                    Cost                        = slot.Cost,
                    MaxParticipants             = slot.MaxParticipants,
                    Distances                   = slot.Distances,
                    IndemnityWaiverDocumentLink = slot.IndemnityWaiverDocumentLink,
                    CovidDocumentLink           = slot.CovidDocumentLink,
                    IsGuestEvent                = slot.IsGuestEvent,
                    RequiresBTFLicense          = slot.RequiresBTFLicense
                });
            }
        }
        public void ExceptionsDuringTriggerDontEraseSlot()
        {
            var slot = new EventSlot();

            bool called = false;

            IEventListener listener2 = new DelegateEventListener(() => called = true);

            bool           dead     = false;
            IEventListener listener = new DelegateEventListener(() => { dead = true; throw new Exception(); }, () => dead);


            slot.Register(listener);

            slot.Register(listener2);

            try
            {
                slot.Trigger();
            }
            catch (Exception) {}

            slot.Trigger();

            Assert.That(called);
        }
        public GasLeakDisaster(EventSlot slot, long startTime, long endTime, SteamColor steamColor) :
            base(slot, startTime, endTime)
        {
            VisibleToPlayer = PlayerNumber.TWO;
            SteamColor      = steamColor;

            switch (slot)
            {
            case EventSlot.North:
                Position = northDrawLoc;
                break;

            case EventSlot.South:
                Position = southDrawLoc;
                break;

            case EventSlot.East:
                Position = eastDrawLoc;
                break;

            case EventSlot.West:
                Position = westDrawLoc;
                break;

            case EventSlot.Center:
                Position = centerDrawLoc;
                break;
            }
        }
Example #8
0
 void Init()
 {
     if (_onChange == null)
     {
         _onChange = new EventSlot <float>();
     }
 }
Example #9
0
 void Init()
 {
     if (_onChange == null)
     {
         _onChange = new EventSlot <Quaternion>();
     }
 }
        public void DeadListenersRemovedRightAway()
        {
            var slot = new EventSlot();

            bool called = false;
            bool dead   = false;
            int  count  = 0;

            IEventListener listener = new DelegateEventListener(() => { if (count == 0)
                                                                        {
                                                                            dead = true;
                                                                        }
                                                                        else
                                                                        {
                                                                            called = true;
                                                                        } ++count; }, () => dead);

            slot.Register(listener);

            slot.Trigger();
            dead = false;

            slot.Trigger();

            Assert.That(!called);
        }
Example #11
0
 void Init()
 {
     if (_onChange == null)
     {
         _onChange = new EventSlot <Vector3>();
     }
 }
Example #12
0
        public ActionResult DeleteConfirmed(Guid id)
        {
            EventSlot eventSlot = db.EventSlots.Find(id);

            db.EventSlots.Remove(eventSlot);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public void NotCalledIfNotTrigger()
        {
            var  slot   = new EventSlot();
            bool called = false;

            slot.Register(() => called = true);

            Assert.That(!called);
        }
Example #14
0
    public EventSummarySnippit(EventSlot para_eventSlot,
	                           string para_eventText,
	                           string para_readableLangArea,
	                           string para_readableDifficulty)
    {
        eventInfo = para_eventSlot;
        eventText = para_eventText;
        readableLangArea = para_readableLangArea;
        readableDifficulty = para_readableDifficulty;
    }
Example #15
0
        public override Rule ToRule(EventSlot slot)
        {
            var rule = new AlwaysRule();

            foreach (var activityModel in Activities)
            {
                rule.Activities.Add(activityModel.ToConfiguredActivity());
            }
            return(rule);
        }
Example #16
0
 public ActionResult Edit([Bind(Include = "Id,EventId,StartTime,EndTime,CreatedTime,ModifiedTime,BookedBy,IsActive")] EventSlot eventSlot)
 {
     if (ModelState.IsValid)
     {
         db.Entry(eventSlot).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.EventId = new SelectList(db.Events, "Id", "Name", eventSlot.EventId);
     return(View(eventSlot));
 }
Example #17
0
        public IList <Rule> DeserializeRules(EventSlot slot, XElement rulesXml)
        {
            var rules = new List <Rule>();

            foreach (var ruleElement in rulesXml.Elements())
            {
                rules.Add(DeserializeRule(slot, ruleElement));
            }

            return(rules);
        }
        public void EventCallOrder()
        {
            var        slot = new EventSlot();
            List <int> ints = new List <int>();

            slot.Register(() => ints.Add(0));
            slot.Register(() => ints.Add(1));
            slot.Trigger();

            Assert.That(ints[0].Equals(0) && ints[1].Equals(1));
        }
Example #19
0
        private Rule DeserializeAlways(EventSlot slot, XElement element)
        {
            var rule = (AlwaysRule)TypeActivator.CreateInstance(typeof(AlwaysRule));

            foreach (var activityElement in element.Elements("activity"))
            {
                rule.Activities.Add(DeserializeActivity(activityElement));
            }

            return(rule);
        }
Example #20
0
        public ActionResult Create([Bind(Include = "Id,EventId,StartTime,EndTime,CreatedTime,ModifiedTime,BookedBy,IsActive")] EventSlot eventSlot)
        {
            if (ModelState.IsValid)
            {
                eventSlot.Id = Guid.NewGuid();
                db.EventSlots.Add(eventSlot);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.EventId = new SelectList(db.Events, "Id", "Name", eventSlot.EventId);
            return(View(eventSlot));
        }
        public void DeadListenerNotCalled()
        {
            var slot = new EventSlot();

            bool called = false;

            IEventListener listener = new DelegateEventListener(() => called = true, () => true);

            slot.Register(listener);
            slot.Trigger();

            Assert.That(!called);
        }
        public void CalledWithDelegateEventListener()
        {
            var slot = new EventSlot();

            bool called = false;

            IEventListener listener = new DelegateEventListener(() => called = true);

            slot.Register(listener);
            slot.Trigger();

            Assert.That(called);
        }
Example #23
0
    public void abortQuest()
    {
        launcherDetails = "";
        worldView.resetQuestGiverPosition(selectedEvent.getQuestGiverCharID());
        selectedEvent = null;

        worldView.cancelMove();

        questBar.gameObject.SetActive(false);

        showQuestBar = false;

        activateWVInterface();
    }
Example #24
0
        // GET: EventSlots/Details/5
        public ActionResult Details(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            EventSlot eventSlot = db.EventSlots.Find(id);

            if (eventSlot == null)
            {
                return(HttpNotFound());
            }
            return(View(eventSlot));
        }
Example #25
0
    public void Setter(long value)
    {
        if (_value == value)
        {
            return;
        }
        _value = value;

        if (_onChange == null)
        {
            _onChange = new EventSlot <long>();
        }

        _onChange.Trigger(value);
    }
        public void Once()
        {
            var slot = new EventSlot();

            int count = 0;

            IEventListener listener = DelegateEventListeners.Once(() => { ++count; });

            slot.Register(listener);

            slot.Trigger();
            slot.Trigger();

            Assert.AreEqual(1, count);
        }
Example #27
0
        // GET: EventSlots/Edit/5
        public ActionResult Edit(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            EventSlot eventSlot = db.EventSlots.Find(id);

            if (eventSlot == null)
            {
                return(HttpNotFound());
            }
            ViewBag.EventId = new SelectList(db.Events, "Id", "Name", eventSlot.EventId);
            return(View(eventSlot));
        }
Example #28
0
        private Rule DeserializeSwitchCase(EventSlot slot, XElement element)
        {
            var paramName = element.Attribute("parameter").Value;
            var param     = ParameterProviders.GetParameter(slot.EventType, paramName);

            if (param == null)
            {
                return(null);
            }

            var rule = new SwitchCaseRule(param);

            // Cases
            foreach (var caseElement in element.Elements("case"))
            {
                var value     = Convert.ChangeType(caseElement.Attribute("value").Value, param.ValueType);
                var caseRules = new List <Rule>();

                foreach (var caseRuleElement in caseElement.Elements())
                {
                    var caseRule = DeserializeRule(slot, caseRuleElement);
                    if (caseRule != null)
                    {
                        caseRules.Add(caseRule);
                    }
                }

                rule.Cases.Add(value, caseRules);
            }

            // Default
            var defaultElement = element.Element("default");

            if (defaultElement != null)
            {
                foreach (var defaultRuleElement in defaultElement.Elements())
                {
                    var defaultRule = DeserializeRule(slot, defaultRuleElement);
                    if (defaultRule != null)
                    {
                        rule.Default.Add(defaultRule);
                    }
                }
            }

            return(rule);
        }
        public void LifeTimeEventListenerDontHoldGarbage()
        {
            var        slot = new EventSlot();
            List <int> list = new List <int>();

            {
                TestGarbage garbage  = new TestGarbage(list);
                var         listener = DelegateEventListeners.LifeTime((t) => t.Callback(), garbage);
                slot.Register(listener);
            }

            GC.Collect();

            slot.Trigger();

            Assert.AreEqual(0, list.Count);
        }
Example #30
0
        public override Rule ToRule(EventSlot slot)
        {
            var param = RuleParameterProviders.Providers.GetParameter(slot.EventType, Parameter);
            var rule  = new SwitchCaseRule(param);

            foreach (var caze in Cases)
            {
                var value = Convert.ChangeType(caze.Value, param.ValueType);
                rule.Cases.Add(value, caze.Rules.Select(r => r.ToRule(slot)).ToList());
            }

            foreach (var defaultRule in Default)
            {
                rule.Default.Add(defaultRule.ToRule(slot));
            }

            return(rule);
        }
Example #31
0
        public override Rule ToRule(EventSlot slot)
        {
            var rule = new IfElseRule();

            rule.Conditions = Conditions.ToList();

            foreach (var thenRuleModel in Then)
            {
                rule.Then.Add(thenRuleModel.ToRule(slot));
            }

            foreach (var elseRuleModel in Else)
            {
                rule.Else.Add(elseRuleModel.ToRule(slot));
            }

            return(rule);
        }
        private void AddEventSlot(int eventTypeId, DateTime eventDate, Event eventPage)
        {
            var eventSlot = new EventSlot()
            {
                EventTypeId                 = eventTypeId,
                EventPageId                 = eventPage.Id,
                Date                        = eventDate,
                Cost                        = eventPage.Cost,
                MaxParticipants             = eventPage.MaximumParticipants,
                RequiresBTFLicense          = eventPage.RequiresBtflicense,
                IndemnityWaiverDocumentLink = eventPage.IndemnityWaiver?.Url,
                CovidDocumentLink           = eventPage.CovidHealthDeclaration?.Url,
                IsGuestEvent                = eventPage.IsGuestEvent
            };

            eventSlot.SetDisances(eventPage.RaceDistances);
            _eventSlotRepository.Create(eventSlot);
        }
Example #33
0
        private Rule DeserializeAlways(EventSlot slot, XElement element)
        {
            var rule = (AlwaysRule)TypeActivator.CreateInstance(typeof(AlwaysRule));

            foreach (var activityElement in element.Elements("activity"))
            {
                rule.Activities.Add(DeserializeActivity(activityElement));
            }

            return rule;
        }
Example #34
0
 //Activity should start with the given parameters
 public void launchQuest(ExternalParams builtExtParams,int destChar,string source,Mode m)
 {
     EventSlot selectedEvent = new EventSlot(-1,
                                             builtExtParams.questGiverIdOverride,
                                             destChar,
                                             builtExtParams.acIdOverride,
                                             new Encounter(
                                                     builtExtParams.acIdOverride,
                                                     builtExtParams.levelOverride,
                                                     builtExtParams.langAreaOverride,
                                                     builtExtParams.difficultyOverride,
                   									"",
                   									LocalisationMang.langCode)
                                   			);
     launchQuest(selectedEvent,source,m);
 }
Example #35
0
        private Rule DeserializeIfElse(EventSlot slot, XElement element)
        {
            var rule = (IfElseRule)TypeActivator.CreateInstance(typeof(IfElseRule));
            var conditionsElement = element.Element("conditions");
            if (conditionsElement != null)
            {
                foreach (var conditionElement in conditionsElement.Elements())
                {
                    rule.Conditions.Add(DeserializeCondition(conditionElement));
                }
            }

            var thenElement = element.Element("then");
            if (thenElement != null)
            {
                foreach (var ruleElement in thenElement.Elements())
                {
                    rule.Then.Add(DeserializeRule(slot, ruleElement));
                }
            }

            var elseElement = element.Element("else");
            if (elseElement != null)
            {
                foreach (var ruleElement in elseElement.Elements())
                {
                    rule.Else.Add(DeserializeRule(slot, ruleElement));
                }
            }

            return rule;
        }
Example #36
0
 private Rule DeserializeRule(EventSlot slot, XElement element)
 {
     var deserializer = _deserializers[element.Name.LocalName];
     return deserializer(slot, element);
 }
Example #37
0
        private Rule DeserializeSwitchCase(EventSlot slot, XElement element)
        {
            var paramName = element.Attribute("parameter").Value;
            var param = ParameterProviders.GetParameter(slot.EventType, paramName);
            if (param == null)
            {
                return null;
            }

            var rule = new SwitchCaseRule(param);

            // Cases
            foreach (var caseElement in element.Elements("case"))
            {
                var value = Convert.ChangeType(caseElement.Attribute("value").Value, param.ValueType);
                var caseRules = new List<Rule>();

                foreach (var caseRuleElement in caseElement.Elements())
                {
                    var caseRule = DeserializeRule(slot, caseRuleElement);
                    if (caseRule != null)
                    {
                        caseRules.Add(caseRule);
                    }
                }

                rule.Cases.Add(value, caseRules);
            }

            // Default
            var defaultElement = element.Element("default");
            if (defaultElement != null)
            {
                foreach (var defaultRuleElement in defaultElement.Elements())
                {
                    var defaultRule = DeserializeRule(slot, defaultRuleElement);
                    if (defaultRule != null)
                    {
                        rule.Default.Add(defaultRule);
                    }
                }
            }

            return rule;
        }
Example #38
0
 public IList<Rule> DeserializeRules(EventSlot slot, string rulesXml)
 {
     return DeserializeRules(slot, XElement.Parse(rulesXml));
 }
Example #39
0
        public IList<Rule> DeserializeRules(EventSlot slot, XElement rulesXml)
        {
            var rules = new List<Rule>();

            foreach (var ruleElement in rulesXml.Elements())
            {
                rules.Add(DeserializeRule(slot, ruleElement));
            }

            return rules;
        }
Example #40
0
    public void launchQuest(EventSlot e,string source,Mode m)
    {
        //Debug.Log("LA: "+e.getEncounter().getLanguageArea()+" DF:"+e.getEncounter().getDifficulty());

        gbDisp.closeGhostbook();
        GBOpen = false;
        activateWVInterface();

        if(checkLevelCorrectness(e.getEncounter().getLevel(),e.getApplicationID(),e.getEncounter().getLanguageArea())){

            launcherMode = m;
            launcherDetails = source;
            selectedEvent = e;

            acServCom.setActivityParameters(selectedEvent.getEncounter().getLocation(),
                                            selectedEvent.getEncounter().getDifficulty(),
                                            selectedEvent.getEncounter().getLanguageArea(),
                                            wvServCom.getUserID(),
                                            0,
                                            selectedEvent.getEncounter().getLevel(),
                                            launcherMode);

            acServCom.load();

            if(m ==Mode.ADVENTURE){//walk
                activateQuestBar(selectedEvent);
                worldView.sendQuestGiverToCharacter(selectedEvent.getQuestGiverCharID(),selectedEvent.getQuestReceiverCharID());
                worldView.moveToCharacter(selectedEvent.getQuestReceiverCharID());
            }else{//start immediate

                deactivateWVInterface();
                worldView.setLoadingIconVisibility(true);
                startRequested = true;

            }

        }else{
            WorldViewServerCommunication.setError("Problem on difficulty ("+e.getEncounter().getLanguageArea()+","+e.getEncounter().getDifficulty()+")\nLevel "+e.getEncounter().getLevel()+" no supported");

        }
    }
Example #41
0
    private void activateQuestBar(EventSlot selectedEvent)
    {
        questBar.gameObject.SetActive(true);
        QuestBarScript qBarScript = questBar.gameObject.AddComponent<QuestBarScript>();
        qBarScript.init(selectedEvent.getQuestGiverCharID(),selectedEvent.getQuestReceiverCharID(),selectedEvent.getApplicationID());//selectedEvent.getApplicationID()

        showQuestBar = true;

        showGBIcon = false;
        ghostbookIcon.gameObject.SetActive(showGBIcon);

        //if(showNarrativeIcon){
            //narrativeIcon.gameObject.SetActive(false);
        //}

        worldView.clearUnclickable();
        worldView.addUnclickable(questBarUiBounds);
        worldView.addUnclickable(questBarAbortBtnUiBounds);
    }