Пример #1
0
        public void ExtractChanges(object instance, ChangeReceiverDelegate changeReceiver)
        {
            // Contract
            if (instance == null)
            {
                throw new ArgumentNullException("instance", "Can not extract changes on a null reference");
            }


            for (int index = 0; index < FieldNames.Length; index++)
            {
                var familyName = FamilyNames[index];
                var fieldName  = FieldNames[index];
                var memberType = MemberTypes[MemberNameLookup[fieldName]];
                if (false && IsBigBoxed[fieldName])
                {
                }
                else
                {
                    var value      = Getters[fieldName](instance);
                    var serializer = GetSerializerForType(memberType);
                    var valueBytes = serializer.SerializeField(memberType, value, TableEncoding);
                    changeReceiver(familyName, fieldName, valueBytes);
                }
            }
        }
 internal void Export(Exporter exporter, object value)
 {
     exporter.Blob.BeginSequence(Coherent.UI.Mobile.Binding.ValueType.Object, Getters.Length + 1);
     exporter.Export("__Type");
     exporter.Export(RealTypeName);
     for (var i = 0; i < Getters.Length; ++i)
     {
         exporter.Export(Names[i]);
         Getters[i](value, exporter);
     }
     exporter.Blob.EndSequence();
 }
Пример #3
0
        public void CorrectlyPassData()
        {
            //Arrange
            var personListMock = new Mock <IPersonsCollection>();
            var wimTeamMock    = new Mock <IWIMTeams>();
            var teamName       = "TeamName";
            var teamMock       = new Mock <ITeam>();

            wimTeamMock.Setup(x => x.TeamsList.ContainsKey(teamName)).Returns(true);
            var boardName = "BoardName";

            wimTeamMock.Setup(x => x.TeamsList[teamName].BoardList.ContainsKey(boardName)).Returns(true);
            var boardMock = new Mock <IBoard>();

            boardMock.Setup(x => x.BoardName).Returns(boardName);
            wimTeamMock.Setup(x => x[teamName]).Returns(teamMock.Object);
            teamMock.Setup(x => x.BoardList[boardName]).Returns(boardMock.Object);
            var sut = new Getters(personListMock.Object, wimTeamMock.Object);

            //Act
            var getBoard = sut.GetBoard(teamName, boardName);

            //Assert
            Assert.AreEqual(boardMock.Object, getBoard);
        }
Пример #4
0
 internal List <Getters> GetGetters(Type type)
 {
     if (_getterscache.ContainsKey(type))
     {
         return(_getterscache[type]);
     }
     else
     {
         PropertyInfo[] props   = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
         List <Getters> getters = new List <Getters>();
         foreach (PropertyInfo p in props)
         {
             GenericGetter g = CreateGetMethod(p);
             if (g != null)
             {
                 Getters gg = new Getters();
                 gg.Name   = p.Name;
                 gg.Getter = g;
                 getters.Add(gg);
             }
         }
         _getterscache.Add(type, getters);
         return(getters);
     }
 }
