Пример #1
0
        public ClassDefinition GetClassDefinition(object instance)
        {
            if (instance is ASObject)
            {
                ClassDefinition classDefinition;

                ASObject aso = instance as ASObject;

                ClassMember[] classMemberList = new ClassMember[aso.Count];

                int i = 0;

                foreach (KeyValuePair <string, object> entry in aso)
                {
                    ClassMember classMember = new ClassMember(entry.Key, BindingFlags.Default, MemberTypes.Custom, null);

                    classMemberList[i] = classMember;

                    i++;
                }

                string customClassName = aso.TypeName;

                classDefinition = new ClassDefinition(customClassName, classMemberList, false, false);

                return(classDefinition);
            }

            throw new Exception("GetClassDefinition is not ASObject");
        }
Пример #2
0
        public override ClassDefinition GetClassDefinition(object instance)
        {
            //EntityObject eo = instance as EntityObject;
            Type         type  = instance.GetType();
            BindingFlags flags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty | BindingFlags.DeclaredOnly;

            MemberInfo[]       memberInfos     = ReflectionUtils.FindMembers(type, MemberTypes.Property, flags, typeof(System.Runtime.Serialization.DataMemberAttribute));
            List <ClassMember> classMemberList = new List <ClassMember>();

            for (int i = 0; i < memberInfos.Length; i++)
            {
                MemberInfo   memberInfo  = memberInfos[i];
                PropertyInfo pi          = memberInfo as PropertyInfo;
                object[]     attributes  = memberInfo.GetCustomAttributes(false);
                ClassMember  classMember = new ClassMember(memberInfo.Name, flags, memberInfo.MemberType, attributes);
                classMemberList.Add(classMember);
            }
            string customClassName = type.FullName;

            customClassName = FluorineConfiguration.Instance.GetCustomClass(customClassName);
            ClassMember[]   classMembers    = classMemberList.ToArray();
            ClassDefinition classDefinition = new ClassDefinition(customClassName, classMembers, GetIsExternalizable(instance), GetIsDynamic(instance));

            return(classDefinition);
        }
        public async Task <IActionResult> Add(AddStudentViewModel model, [FromRoute] int id)
        {
            var user = await GetCurrentUserAsync();

            var newStudent = new Student {
                FirstName = model.FirstName, LastName = model.LastName, Grade = model.Grade, ApplicationUserId = user.Id
            };

            if (ModelState.IsValid && newStudent.ApplicationUserId != null)
            {
                context.Add(newStudent);
                await context.SaveChangesAsync();

                Student student = await context.Student.Where(s => s.FirstName == newStudent.FirstName && s.LastName == newStudent.LastName && s.Grade == newStudent.Grade && s.ApplicationUserId == newStudent.ApplicationUserId).SingleOrDefaultAsync();

                ClassMember classMember = new ClassMember {
                    StudentId = student.StudentId, ClassId = id
                };
                context.Add(classMember);
                await context.SaveChangesAsync();

                return(RedirectToAction("Index", new RouteValueDictionary(
                                            new { controller = "Profile", action = "Index" })));
            }

            return(View(model));
        }
Пример #4
0
        private static string ToFieldName(ClassMember property)
        {
            const string prefix = "_";
            var          withFirstLetterLower = ToFirstLetterLower(property.Name);

            return(prefix + withFirstLetterLower);
        }
Пример #5
0
        public override ClassDefinition GetClassDefinition(object instance)
        {
            Type         type        = instance.GetType();
            BindingFlags bindingAttr = BindingFlags.Public | BindingFlags.Instance;

            PropertyInfo[] propertyInfos = type.GetProperties(bindingAttr);
#if !(NET_1_1)
            List <ClassMember> classMemberList = new List <ClassMember>();
#else
            ArrayList classMemberList = new ArrayList();
#endif
            for (int i = 0; i < propertyInfos.Length; i++)
            {
                PropertyInfo propertyInfo = propertyInfos[i];
                if (propertyInfo.Name != "HelpLink" && propertyInfo.Name != "TargetSite")
                {
                    ClassMember classMember = new ClassMember(propertyInfo.Name, bindingAttr, propertyInfo.MemberType, null);
                    classMemberList.Add(classMember);
                }
            }
            string customClassName = type.FullName;
            customClassName = FluorineConfiguration.Instance.GetCustomClass(customClassName);
#if !(NET_1_1)
            ClassMember[] classMembers = classMemberList.ToArray();
#else
            ClassMember[] classMembers = classMemberList.ToArray(typeof(ClassMember)) as ClassMember[];
#endif
            ClassDefinition classDefinition = new ClassDefinition(customClassName, classMembers, GetIsExternalizable(instance), GetIsDynamic(instance));
            return(classDefinition);
        }
 public static ClassMember Intercept(ClassMember member)
 {
     if (IsIndependent(member.UnderlyingType))
         return new ClassMemberIndependent(member);
     else
         return member;
 }
