/// <summary> /// Determins the field is of the specified type. /// </summary> /// <typeparam name="T">The type of the elements of source.</typeparam> /// <param name="source">The value to check.</param> /// <param name="type">Type couch type to compare.</param> /// <returns>true if the field has the specified type; otherwise, false.</returns> public static bool IsCouchType <T>(this T source, CouchType couchType) { #pragma warning disable IDE0046 // Convert to conditional expression if (couchType == CouchType.CNull && source == null) { return(true); } if (couchType == CouchType.CBoolean && source is bool) { return(true); } if (couchType == CouchType.CString && source is string) { return(true); } if (couchType == CouchType.CNumber && typeof(T).IsPrimitive) { return(true); } if (couchType == CouchType.CArray && source is IEnumerable) { return(true); } return(couchType == CouchType.CObject && typeof(T).IsClass); #pragma warning restore IDE0046 // Convert to conditional expression }
private Expression VisitIsCouchTypeMethod(MethodCallExpression m) { _sb.Append("{"); Visit(m.Arguments[0]); _sb.Append(":{\"$type\":"); ConstantExpression cExpression = m.Arguments[1] as ConstantExpression ?? throw new ArgumentException("Argument is not of type ConstantExpression."); CouchType couchType = cExpression.Value as CouchType ?? throw new ArgumentException("Argument is not of type CouchType."); _sb.Append($"\"{couchType.Value}\""); _sb.Append("}}"); return(m); }
/// <summary> /// Determines the field is of the specified type. /// </summary> /// <typeparam name="T">The type of the elements of source.</typeparam> /// <param name="source">The value to check.</param> /// <param name="couchType">Type couch type to compare.</param> /// <returns>true if the field has the specified type; otherwise, false.</returns> public static bool IsCouchType <T>(this T source, CouchType couchType) { if (couchType == CouchType.CNull && source == null) { return(true); } if (couchType == CouchType.CBoolean && source is bool) { return(true); } if (couchType == CouchType.CString && source is string) { return(true); } if (couchType == CouchType.CNumber && typeof(T).IsPrimitive) { return(true); } if (couchType == CouchType.CArray && source is IEnumerable) { return(true); } return(couchType == CouchType.CObject && typeof(T).IsClass); }
public static void Initialize(CouchtypeContext context) { context.Database.EnsureCreated(); // Look for any students. if (context.Students.Any()) { return; // DB has been seeded } var couch = new CouchType[] { new Student { FirstMidName = "Carson", LastName = "Alexander", EnrollmentDate = DateTime.Parse("2005-09-01") }, new Student { FirstMidName = "Meredith", LastName = "Alonso", EnrollmentDate = DateTime.Parse("2002-09-01") }, new Student { FirstMidName = "Arturo", LastName = "Anand", EnrollmentDate = DateTime.Parse("2003-09-01") }, new Student { FirstMidName = "Gytis", LastName = "Barzdukas", EnrollmentDate = DateTime.Parse("2002-09-01") }, new Student { FirstMidName = "Yan", LastName = "Li", EnrollmentDate = DateTime.Parse("2002-09-01") }, new Student { FirstMidName = "Peggy", LastName = "Justice", EnrollmentDate = DateTime.Parse("2001-09-01") }, new Student { FirstMidName = "Laura", LastName = "Norman", EnrollmentDate = DateTime.Parse("2003-09-01") }, new Student { FirstMidName = "Nino", LastName = "Olivetto", EnrollmentDate = DateTime.Parse("2005-09-01") } }; foreach (Student s in students) { context.Students.Add(s); } context.SaveChanges(); var courses = new Course[] { new Course { CourseID = 1050, Title = "Chemistry", Credits = 3 }, new Course { CourseID = 4022, Title = "Microeconomics", Credits = 3 }, new Course { CourseID = 4041, Title = "Macroeconomics", Credits = 3 }, new Course { CourseID = 1045, Title = "Calculus", Credits = 4 }, new Course { CourseID = 3141, Title = "Trigonometry", Credits = 4 }, new Course { CourseID = 2021, Title = "Composition", Credits = 3 }, new Course { CourseID = 2042, Title = "Literature", Credits = 4 } }; foreach (Course c in courses) { context.Courses.Add(c); } context.SaveChanges(); var enrollments = new Enrollment[] { new Enrollment { StudentID = 1, CourseID = 1050, Grade = Grade.A }, new Enrollment { StudentID = 1, CourseID = 4022, Grade = Grade.C }, new Enrollment { StudentID = 1, CourseID = 4041, Grade = Grade.B }, new Enrollment { StudentID = 2, CourseID = 1045, Grade = Grade.B }, new Enrollment { StudentID = 2, CourseID = 3141, Grade = Grade.F }, new Enrollment { StudentID = 2, CourseID = 2021, Grade = Grade.F }, new Enrollment { StudentID = 3, CourseID = 1050 }, new Enrollment { StudentID = 4, CourseID = 1050 }, new Enrollment { StudentID = 4, CourseID = 4022, Grade = Grade.F }, new Enrollment { StudentID = 5, CourseID = 4041, Grade = Grade.C }, new Enrollment { StudentID = 6, CourseID = 1045 }, new Enrollment { StudentID = 7, CourseID = 3141, Grade = Grade.A }, }; foreach (Enrollment e in enrollments) { context.Enrollments.Add(e); } context.SaveChanges(); }