Ejemplo n.º 1
0
        protected override void FormatReturnValueMethodName(DbgEvaluationInfo evalInfo, IDbgTextWriter output, DbgValueFormatterTypeOptions typeOptions, DbgValueFormatterOptions valueOptions, CultureInfo?cultureInfo, DmdMethodBase method, DmdPropertyInfo?property)
        {
            var typeFormatter = new Formatters.VisualBasic.VisualBasicTypeFormatter(output, typeOptions.ToTypeFormatterOptions(), null);

            typeFormatter.Format(method.DeclaringType !, null);
            var valueFormatter = new Formatters.VisualBasic.VisualBasicPrimitiveValueFormatter(output, valueOptions.ToValueFormatterOptions(), cultureInfo);

            output.Write(DbgTextColor.Operator, ".");
            if (property is not null)
            {
                output.Write(MemberUtils.GetColor(property), Formatters.VisualBasic.VisualBasicTypeFormatter.GetFormattedIdentifier(property.Name));
                valueFormatter.WriteTokenComment(property.MetadataToken);
                output.Write(DbgTextColor.Operator, ".");
                output.Write(DbgTextColor.Keyword, "Get");
                valueFormatter.WriteTokenComment(method.MetadataToken);
            }
            else
            {
                var operatorInfo = Formatters.VisualBasic.Operators.TryGetOperatorInfo(method.Name);
                if (operatorInfo is not null && method is DmdMethodInfo methodInfo)
                {
                    for (int i = 0; i < operatorInfo.Length; i++)
                    {
                        if (i > 0)
                        {
                            output.Write(DbgTextColor.Text, " ");
                        }
                        var s = operatorInfo[i];
                        output.Write('A' <= s[0] && s[0] <= 'Z' ? DbgTextColor.Keyword : DbgTextColor.Operator, s);
                    }
                    WriteGenericMethodArguments(output, method, typeFormatter);
                }
Ejemplo n.º 2
0
        public async Task <Member> FindBySsn(string ssn)
        {
            if (ssn == null)
            {
                throw new ArgumentNullException($"Ssn cannot be null.");
            }

            if (MemberUtils.ValidateSsn(ssn) == false)
            {
                throw new ArgumentException("Ssn is invalid.");
            }

            var memberMap = await _access.FindBySsn(ssn);

            if (memberMap == null)
            {
                throw new NullReferenceException("Member map cannot be null.");
            }

            var member = _mapper.Unmap(memberMap);

            if (member == null)
            {
                throw new NullReferenceException("Member cannot be null.");
            }

            return(member);
        }
Ejemplo n.º 3
0
        public override void VisitColumnReference(ColumnReference columnReference)
        {
            var identifiers = columnReference.Identifiers;

            if (_lambdaParameters != null &&
                _lambdaParameters.Count > 0 &&
                _lambdaParameters.Peek().TryGetValue(identifiers.FirstOrDefault(), out var parameterExpression))
            {
                if (identifiers.Count > 1)
                {
                    AddExpressionToStack(MemberUtils.GetSubfieldMember(identifiers, 1, parameterExpression, _visitorMetadata.OperationsProvider));
                }
                else
                {
                    AddExpressionToStack(parameterExpression);
                }

                return;
            }

            identifiers = MemberUtils.RemoveAlias(_previousStage, identifiers);
            var memberAccess = MemberUtils.GetMember(_previousStage, identifiers, _visitorMetadata.OperationsProvider, out var property);

            AddUsedProperty(property);
            AddExpressionToStack(memberAccess);
            AddNameToStack(string.Join(".", identifiers));
        }
Ejemplo n.º 4
0
        public void ValidateNullSsnShouldReturnFalse()
        {
            string ssn    = null;
            var    result = MemberUtils.ValidateSsn(ssn);

            Assert.IsFalse(result);
        }
Ejemplo n.º 5
0
        public void ValidateValidPasswordShouldReturnTrue()
        {
            var password = "******";
            var result   = MemberUtils.ValidatePassword(password);

            Assert.IsTrue(result);
        }
Ejemplo n.º 6
0
        public void ValidateEmptySsnShouldReturnFalse()
        {
            var ssn    = string.Empty;
            var result = MemberUtils.ValidateSsn(ssn);

            Assert.IsFalse(result);
        }
Ejemplo n.º 7
0
        public void ValidateInvalidSsnShouldReturnFalse()
        {
            var ssn    = GenerateInvalidSsn();
            var result = MemberUtils.ValidateSsn(ssn);

            Assert.IsFalse(result);
        }
Ejemplo n.º 8
0
        protected override void FormatPropertyName(ITextColorWriter output, DmdPropertyInfo property)
        {
            var name  = Formatters.VisualBasic.VisualBasicTypeFormatter.GetFormattedIdentifier(property.Name);
            var color = MemberUtils.GetColor(property);

            output.Write(color, name);
        }
Ejemplo n.º 9
0
        public void ValidateEmptyPasswordShouldReturnTrue()
        {
            var password = string.Empty;
            var result   = MemberUtils.ValidatePassword(password);

            Assert.IsFalse(result);
        }
Ejemplo n.º 10
0
        public void ValidateNullPasswordShouldReturnTrue()
        {
            string password = null;
            var    result   = MemberUtils.ValidatePassword(password);

            Assert.IsFalse(result);
        }
Ejemplo n.º 11
0
        public Task RemoveFromRole(Member member, string roleName)
        {
            if (member == null)
            {
                throw new ArgumentNullException($"Member cannot be null.");
            }

            MemberUtils.ValidateMember(member);

            if (roleName == null)
            {
                throw new ArgumentNullException($"Role cannot be null.");
            }

            if (roleName.Length <= 0)
            {
                throw new ArgumentException("Role is invalid.");
            }

            var memberMap = _mapper.Map(member);

            if (memberMap == null)
            {
                throw new NullReferenceException("Member map cannot be null.");
            }

            return(_access.RemoveMemberRole(memberMap as IMemberMap, roleName));
        }
Ejemplo n.º 12
0
        protected override void FormatPropertyName(IDbgTextWriter output, DmdPropertyInfo property)
        {
            var name  = Formatters.CSharp.CSharpTypeFormatter.GetFormattedIdentifier(property.Name);
            var color = MemberUtils.GetColor(property);

            output.Write(color, name);
        }
Ejemplo n.º 13
0
        protected override void FormatReturnValueMethodName(DbgEvaluationInfo evalInfo, IDbgTextWriter output, DbgValueFormatterTypeOptions typeOptions, DbgValueFormatterOptions valueOptions, CultureInfo cultureInfo, DmdMethodBase method, DmdPropertyInfo property)
        {
            var typeFormatter = new Formatters.CSharp.CSharpTypeFormatter(output, typeOptions.ToTypeFormatterOptions(), null);

            typeFormatter.Format(method.DeclaringType, null);
            var valueFormatter = new Formatters.CSharp.CSharpPrimitiveValueFormatter(output, valueOptions.ToValueFormatterOptions(), cultureInfo);

            output.Write(DbgTextColor.Operator, ".");
            if ((object)property != null)
            {
                if (property.GetIndexParameters().Count != 0)
                {
                    output.Write(DbgTextColor.Keyword, Keyword_this);
                    WriteMethodParameterList(output, method, typeFormatter, GetAllMethodParameterTypes(property.GetMethodSignature()), IndexerParenOpen, IndexerParenClose);
                }
                else
                {
                    output.Write(MemberUtils.GetColor(property), Formatters.CSharp.CSharpTypeFormatter.GetFormattedIdentifier(property.Name));
                }
                valueFormatter.WriteTokenComment(property.MetadataToken);
                output.Write(DbgTextColor.Operator, ".");
                output.Write(DbgTextColor.Keyword, "get");
                valueFormatter.WriteTokenComment(method.MetadataToken);
            }
            else
            {
                var methodColor = TypeFormatterUtils.GetColor(method, canBeModule: false);
                if (TypeFormatterUtils.TryGetMethodName(method.Name, out var containingMethodName, out var localFunctionName))
                {
                    output.Write(methodColor, Formatters.CSharp.CSharpTypeFormatter.GetFormattedIdentifier(containingMethodName));
                    output.Write(DbgTextColor.Operator, ".");
                    output.Write(methodColor, Formatters.CSharp.CSharpTypeFormatter.GetFormattedIdentifier(localFunctionName));
                    valueFormatter.WriteTokenComment(method.MetadataToken);
                    WriteGenericMethodArguments(output, method, typeFormatter);
                }
Ejemplo n.º 14
0
        protected override void FormatFieldName(IDbgTextWriter output, DmdFieldInfo field)
        {
            var name  = Formatters.CSharp.CSharpTypeFormatter.GetFormattedIdentifier(field.Name);
            var color = MemberUtils.GetColor(field);

            output.Write(color, name);
        }
        public void Instance_ValueType_Field()
        {
            var instance = new ReferenceType();

            MemberUtils.GenerateSetMethod(ReferenceType.PropertyInfo_Instance_ValueType_Field)(instance, Magic_ValueType);
            Assert.Equal(Magic_ValueType, instance.Instance_ValueType_Field);
        }
Ejemplo n.º 16
0
        protected override void FormatFieldName(ITextColorWriter output, DmdFieldInfo field)
        {
            var name  = Formatters.VisualBasic.VisualBasicTypeFormatter.GetFormattedIdentifier(field.Name);
            var color = MemberUtils.GetColor(field);

            output.Write(color, name);
        }
Ejemplo n.º 17
0
        public BenchmarkGet()
        {
            _property = typeof(BenchmarkGet).GetProperty(nameof(SomeProperty), BindingFlags.Public | BindingFlags.Instance);
            _field    = typeof(BenchmarkGet).GetField(nameof(SomeField), BindingFlags.Public | BindingFlags.Instance);

            _getProperty = MemberUtils.GenerateGetMethod(_property);
            _getField    = MemberUtils.GenerateGetMethod(_field);
        }
Ejemplo n.º 18
0
        public void Static_ValueType_Property()
        {
            ValueType.Static_ValueType_Property = Magic_ValueType;

            var getter = MemberUtils.GenerateGetMethod(ValueType.PropertyInfo_Static_ValueType_Property);

            Assert.Equal(Magic_ValueType, getter(null));
        }
        public void Static_ReferenceType_Field()
        {
            ValueType.Static_ReferenceType_Field = Magic_ReferenceType;

            var getter = MemberUtils.GenerateGetMethod(ValueType.FieldInfo_Static_ReferenceType_Field);

            Assert.Equal(Magic_ReferenceType, getter(null));
        }
Ejemplo n.º 20
0
        public void SwissILGetField()
        {
            var swiss = MemberUtils.GenerateGetMethod(_field);

            for (var i = 0; i < Reps; i++)
            {
                swiss(this);
            }
        }
Ejemplo n.º 21
0
        public void SwissILGetProperty()
        {
            var swiss = MemberUtils.GenerateGetMethod(_property);

            for (var i = 0; i < Reps; i++)
            {
                swiss(this);
            }
        }
        public void Instance_ValueType_Property()
        {
            var instance = new ValueType();

            instance.Instance_ValueType_Property = Magic_ValueType;

            var getter = MemberUtils.GenerateGetMethod(ValueType.PropertyInfo_Instance_ValueType_Property);

            Assert.Equal(Magic_ValueType, getter(instance));
        }
        public void Instance_ReferenceType_Field()
        {
            var instance = new ReferenceType();

            instance.Instance_ReferenceType_Field = Magic_ReferenceType;

            var getter = MemberUtils.GenerateGetMethod(ReferenceType.FieldInfo_Instance_ReferenceType_Field);

            Assert.Equal(Magic_ReferenceType, getter(instance));
        }
        // TODO handle cases when it fails to insert data into db
        public async Task <RentAttemptModel> RentBooks(string ssn, IEnumerable <string> isbns)
        {
            if (!MemberUtils.ValidateSsn(ssn))
            {
                throw new ArgumentException("Invalid isbn");
            }

            if (isbns == null || !isbns.Any())
            {
                throw new ArgumentException("Isbn list cannot be empty when renting books");
            }

            var member = await _memberRepository.FindBySsn(ssn);

            var role = await _memberRepository.GetRoleName(member);

            if (!Roles.CanRent(role))
            {
                return(RentAttemptModel.WhenUserIsInWrongRole());
            }

            var order = new Order()
            {
                MemberId = ssn,
                Created  = DateTime.UtcNow
            };

            var orderId = await _orderRepository.InsertAsyncWithIdReturn(order);

            foreach (var isbn in isbns)
            {
                var book = await _bookRepository.GetByIsbnAsync(isbn);

                if (!book.Loanable)
                {
                    return(RentAttemptModel.WhenOneOfTheBooksIsNotLoanable());
                }

                var availableCopies = (await _bookCopyRepository.GetByIsbnAsync(isbn))
                                      .Where(x => x.Available).ToList();
                if (availableCopies.Count == 0)
                {
                    return(RentAttemptModel.WhenOneOfTheBooksDoesntHaveCopiesAvailable());
                }

                var chosenCopy = availableCopies[0];
                chosenCopy.Available = false;

                var orderLine = BookRentUtils.CreateOrderLineModel(orderId, chosenCopy.Id);
                await _orderLineRepository.InsertAsync(orderLine);

                await _bookCopyRepository.UpdateAsync(chosenCopy);
            }
            return(RentAttemptModel.WhenSuccesful());
        }
Ejemplo n.º 25
0
        public override void VisitColumnReference(ColumnReference columnReference)
        {
            var identifiers = columnReference.Identifiers;

            identifiers = MemberUtils.RemoveAlias(_previousStage, identifiers);
            var memberAccess = MemberUtils.GetMember(_previousStage, identifiers, _visitorMetadata.OperationsProvider, out var property);

            _usedProperties.Add(property);

            _groupByExpressions.Add(new GroupByExpression(memberAccess, string.Join(".", identifiers), property));
        }
Ejemplo n.º 26
0
        public string GetShortSignature(bool asExtention)
        {
            var ret = base.ShortSignature;

            if (IsOperator)
            {
                ret = ret.Remove("op_");
            }
            ret += MemberUtils.GetGenericListSignature(_mi);
            ret += MemberUtils.GetParametersShortSignature(_mi.GetParameters(), (asExtention?1:0));
            return(ret);
        }
Ejemplo n.º 27
0
        private VisitResult VisitColumnReferenceExpression_Internal(ColumnReference columnReference)
        {
            var identifiers = columnReference.Identifiers;

            identifiers = MemberUtils.RemoveAlias(_previousStage, identifiers);
            var memberAccess = MemberUtils.GetMember(_previousStage, identifiers, _visitorMetadata.OperationsProvider, out var property);

            AddUsedProperty(property);
            return(new VisitResult()
            {
                Expression = memberAccess
            });
        }
        public void Test()
        {
            var tuple = ("Test", default(object));

            var field = tuple.GetType()
                        .GetField(nameof(tuple.Item1), BindingFlags.Public | BindingFlags.Instance);

            var getter = MemberUtils.GenerateGetMethod(field);

            var testValue = getter(tuple);

            Assert.Equal(tuple.Item1, testValue);
        }
Ejemplo n.º 29
0
        ///<summary>Fires INotifyPropertyChanged.OnPropertyChanged for this given property Expression.
        ///Call this from a setter property to notify bindables that this property has changed.</summary>
        public void RaisePropertyChanged <T>(Expression <Func <T> > property)
        {
            MemberInfo member = MemberUtils.GetMemberInfo(property);

#pragma warning disable 0618
            OnPropertyChanged(member.Name);
#pragma warning restore 0618
            BindablePropertyAttribute attr = member.GetCustomAttribute <BindablePropertyAttribute>();
            if (attr != null && !attr.ListDependentPropertyNames.IsNullOrEmpty())
            {
                //Raise property changed on any dependent properties.
                attr.ListDependentPropertyNames.ForEach(x => RaisePropertyChanged(x));
            }
        }
Ejemplo n.º 30
0
        protected Module(BaseContainer container)
        {
            if (container == null)
            {
                throw new ArgumentNullException(nameof(container));
            }

            var actualMember = container.Member.GetMember;

            _setVal = MemberUtils.GetSetMethod(actualMember);
            _getVal = MemberUtils.GetGetMethod(actualMember);

            ModuleContainer = container;
        }