Пример #7
0
 public ClassDefinition GetClassDefinition(object instance)
 {
     if (instance is ASObject)
     {
         ClassDefinition classDefinition;
         ASObject        aso = instance as ASObject;
         if (aso.IsTypedObject)
         {
             ClassMember[] classMemberList = new ClassMember[aso.Count];
             int           i = 0;
             foreach (KeyValuePair <string, object> entry in aso)
             {
                 ClassMember classMember = new ClassMember(entry.Key, BindingFlags.Default, MemberTypes.Custom, null);
                 classMemberList[i] = classMember;
                 i++;
             }
             string customClassName = aso.TypeName;
             classDefinition = new ClassDefinition(customClassName, classMemberList, false, false);
         }
         else
         {
             string customClassName = string.Empty;
             classDefinition = new ClassDefinition(customClassName, ClassDefinition.EmptyClassMembers, false, true);
         }
         if (log.IsDebugEnabled)
         {
             log.Debug(string.Format("Creating class definition for AS object {0}", aso));
         }
         return(classDefinition);
     }
     throw new ArgumentException();
 }
Пример #8
0
        public override ClassDefinition GetClassDefinition(object instance)
        {
            //EntityObject eo = instance as EntityObject;
            var type            = instance.GetType();
            var flags           = BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty | BindingFlags.DeclaredOnly;
            var memberInfos     = ReflectionUtils.FindMembers(type, MemberTypes.Property, flags, typeof(System.Runtime.Serialization.DataMemberAttribute));
            var classMemberList = new List <ClassMember>();

            for (var i = 0; i < memberInfos.Length; i++)
            {
                var memberInfo = memberInfos[i];
                var pi         = memberInfo as PropertyInfo;
                //Do not serialize EntityReferences
                if (pi.PropertyType.IsSubclassOf(typeof(System.Data.Objects.DataClasses.EntityReference)))
                {
                    continue;
                }
                var attributes  = memberInfo.GetCustomAttributes(false);
                var classMember = new ClassMember(memberInfo.Name, flags, memberInfo.MemberType, attributes);
                classMemberList.Add(classMember);
            }
            var customClassName = type.FullName;

            customClassName = FluorineConfiguration.Instance.GetCustomClass(customClassName);
            var classMembers    = classMemberList.ToArray();
            var classDefinition = new ClassDefinition(customClassName, classMembers, GetIsExternalizable(instance), GetIsDynamic(instance));

            return(classDefinition);
        }
Пример #9
0
 public GetterFunction(ClassMember classMember) : base(classMember.Owner, $"get{classMember.Name.ToUpperFirstCharacter()}", classMember.Type)
 {
     ClassMember = classMember;
     Expressions.Add(new ReturnExpression {
         ClassMember = classMember
     });
 }
Пример #10
0
        public ClassDefinition GetClassDefinition(object instance)
        {
            Type type = instance.GetType();

            List <ClassMember> classMemberList = new List <ClassMember>();

            FieldInfo[] fieldInfos = type.GetFields(BindingFlags.Public | BindingFlags.Instance);

            for (int i = 0; i < fieldInfos.Length; i++)
            {
                FieldInfo fieldInfo = fieldInfos[i];

                string name = fieldInfo.Name;

                ClassMember classMember = new ClassMember(name, BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance, fieldInfo.MemberType, null);

                classMemberList.Add(classMember);
            }

            ClassMember[] classMembers = classMemberList.ToArray();

            string customClassName = type.FullName;

            customClassName = AMFWriter.GetCustomClass(customClassName);

            ClassDefinition classDefinition = new ClassDefinition(customClassName, classMembers, GetIsExternalizable(instance), GetIsDynamic(instance));

            return(classDefinition);
        }