Пример #5
0
        private static Result createReshoringLayoutSheets(UIDocument uiDoc)
        {
            Document _doc = uiDoc.Document;

            string _titleblockName           = "E1 30 x 42 Horizontal: E1 30x42 Horizontal";
            XYZ    _columnScheduleBottomLeft = new XYZ(2.3354130772204, 2.39482128194158, 0);
            XYZ    _viewCenter = new XYZ(1.45453036348288, 1.18116967618813, 0.871414246948733);
            XYZ    _levelScheduleBottomLeft = new XYZ(0.156336990263879, 2.37688649933288, 0);

            var _levels = Getters.GetLevels(_doc);

            Level _levelAbove  = null;
            Level _topLevel    = _levels.FirstOrDefault();
            Level _bottomLevel = _levels.LastOrDefault();

            List <Tuple <ViewSheet, View> > _sheetsWithViews = new List <Tuple <ViewSheet, View> >();


            foreach (Level _level in _levels)
            {
                if (_levelAbove == null)
                {
                    _levelAbove = _level;
                }

                BoundedViewCreator _boundedViewCreator = new BoundedViewCreator(_level, null, null);
                SheetCreator       _sheetCreator       = new SheetCreator(_doc);
                string             _viewName           = _boundedViewCreator.GetViewName(string.Empty, "FP");
                ViewSheet          _viewSheet          = _sheetCreator.CreateSheet(_titleblockName, _viewName, _viewName);
                ViewPlan           _viewPlan           = _boundedViewCreator.CreateViewPlan(80);
                _sheetsWithViews.Add(new Tuple <ViewSheet, View>(_viewSheet, _viewPlan));

                ViewSchedule          _columnSchedule = ScheduleCreator.CreateLayoutColumnSchedule(_doc, _level.Name, " Reshores");
                ScheduleSheetInstance _columnScheduleSheetInstance = ScheduleSheetInstance.Create(_doc, _viewSheet.Id, _columnSchedule.Id, _columnScheduleBottomLeft);

                ViewSchedule          _levelSchedule = ScheduleCreator.CreateLayoutLoadSchedule(_doc, _level.Name, " Loads");
                ScheduleSheetInstance _levelScheduleSheetInstance = ScheduleSheetInstance.Create(_doc, _viewSheet.Id, _levelSchedule.Id, _levelScheduleBottomLeft);

                _levelAbove = _level;
            }

            _doc.Regenerate();

            FamilySymbol _tagSymbol = new FilteredElementCollector(_doc)
                                      .OfCategory(BuiltInCategory.OST_MultiCategoryTags)
                                      .OfClass(typeof(FamilySymbol)).OfType <FamilySymbol>()
                                      .FirstOrDefault(p => p.FamilyName.Contains("Mark"));


            foreach (var _sheetWithView in _sheetsWithViews)
            {
                DimensionCreator.CreateDimensions(_sheetWithView.Item2);
                TagCreator.CreateTags(_sheetWithView.Item2, _tagSymbol);
                Viewport.Create(_doc, _sheetWithView.Item1.Id, _sheetWithView.Item2.Id, _viewCenter);
            }

            return(Result.Succeeded);
        }
Пример #6
0
    public override void InitStats()
    {
        base.InitStats();


        Getters.Add("Killstreak", delegate() { return(Killstreak); });

        Setters.Add("Killstreak", delegate(object val) { Killstreak = (int)val; });
    }
Пример #7
0
            private void SetDropForLevel(Tier tier, Difficulty diff)
            {
                Dictionary <IBonus, int> set = new Dictionary <IBonus, int>();

                foreach (var pair in Getters.GetDrop(tier))
                {
                    set.Add(pair.Key, pair.Value * (int)diff);
                }
                level.SetDroppables(set);
            }
Пример #8
0
        internal object GetValue(T value, string propertyName)
        {
            var getter = Getters.GetOrAdd(propertyName, name =>
            {
                var propertyInfo = GetType().GetProperty(name);
                return(ResolveGetter(propertyInfo));
            });

            return(getter.Invoke(value));
        }
Пример #9
0
        private void CachePropertyGetter(string propertyName)
        {
            if (Getters.ContainsKey(propertyName))
            {
                return;
            }

            var propInfo = GetType().GetProperty(propertyName);

            Getters.Add(propertyName, obj => propInfo.GetValue(obj));
        }
Пример #10
0
        public void Throw_ArgumentNullException_When_PersonDontExist()
        {
            //Arrange
            var personListMock = new Mock <IPersonsCollection>();
            var wIMTeamMock    = new Mock <IWIMTeams>();
            var sut            = new Getters(personListMock.Object, wIMTeamMock.Object);
            //Act&&Assert
            var ex = Assert.ThrowsException <ArgumentNullException>(() => sut.GetPerson("Some Member"));

            Assert.AreEqual(string.Format(CommandsConsts.NoPersonFound, "Some Member"), ex.ParamName);
        }
        public StringGetter[] GetGettersCollection()
        {
            StringGetter[] getters = new StringGetter[BuiltInGetters.Length + Getters.Count];
            int            i       = 0;

            foreach (StringGetter get in Getters.Concat(BuiltInGetters))
            {
                getters[i] = get;
                i++;
            }
            return(getters);
        }
