Beispiel #1
0
        public void HandleRequest(IRequest request)
        {
            using (var scope = Db.CreateTransaction())
            {
                var sourceEid = request.Data.GetOrDefault <long>(k.source);
                var targetEid = request.Data.GetOrDefault <long>(k.target);
                var bothWays  = request.Data.GetOrDefault <int>(k.both) == 1;

                ConnectColumns(sourceEid, targetEid);

                if (bothWays)
                {
                    ConnectColumns(targetEid, sourceEid);
                }

                Transaction.Current.OnCommited(() =>
                {
                    var result = _teleportDescriptionRepository.GetAll().ToDictionary();
                    Message.Builder.SetCommand(Commands.TeleportList)
                    .WithData(result)
                    .ToClient(request.Session)
                    .Send();
                });

                scope.Complete();
            }
        }
Beispiel #2
0
        public static IEnumerable <TeleportDescription> SelectMany(this ITeleportDescriptionRepository descriptionRepository, IEnumerable <int> descriptionIDs)
        {
            var descriptions = descriptionRepository.GetAll().ToDictionary(d => d.id);

            foreach (var id in descriptionIDs)
            {
                var d = descriptions.GetOrDefault(id);
                if (d != null)
                {
                    yield return(d);
                }
            }
        }
Beispiel #3
0
        private int[] GetSourceList()
        {
            var descriptions = _teleportDescriptionRepository.GetAll();

            return(descriptions.Where(d => d.listable && d.SourceTeleport?.Eid == Eid).Select(d => d.id).ToArray());
        }
        public void HandleRequest(IRequest request)
        {
            var infos = _descriptionRepository.GetAll().ToDictionary();

            Message.Builder.FromRequest(request).WithData(infos).Send();
        }