Пример #11
0
        /// <summary>
        /// Lên lớp, thêm trạng thái lớp mới
        /// </summary>
        /// <param name="studentID"></param>
        /// <param name="grade"></param>
        /// <param name="className"></param>
        /// <param name="configID"></param>
        /// <param name="context"></param>
        public void GradeUp(int studentID, Grade grade, string className, int configID, EduVinhContext context)
        {
            EduVinhContext _context  = context;
            string         classType = className.Substring(1, 1);
            bool           existNext = _context.Classes.Any(c => c.ClassName.Contains(classType) && c.Grade == grade);

            if (existNext)
            {
                int         nextID = _context.Classes.Where(c => c.ClassName.Contains(classType) && c.Grade == grade).First().ClassID;
                ClassMember newMem = new ClassMember
                {
                    ClassID     = nextID,
                    ConfigureID = configID,
                    LearnStatus = LearnStatus.Learning,
                    UserID      = studentID,
                };
                _context.ClassMembers.Add(newMem);
            }
            else
            {
                int         nextID = context.Classes.Where(c => c.Grade == grade).First().ClassID;
                ClassMember newMem = new ClassMember
                {
                    ClassID     = nextID,
                    ConfigureID = configID,
                    LearnStatus = LearnStatus.Learning,
                    UserID      = studentID,
                };
                _context.ClassMembers.Add(newMem);
            }
            _context.SaveChanges();
        }
Пример #12
0
 /// <summary>
 /// Đổi giáo viên của môn trong 1 lớp
 /// </summary>
 /// <param name="ClassID"></param>
 /// <param name="ConfigID"></param>
 /// <param name="TeacherID"></param>
 /// <returns></returns>
 public JsonResult ChangeTeacherSubject(int ClassID, int ConfigID, int?OldTeacherID, int NewTeacherID)
 {
     try
     {
         //Nếu có giáo viên khác dạy trước thì xóa đi
         bool exist = db.MemberRepository
                      .GetAll()
                      .Any(e => e.ConfigureID == ConfigID && e.ClassID == ClassID && e.UserID == OldTeacherID);
         if (exist)
         {
             ClassMember member = db.MemberRepository.GetAll()
                                  .Where(e => e.ConfigureID == ConfigID && e.ClassID == ClassID && e.UserID == OldTeacherID)
                                  .FirstOrDefault();
             db.MemberRepository.Delete(member);
         }
         ClassMember newMem = new ClassMember
         {
             ClassID     = ClassID,
             UserID      = NewTeacherID,
             ConfigureID = ConfigID,
         };
         db.MemberRepository.Add(newMem);
         db.SaveChanges();
         return(Json("Đổi giáo viên thành công", JsonRequestBehavior.AllowGet));
     }
     catch (Exception e)
     {
         Response.StatusCode = 500;
         return(Json(e.Message, JsonRequestBehavior.AllowGet));
     }
 }
Пример #13
0
        internal ClassDefinition ReadClassDefinition(int handle)
        {
            ClassDefinition classDefinition = null;
            //an inline object
            bool inlineClassDef = ((handle & 1) != 0); handle = handle >> 1;

            if (inlineClassDef)
            {
                //inline class-def
                string typeIdentifier = ReadAMF3String();
                //flags that identify the way the object is serialized/deserialized
                bool externalizable = ((handle & 1) != 0); handle = handle >> 1;
                bool dynamic        = ((handle & 1) != 0); handle = handle >> 1;

                ClassMember[] members = new ClassMember[handle];
                for (int i = 0; i < handle; i++)
                {
                    string      name        = ReadAMF3String();
                    ClassMember classMember = new ClassMember(name, BindingFlags.Default, MemberTypes.Custom);
                    members[i] = classMember;
                }
                classDefinition = new ClassDefinition(typeIdentifier, members, externalizable, dynamic);
                AddClassReference(classDefinition);
            }
            else
            {
                //A reference to a previously passed class-def
                classDefinition = ReadClassReference(handle);
            }
            return(classDefinition);
        }