Пример #12
0
    public override void InitStats()
    {
        base.InitStats();

        Getters.Add("Deaths", delegate() { return(Deaths); });
        Getters.Add("Frags", delegate() { return(Frags); });
        Getters.Add("Score", delegate() { return(Score); });

        Setters.Add("Deaths", delegate(object val) { Deaths = (int)val; });
        Setters.Add("Frags", delegate(object val) { Frags = (int)val; });
        Setters.Add("Score", delegate(object val) { Score = (int)val; });
    }
        private object BindParameter(DisplayContext displayContext, ParameterInfo parameter, TextWriter output)
        {
            if (parameter.Name == "Shape")
            {
                return(displayContext.Value);
            }

            if (parameter.Name == "Display")
            {
                return(displayContext.Display);
            }

            if (parameter.Name == "Output" && parameter.ParameterType == typeof(TextWriter))
            {
                return(output);
            }

            if (parameter.Name == "Output" && parameter.ParameterType == typeof(Action <object>))
            {
                return(new Action <object>(output.Write));
            }

            if (parameter.Name == "Html")
            {
                return(new HtmlHelper(
                           displayContext.ViewContext,
                           displayContext.ViewDataContainer,
                           _routeCollection));
            }

            if (parameter.Name == "Url" && parameter.ParameterType.IsAssignableFrom(typeof(UrlHelper)))
            {
                return(new UrlHelper(displayContext.ViewContext.RequestContext, _routeCollection));
            }

            var getter = Getters.GetOrAdd(parameter.Name, n =>
                                          CallSite <Func <CallSite, object, dynamic> > .Create(
                                              Microsoft.CSharp.RuntimeBinder.Binder.GetMember(
                                                  CSharpBinderFlags.None, n, null, new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) })));

            var result = getter.Target(getter, displayContext.Value);

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

            var converter = Converters.GetOrAdd(parameter.ParameterType, CompileConverter);
            var argument  = converter.Invoke(result);

            return(argument);
        }
Пример #14
0
        public void Throw_ArgumentException_When_ТеамDontExist()
        {
            //Arrange
            var personListMock = new Mock <IPersonsCollection>();
            var wimTeamMock    = new Mock <IWIMTeams>();
            var teamName       = "TeamName";

            wimTeamMock.Setup(x => x.TeamsList.ContainsKey(teamName)).Returns(false);
            var sut = new Getters(personListMock.Object, wimTeamMock.Object);
            //Act&&Assert
            var ex = Assert.ThrowsException <ArgumentException>(() => sut.GetTeam(teamName));

            Assert.AreEqual(string.Format(CommandsConsts.NoTeamFound, teamName), ex.Message);
        }
Пример #15
0
        public void Throw_ArgumentException_When_WorkItemDontExistInTheBoard()
        {
            //Arrange
            var personListMock = new Mock <IPersonsCollection>();
            var wimTeamMock    = new Mock <IWIMTeams>();
            var boardMock      = new Mock <IBoard>();

            boardMock.Setup(x => x.BoardWorkItems).Returns(new Dictionary <string, IWorkItem>());
            var workItem = "WorkItem";
            var sut      = new Getters(personListMock.Object, wimTeamMock.Object);
            //Act&&Assert
            var ex = Assert.ThrowsException <ArgumentException>(() => sut.GetWorkItem(boardMock.Object, workItem));

            Assert.AreEqual(string.Format(CommandsConsts.NoWorkItemFound, workItem), ex.Message);
        }
Пример #16
0
        static (PropertyModification, PropertyModification) GetModificationsOrNull(Type type, string property, object previousValue, object newValue)
        {
            var getter = Getters
                         .GetOrAdd(type, _ => new ConcurrentDictionary <string, Func <object, object, (PropertyModification, PropertyModification)> >())
                         .GetOrAdd(property, _ => CreateModificationGetter(type, property));

            try
            {
                return(getter(previousValue, newValue));
            }
            catch (Exception exception)
            {
                throw new ArgumentException($"Could not generate property modifications for the '{property}' property of {type}, value changed from {previousValue} to {newValue}", exception);
            }
        }
Пример #17
0
        public void Throw_ArgumentNullException_When_TeamDontExist()
        {
            //Arrange
            var personListMock = new Mock <IPersonsCollection>();
            var wIMTeamMock    = new Mock <IWIMTeams>();

            wIMTeamMock.Setup(w => w.TeamsList).Returns(new Mock <IDictionary <string, ITeam> >().Object);
            var teamMock = new Mock <ITeam>();

            teamMock.Setup(x => x.TeamName).Returns("TeamName");
            var sut = new Getters(personListMock.Object, wIMTeamMock.Object);
            //Act&&Assert
            var ex = Assert.ThrowsException <ArgumentException>(() => sut.GetMember(teamMock.Object, "Pesho"));

            Assert.AreEqual(string.Format(CommandsConsts.NoTeamFound, teamMock.Object.TeamName), ex.Message);
        }