Пример #14
0
 /// <summary>
 /// Chuyển lớp cho học sinh
 /// </summary>
 /// <param name="ClassID"></param>
 /// <param name="Identifier"></param>
 /// <returns></returns>
 public JsonResult SwitchClass(int ClassID, string Identifier)
 {
     try
     {
         // Lấy niên khóa
         Configure Configure = db.ConfigRepository.GetAll().Where(e => e.IsActive).FirstOrDefault();
         // Nếu chuyển ở năm học hiện tại thì cho phép, còn lại thì không
         User student    = db.UserRepository.FindByIdentifier(Identifier);
         bool IsLearning = db.MemberRepository.GetAll().Any(e => e.LearnStatus == LearnStatus.Learning && e.ConfigureID == Configure.ID && e.UserID == student.ID);
         if (!IsLearning)
         {
             return(Json(new { message = "Học sinh này đã tốt nghiệp", success = false }, JsonRequestBehavior.AllowGet));
         }
         List <ClassMember> old_member = db.MemberRepository.GetAll().Where(e => e.UserID == student.ID).ToList();
         bool CurrentClass             = old_member.Any(e => e.ClassID == ClassID && Configure.ID == e.ConfigureID);
         //Không cho chuyển trùng lớp đang học
         if (CurrentClass)
         {
             return(Json(new { message = "Bạn chuyển trùng lớp đang học", success = false }, JsonRequestBehavior.AllowGet));
         }
         LearnStatus status         = LearnStatus.Learning;
         bool        SwitchOldClass = false;
         //Bỏ các lớp khác
         old_member.ForEach(e =>
         {
             // Lấy tình trạng học của lớp cũ để đưa sang lớp mới
             if (e.LearnStatus == LearnStatus.Learning)
             {
                 status = e.LearnStatus;
                 //Đánh dấu đã chuyển
                 e.LearnStatus = LearnStatus.Switched;
             }
             //Nếu trường hợp chuyển lại lớp cũ..
             if (e.LearnStatus == LearnStatus.Switched && e.ClassID == ClassID)
             {
                 e.LearnStatus  = LearnStatus.Learning;
                 SwitchOldClass = true;
             }
         });
         if (!SwitchOldClass)
         {
             ClassMember new_member = new ClassMember
             {
                 UserID      = student.ID,
                 ClassID     = ClassID,
                 ConfigureID = Configure.ID,
                 LearnStatus = status,
             };
             db.MemberRepository.Add(new_member);
         }
         db.SaveChanges();
         return(Json(new { message = "Chuyển lớp thành công!", success = true }, JsonRequestBehavior.AllowGet));
     }
     catch (Exception e)
     {
         Response.StatusCode = 500;
         return(Json(e.Message, JsonRequestBehavior.AllowGet));
     }
 }
Пример #15
0
        public void CastingShouldVisibilityModifier(string value, VisibilityModifier expected)
        {
            // Act
            ClassMember member = value;

            // Assert
            member.Visibility.Should().Be(expected);
        }
Пример #16
0
        public object GetValue(object instance, ClassMember member)
        {
            Type type = instance.GetType();

            FieldInfo fieldInfo = type.GetField(member.Name, member.BindingFlags);

            return(fieldInfo.GetValue(instance));
        }
Пример #17
0
        public void CastingShouldLeaveTrimmedNamePart(string value, string expected)
        {
            // Act
            ClassMember member = value;

            // Assert
            member.Name.Should().Be(expected);
        }
Пример #18
0
        public void CastingShouldDetectAbstractModifier(string value, bool expected)
        {
            // Act
            ClassMember member = value;

            // Assert
            member.IsAbstract.Should().Be(expected);
        }
Пример #19
0
        public void SetValue(object instance, ClassMember member, object value)
        {
            Type type = instance.GetType();

            FieldInfo fieldInfo = type.GetField(member.Name, member.BindingFlags);

            fieldInfo.SetValue(instance, value);
        }
Пример #20
0
 public void SetValue(object instance, ClassMember member, object value)
 {
     if (instance is ASObject)
     {
         ASObject aso = instance as ASObject;
         aso[member.Name] = value;
     }
     throw new ArgumentException();
 }
Пример #21
0
        private string GetLable(ClassMember classMember)
        {
            if (classMember == null)
            {
                return("");
            }

            return(classMember.GetLabel());
        }
Пример #22
0
        public static double FindAttendanceForStudent(int Id, List <ClassMember> ClassMembers, List <Attendance> AllAttendance, DateTime today)
        {
            ClassMember DesiredClassMember = ClassMembers.Where(cm => cm.StudentId == Id).SingleOrDefault();

            double DaysAttended  = AllAttendance.Where(a => a.ClassMemberId == DesiredClassMember.ClassMemberId && a.Date <= today && a.CurrentlyAbsent == false).Count();
            double AvailableDays = AllAttendance.Where(a => a.ClassMemberId == DesiredClassMember.ClassMemberId && a.Date <= today).Count();

            return((DaysAttended / AvailableDays) * 100);
        }
Пример #23
0
        public SetterFunction(ClassMember classMember) : base(classMember.Owner, $"set{classMember.Name.ToUpperFirstCharacter()}", JavaVoid)
        {
            ClassMember = classMember;
            var fp = new FunctionParameter(classMember.Name, ClassMember.Type);

            FunctionParameters.Add(fp);
            Expressions.Add(new AssignExpression {
                Destination = classMember, Source = fp
            });
        }
Пример #24
0
        public void ParseClasses()
        {
            Classes = new Class[classDescriptors.Length];
            for (uint m = 0; m < Classes.Length; ++m)
            {
                Classes[m] = new Class();
            }


            int memberId = 0;

            for (uint i = 0; i < Classes.Length; ++i)
            {
                var c   = classDescriptors[i];
                var cls = Classes[i];

                cls.name = ReadString((int)c.nameOffset);


                if (c.baseClassID < 0)
                {
                    cls.baseClass = new ExternalClass();
                }
                else if (c.baseClassID > 0)
                {
                    cls.baseClass = Classes[c.baseClassID - 1];
                }

                for (uint m = 0; m < c.classDataMemberCount; ++m)
                {
                    var         d   = classMemberDescriptors[memberId++];
                    ClassMember mem = new ClassMember();
                    mem.size           = d.sizeInBytes;
                    mem.fixedArraySize = d.fixedArraySize;
                    mem.flags          = d.flags;
                    mem.offset         = d.valueOffset;
                    mem.name           = ReadString((int)d.nameOffset);

                    Console.WriteLine("Member type ID: " + d.typeID);

                    if (d.typeID >= Types.Length)
                    {
                        mem.fieldType = Classes[(int)d.typeID - Types.Length - 1];
                    }
                    else
                    {
                        mem.fieldType = Types[(int)d.typeID];
                    }



                    cls.members.Add(mem);
                }
            }
        }
 public void ReplaseMethodBody(ClassMember.Function function, string text)
 {
     var h = GetHelper(function.BodyCloseTokenLocation.FileIndex);
     var xx = h.Source.GetText();
     var closeBrecket = h.Source.GetText(function.BodyCloseTokenLocation.ToTextSpan());
     if (closeBrecket != "}")
     {
         System.Windows.Forms.MessageBox.Show("Internal Nemerle WinForms Designer Error!");
         throw new ArgumentException("closeBrecket != \"}\"");
     }
     Add(function.Location, function.BodyInnerLocation, text);
 }
Пример #26
0
        public void SingleProperty_SingleBuilderProperty()
        {
            // Arrange
            var property       = new ClassMember("string", "Property");
            var analysisResult = new AnalysisResult("ClassName", new[] { property });

            // Act
            var builderModel = _builderModelCreator.Create(analysisResult);

            // Assert
            Assert.NotNull(builderModel);
            Assert.Single(builderModel.Properties);
        }
Пример #27
0
 public ObjectPropertyAtom(IObjectInstance objectInstance, ClassMember classProperty)
     : base(objectInstance, classProperty)
 {
     if (ClassProperty.CanRead)
     {
         // When the property is out of date, update it from the wrapped object.
         _depProperty = new Dependent(() => BindingInterceptor.Current.UpdateValue(this));
         // When the property becomes out of date, trigger an update.
         // The update should have lower priority than user input & drawing,
         // to ensure that the app doesn't lock up in case a large model is
         // being updated outside the UI (e.g. via timers or the network).
         _depProperty.Invalidated += () => UpdateScheduler.ScheduleUpdate(this);
     }
 }