Пример #18
0
        private Action ParseAction(string text)
        {
            var action = text.Split('/');

            switch (action[0])
            {
            case "ChangeArmor": return(() => EventResult_ChangeArmor(int.Parse(action[1])));

            case "ReceiveGold": return(() => EventResult_ReceiveGold(int.Parse(action[1])));

            case "HealthChange": return(() => EventResult_HealthChange(int.Parse(action[1])));

            case "ReceiveLoot": return(() => EventResult_ReceiveLoot(Getters.ParseLoot(action.Skip(1))));
            }
            return(null);
        }
Пример #19
0
        public SheetCreator(Document doc)
        {
            var _titleblocks = Getters.GetTitleblockSymbols(doc);

            _titleblockMaps = new Dictionary <string, FamilySymbol>();
            foreach (var _titleblock in _titleblocks)
            {
                string _key = _titleblock.FamilyName + ": " + _titleblock.Name;
                if (_titleblockMaps.ContainsKey(_key))
                {
                    continue;
                }

                _titleblockMaps.Add(_key, _titleblock);
            }
        }
Пример #20
0
        public void CorrectlyPassData()
        {
            //Arrange
            var wIMTeamMock    = new Mock <IWIMTeams>();
            var personListMock = new Mock <IPersonsCollection>();

            personListMock.Setup(x => x.Contains("Pesho")).Returns(true);
            personListMock.SetupGet(p => p["Pesho"]).Returns(new Mock <IPerson>().Object);
            var sut = new Getters(personListMock.Object, wIMTeamMock.Object);
            //Act
            var getPerson = sut.GetPerson("Pesho");

            //Assert
            personListMock.Verify(x => x.Contains("Pesho"), Times.Once);
            personListMock.Verify(p => p["Pesho"], Times.Once);
        }
Пример #21
0
        public void Throw_ArgumentException_When_BoardDontExist()
        {
            //Arrange
            var personListMock = new Mock <IPersonsCollection>();
            var wimTeamMock    = new Mock <IWIMTeams>();
            var teamName       = "TeamName";

            wimTeamMock.Setup(x => x.TeamsList.ContainsKey(teamName)).Returns(true);
            var boardName = "BoardName";

            wimTeamMock.Setup(x => x.TeamsList[teamName].BoardList).Returns(new Dictionary <string, IBoard>());

            var sut = new Getters(personListMock.Object, wimTeamMock.Object);
            //Act&&Assert
            var ex = Assert.ThrowsException <ArgumentException>(() => sut.GetBoard(teamName, boardName));

            Assert.AreEqual(string.Format(CommandsConsts.NoBoardFound, boardName), ex.Message);
        }
Пример #22
0
        public void CorrectlyPassData()
        {
            //Arrange
            var personListMock = new Mock <IPersonsCollection>();
            var wimTeamMock    = new Mock <IWIMTeams>();
            var boardMock      = new Mock <IBoard>();
            var workItem       = "WorkItem";
            var workItemMock   = new Mock <IWorkItem>();

            boardMock.Setup(x => x.BoardWorkItems[workItem]).Returns(workItemMock.Object);

            boardMock.Setup(x => x.BoardWorkItems.ContainsKey(workItem)).Returns(true);
            var sut = new Getters(personListMock.Object, wimTeamMock.Object);

            //Act
            var GetWorkItem = sut.GetWorkItem(boardMock.Object, workItem);

            //Assert
            Assert.AreEqual(workItemMock.Object, GetWorkItem);
        }
Пример #23
0
            public IEnumerable <string> Format(IEnumerable <T> input)
            {
                Func <object, string> toStringOrEmpty = _ => _?.ToString() ?? string.Empty;
                var cached = input.ToList();

                int[] widths = cached.Aggregate(
                    Names.Select(_ => _.Length).ToArray(), // seed
                    (accu, current) => Enumerable.Zip(
                        accu,
                        Getters.Select(_ => toStringOrEmpty(_(current)).Length),
                        max).ToArray());

                string template = string.Join("", Enumerable.Range(0, widths.Length).Select(i => string.Format("{{{0},{2}{1}}}", i, (int)(widths[i] * 1.2), Alignments[i])));

                yield return(string.Format(template, Names));

                foreach (var obj in cached)
                {
                    yield return(string.Format(template, Getters.Select(getCol => getCol(obj)).ToArray()));
                }
            }
Пример #24
0
        public void Throw_ArgumentException_When_WorkItemIsNotAssignable()
        {
            //Arrange
            var personListMock = new Mock <IPersonsCollection>();
            var wimTeamMock    = new Mock <IWIMTeams>();
            var workItemMock   = new Mock <IWorkItem>();

            workItemMock.Setup(x => x.Title).Returns("WorkItem");
            var boardMock = new Mock <IBoard>();

            boardMock.Setup(x => x.BoardWorkItems).Returns(
                new Dictionary <string, IWorkItem> {
                { "WorkItem", workItemMock.Object }
            });
            boardMock.Setup(x => x.BoardWorkItems["WorkItem"]).Returns(workItemMock.Object);

            var sut = new Getters(personListMock.Object, wimTeamMock.Object);
            //Act&&Assert
            var ex = Assert.ThrowsException <ArgumentException>(() => sut.GetAssignableWorkItem(boardMock.Object, workItemMock.Object.Title));

            Assert.AreEqual(string.Format($"{boardMock.Object.BoardWorkItems["WorkItem"].GetType().Name} is not assignable work item!"), ex.Message);
        }
Пример #25
0
        public void CorrectlyPassData()
        {
            //Arrange

            var personListMock = new Mock <IPersonsCollection>();
            var wIMTeamMock    = new Mock <IWIMTeams>();
            var teamMock       = new Mock <ITeam>();

            wIMTeamMock.Setup(x => x.TeamsList);
            var teamName = "TeamName";

            teamMock.Setup(x => x.TeamName).Returns(teamName);
            wIMTeamMock.Setup(x => x[teamName]).Returns(teamMock.Object);
            wIMTeamMock.Setup(x => x.TeamsList.ContainsKey(teamName)).Returns(true);
            var sut = new Getters(personListMock.Object, wIMTeamMock.Object);

            //Act
            var getTeam = sut.GetTeam(teamName);

            //Assert
            Assert.AreEqual(teamMock.Object, getTeam);
        }
Пример #26
0
        public void Init()
        {
            var requestAttribute = ParameterType.CustomAttribute <HttpRequestAttribute>(true);

            if (null != requestAttribute)
            {
                UrlPattern = requestAttribute.Api;
                Method     = requestAttribute.Method;
                Host       = requestAttribute.Host;
                ParameterType.GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).ToList().ForEach(propertyInfo =>
                {
                    var propertyName = propertyInfo.Name;
                    var getter       = ResolveGetter(propertyInfo);
                    Getters.AddOrUpdate(propertyName, getter, (k, v) => getter);
                    var attribute = propertyInfo.CustomAttribute <HttpComponentAttribute>(true);
                    if (null == attribute)
                    {
                        return;
                    }
                    var component = new HttpComponentInfo(propertyName, attribute, NamingRule);
                    Components.AddOrUpdate(propertyName, component, (p, a) => component);
                });
            }
        }
Пример #27
0
        public void CorrectlyPassData()
        {
            //Arrange
            var personListMock = new Mock <IPersonsCollection>();
            var wimTeamMock    = new Mock <IWIMTeams>();
            var workItemMock   = new Mock <IAssignableWorkItem>();

            workItemMock.Setup(x => x.Title).Returns("WorkItem");
            var boardMock = new Mock <IBoard>();

            boardMock.Setup(x => x.BoardWorkItems).Returns(
                new Dictionary <string, IWorkItem> {
                { "WorkItem", workItemMock.Object }
            });
            boardMock.Setup(x => x.BoardWorkItems["WorkItem"]).Returns(workItemMock.Object);

            var sut = new Getters(personListMock.Object, wimTeamMock.Object);

            //Act
            var GetWorkItem = sut.GetAssignableWorkItem(boardMock.Object, "WorkItem");

            //Assert
            Assert.AreEqual(workItemMock.Object, GetWorkItem);
        }
Пример #28
0
 public void UnregisterProperty(string name)
 {
     Getters.Remove(name);
     Setters.Remove(name);
 }
Пример #29
0
 public static object Eval(this object target, string name)
 {
     return(Getters.Select(getter => getter(target, name)).Where(value => value != NextGetter).First());
 }
Пример #30
0
 private object GetPropertyValue(string propertyName)
 {
     return(Getters[propertyName](this));
 }