Пример #28
0
        public EntityClass(EntityConstraintsClass eConsts, string module)
        {
            EntityConstraints = eConsts;
            Name    = eConsts.TableName.ToPascalCase() + "Entity";
            Package = $@"havelsan.kovan.{module}.service.entity";

            BaseClass = PredefinedClasses.HvlEntity;

            Annotations.Add(Entity());

            Annotations.Add(Table()
                            .SetParameter("name", eConsts.TableNameRef)
                            .SetParameter("schema", eConsts.TableSchema)
                            .SetParameter("indexes", eConsts.UniqueConstraintsRef.Select(u =>
                                                                                         Index()
                                                                                         .SetParameter("name", u.Name)
                                                                                         .SetParameter("unique", true)
                                                                                         .SetParameter("columnList", u.ColumnList)).ToList()

                                          ));

            IfPresent(eConsts.TableSequenceRef, ts => Annotations.Add(HvlEntitySequence().SetParameter("name", ts)));

            ClassMembers.AddRange(eConsts.Table.Columns.Select(col =>
            {
                var cm = new ClassMember(col.Name.ToCamelCase(), col.Type.ToJavaType(), null, AccessModifier.Private);
                cm.Annotations.Add(Column().SetParameter("name", eConsts.GetColumnName(col)));
                cm.Annotations.AddIfTrue(!col.Nullable, NotNull());

                IfPresent(col.Size, size =>
                {
                    if (cm.Type.BaseClass == PredefinedClasses.JavaNumber)
                    {
                        var da = Digits();
                        size.Max.IfPresent(max => da.SetParameter("integer", eConsts.GetColumnSizeMax(col)));
                        size.Min.IfPresent(min => da.SetParameter("fraction", eConsts.GetColumnSizeMin(col)));
                        cm.Annotations.Add(da);
                    }
                    else
                    {
                        var sa = Size();
                        size.Min.IfPresent(min => sa.SetParameter("min", eConsts.GetColumnSizeMin(col)));
                        size.Max.IfPresent(max => sa.SetParameter("max", eConsts.GetColumnSizeMax(col)));
                        cm.Annotations.Add(sa);
                    }
                });
                return(cm);
            }));
        }
Пример #29
0
        private uint GetAttributes(ClassMember classMember)
        {
            uint attr = (uint)DROPDOWNFONTATTR.FONTATTR_PLAIN;             //TODO: Implement it

            if (classMember == null)
            {
                return(attr);
            }

            if ((classMember.Attributes & NemerleModifiers.Static) != 0)
            {
                attr |= (uint)DROPDOWNFONTATTR.FONTATTR_ITALIC;
            }
            return(attr);
        }
Пример #30
0
        public void SinglePropertyWithTypeString_BuilderPropertyTypeAsExpected()
        {
            // Arrange
            var property       = new ClassMember("string", "Property");
            var analysisResult = new AnalysisResult("ClassName", new[] { property });

            // Act
            var builderModel = _builderModelCreator.Create(analysisResult);

            // Assert
            Assert.NotNull(builderModel);
            var builderProperty = Assert.Single(builderModel.Properties);

            Assert.Equal("string", builderProperty.Type);
        }
Пример #31
0
        public object GetValue(object instance, ClassMember member)
        {
            if (instance is ASObject)
            {
                ASObject aso = instance as ASObject;

                if (aso.ContainsKey(member.Name))
                {
                    return(aso[member.Name]);
                }

                throw new Exception(string.Format("Member:{0} not found in ASObject", member.Name));
            }

            throw new Exception("GetValue instance is not ASObject");
        }
Пример #32
0
        internal ClassDefinition ReadClassDefinition(int handle)
        {
            ClassDefinition classDefinition = null;
            //an inline object
            bool inlineClassDef = ((handle & 1) != 0);

            handle = handle >> 1;
            if (inlineClassDef)
            {
                //inline class-def
                string typeIdentifier = ReadAMF3String();
                //flags that identify the way the object is serialized/deserialized
                bool externalizable = ((handle & 1) != 0);
                handle = handle >> 1;
                bool dynamic = ((handle & 1) != 0);
                handle = handle >> 1;

                ClassMember[] members = new ClassMember[handle];
                for (int i = 0; i < handle; i++)
                {
                    string      name        = ReadAMF3String();
                    ClassMember classMember = new ClassMember(name, BindingFlags.Default, MemberTypes.Custom, null);
                    members[i] = classMember;
                }
                classDefinition = new ClassDefinition(typeIdentifier, members, externalizable, dynamic);
                AddClassReference(classDefinition);
            }
            else
            {
                //A reference to a previously passed class-def
                classDefinition = ReadClassReference(handle);
            }
#if !SILVERLIGHT
            if (log.IsDebugEnabled)
            {
                if (classDefinition.IsTypedObject)
                {
                    log.Debug(__Res.GetString(__Res.ClassDefinition_Loaded, classDefinition.ClassName));
                }
                else
                {
                    log.Debug(__Res.GetString(__Res.ClassDefinition_LoadedUntyped));
                }
            }
#endif
            return(classDefinition);
        }
Пример #33
0
        public void SingleProperty_BuilderPropertyParameterNameAsExpected(
            string propertyName,
            string parameterName)
        {
            // Arrange
            var property       = new ClassMember("string", propertyName);
            var analysisResult = new AnalysisResult("ClassName", new[] { property });

            // Act
            var builderModel = _builderModelCreator.Create(analysisResult);

            // Assert
            Assert.NotNull(builderModel);
            var builderProperty = Assert.Single(builderModel.Properties);

            Assert.Equal(parameterName, builderProperty.ParameterName);
        }
Пример #34
0
    /*
     * IEnumerator, coroutine Linq is difficult, study agains
     *
     */
    // Use this for initialization
    void Start()
    {
        ClassMember.Hoge ();
        ClassMember cm = new ClassMember ();
        cm.Mage ();
        StaticClass.Hoge ();

        SealedClass sc = new SealedClass ();
        sc.canExtended ();

        ExtendSealedClass esc = new ExtendSealedClass ();
        esc.canExtended ();

        ShowStruction ss = new ShowStruction (1, 2);
        Debug.Log (ss.x);

        TestBoxConvert ();

        //		ShowCast show_cast = new ShowCast ();
        //		show_cast.Main ();

        TestDelegate ();
    }
 public ClassMemberIndependent(ClassMember independent)
     : base(independent.Name, UnwrapType(independent.UnderlyingType), independent.ComponentType)
 {
     _independent = independent;
     _valueProperty = independent.UnderlyingType.GetProperty("Value");
 }
Пример #36
0
 public ClassMemberCommand(MethodInfo method, ClassMember condition, Type objectInstanceType)
     : base(method.Name, typeof(ObjectPropertyCommand), objectInstanceType)
 {
     ExecuteMethod = method;
     CanExecuteProperty = condition;
 }
Пример #37
0
 public override ClassDefinition GetClassDefinition(object instance)
 {
     ClassDefinition classDefinition = null;
     Type type = instance.GetType();
     //Verify [DataContract] or [Serializable] on type
     bool serializable = IsDataContract(type) || type.IsSerializable;
     if (!serializable && type.Assembly != typeof(AMFWriter).Assembly)
         throw new FluorineException(string.Format("Type {0} was not marked as a data contract.", type.FullName));
     List<string> memberNames = new List<string>();
     List<ClassMember> classMemberList = new List<ClassMember>();
     PropertyInfo[] propertyInfos = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
     for (int i = 0; i < propertyInfos.Length; i++)
     {
         PropertyInfo propertyInfo = propertyInfos[i] as PropertyInfo;
         string name = propertyInfo.Name;
         if (propertyInfo.GetCustomAttributes(typeof(TransientAttribute), true).Length > 0)
             continue;
         if (propertyInfo.GetGetMethod() == null || propertyInfo.GetGetMethod().GetParameters().Length > 0)
         {
             //The gateway will not be able to access this property
             string msg = __Res.GetString(__Res.Reflection_PropertyIndexFail, string.Format("{0}.{1}", type.FullName, propertyInfo.Name));
             if (log.IsWarnEnabled)
                 log.Warn(msg);
             continue;
         }
         object[] customAttributes = propertyInfo.GetCustomAttributes(typeof(System.Runtime.Serialization.DataMemberAttribute), false);
         if ((customAttributes != null) && (customAttributes.Length > 0))
         {
             System.Runtime.Serialization.DataMemberAttribute attribute = (System.Runtime.Serialization.DataMemberAttribute)customAttributes[0];
             if (attribute.Name != null && attribute.Name.Length != 0)
                 name = attribute.Name;
         }
         else
         {
             if (!type.IsSerializable && type.Assembly != typeof(AMFWriter).Assembly)
                 continue;
         }
         if (memberNames.Contains(name))
             continue;
         memberNames.Add(name);
         BindingFlags bf = BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance;
         try
         {
             PropertyInfo propertyInfoTmp = type.GetProperty(name);
         }
         catch (AmbiguousMatchException)
         {
             bf = BindingFlags.DeclaredOnly | BindingFlags.Static | BindingFlags.Public | BindingFlags.Instance;
         }
         object[] attributes = propertyInfo.GetCustomAttributes(false);
         ClassMember classMember = new ClassMember(name, bf, propertyInfo.MemberType, attributes);
         classMemberList.Add(classMember);
     }
     FieldInfo[] fieldInfos = type.GetFields(BindingFlags.Public | BindingFlags.Instance);
     for (int i = 0; i < fieldInfos.Length; i++)
     {
         FieldInfo fieldInfo = fieldInfos[i] as FieldInfo;
         if (fieldInfo.GetCustomAttributes(typeof(NonSerializedAttribute), true).Length > 0)
             continue;
         if (fieldInfo.GetCustomAttributes(typeof(TransientAttribute), true).Length > 0)
             continue;
         string name = fieldInfo.Name;
         object[] customAttributes = fieldInfo.GetCustomAttributes(typeof(System.Runtime.Serialization.DataMemberAttribute), false);
         if ((customAttributes != null) && (customAttributes.Length > 0))
         {
             System.Runtime.Serialization.DataMemberAttribute attribute = (System.Runtime.Serialization.DataMemberAttribute)customAttributes[0];
             if (attribute.Name != null && attribute.Name.Length != 0)
                 name = attribute.Name;
         }
         else
         {
             if (!type.IsSerializable && type.Assembly != typeof(AMFWriter).Assembly)
                 continue;
         }
         object[] attributes = fieldInfo.GetCustomAttributes(false);
         ClassMember classMember = new ClassMember(name, BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance, fieldInfo.MemberType, attributes);
         classMemberList.Add(classMember);
     }
     ClassMember[] classMembers = classMemberList.ToArray();
     string customClassName = type.FullName;
     customClassName = FluorineConfiguration.Instance.GetCustomClass(customClassName);
     classDefinition = new ClassDefinition(customClassName, classMembers, GetIsExternalizable(instance), GetIsDynamic(instance));
     return classDefinition;
 }
 public ObjectPropertyAtomObject(IObjectInstance objectInstance, ClassMember classProperty)
     : base(objectInstance, classProperty)
 {
 }
        private uint GetAttributes(ClassMember classMember)
        {
            uint attr = (uint)DROPDOWNFONTATTR.FONTATTR_PLAIN; //TODO: Implement it

            if (classMember == null)
                return attr;

            if ((classMember.Attributes & NemerleModifiers.Static) != 0)
                attr |= (uint)DROPDOWNFONTATTR.FONTATTR_ITALIC;
            return attr;
        }
Пример #40
0
 public static ObjectProperty From(IObjectInstance objectInstance, ClassMember classProperty)
 {
     return classProperty.MakeObjectProperty(objectInstance);
 }
        internal void RemoveField(ClassMember.Field field)
        {
            var memLoc = field.Location;
            var helper = GetHelper(memLoc.FileIndex);
            var source = helper.Source;
            var firstLineText = source.GetLine(memLoc.Line);
            var prefix = firstLineText.Substring(0, memLoc.Column - 1);
            int endLine = memLoc.EndLine;
            int endCol = memLoc.EndColumn;
            var startCol = IsAllCharsIsSpaces(prefix) ? 1 : memLoc.Column;
            var endLineText = source.GetLine(memLoc.EndLine);
            var x = endCol - 1;
            var sufix = endLineText.Substring(x, endLineText.Length - x);
            var lineCount = source.LineCount;
            var startLine = memLoc.Line;

            // Коамилятор не всегда учитывает точку с запятой в местоположении выражения.
            // Компенсируем эту проблему удаляя точку с запятой из начала строки.
            if (sufix.StartsWith(";", StringComparison.InvariantCulture))
            {
                sufix = sufix.Substring(1);
                endCol++;
            }

            // Если в конце строки нет других выражений, то продлеваем локешон до начала
            // следующей строки и удаляем все пустые строки идущие за данной строкой.
            while (endLine + 1 < lineCount && IsAllCharsIsSpaces(sufix))
            {
                endLine++;
                endCol = 1;
                sufix = source.GetLine(endLine);
            }

            var delLoc = new Location(memLoc.FileIndex, startLine, startCol, endLine, endCol);

            helper.Add(delLoc, "");
        }
 public ObjectPropertyCollectionNative(IObjectInstance objectInstance, ClassMember classProperty)
     : base(objectInstance, classProperty)
 {
 }
        private string GetLable(ClassMember classMember)
        {
            if (classMember == null)
                return "";

            return classMember.GetLabel();
        }
Пример #44
0
 public ObjectProperty(IObjectInstance objectInstance, ClassMember classProperty)
 {
     ObjectInstance = objectInstance;
     ClassProperty = classProperty;
 }