예제 #1
0
        public void Equality_comparison_is_expanded_correctly_for_case_statement()
        {
            using (var context = new ABContext())
            {
                var name  = "ab";
                var query =
                    from a in context.As
                    select a.Name == name;
                var expectedSql =
                    @"SELECT 
    CASE 
    WHEN (([Extent1].[Name] = @p__linq__0) OR (([Extent1].[Name] IS NULL) AND (@p__linq__0 IS NULL))) 
        THEN cast(1 as bit) 
    WHEN ( NOT (([Extent1].[Name] = @p__linq__0) AND ((
        CASE 
        WHEN ([Extent1].[Name] IS NULL) 
            THEN cast(1 as bit) 
        ELSE cast(0 as bit) END) = 
        (CASE 
        WHEN (@p__linq__0 IS NULL) 
            THEN cast(1 as bit) 
        ELSE cast(0 as bit) 
        END)))) 
        THEN cast(0 as bit) 
    END AS [C1]
    FROM [dbo].[A] AS [Extent1]";

                QueryTestHelpers.VerifyDbQuery(query, expectedSql);
            }
        }
 private Student GetStudent(string username, string password)
 {
     using (var db = new ABContext())
     {
         var student = db.Students.FirstOrDefault(u => u.email == username);
         if (student != null)
         {
             if (student.password == password)
             {
                 return(student);
             }
         }
     }
     return(null);
 }
 private User GetUser(string username, string password)
 {
     using (var db = new ABContext())
     {
         var user = db.Users.FirstOrDefault(u => u.username == username);
         if (user != null)
         {
             if (user.password == password)
             {
                 return(user);
             }
         }
     }
     return(null);
 }
예제 #4
0
        public void Null_checks_for_non_nullable_columns_are_eliminated_from_case_statement()
        {
            using (var context = new ABContext())
            {
                var name  = "ab";
                var query =
                    from b in context.Bs
                    select b.Name == name;
                var expectedSql =
                    @"SELECT 
    CASE WHEN ([Extent1].[Name] = @p__linq__0) THEN cast(1 as bit) WHEN ( NOT (([Extent1].[Name] = @p__linq__0) AND (0 = (CASE WHEN (@p__linq__0 IS NULL) THEN cast(1 as bit) ELSE cast(0 as bit) END)))) THEN cast(0 as bit) END AS [C1]
    FROM [dbo].[B] AS [Extent1]";

                QueryTestHelpers.VerifyDbQuery(query, expectedSql);
            }
        }
        public void Null_checks_for_nullable_parameters_are_not_eliminated()
        {
            using (var context = new ABContext())
            {
                int?aId         = 1;
                var query       = context.As.Where(a => a.Id != aId);
                var expectedSql =
                    @"SELECT 
    [Extent1].[Id] AS [Id], 
    [Extent1].[Name] AS [Name]
    FROM [dbo].[A] AS [Extent1]
    WHERE NOT (([Extent1].[Id] = @p__linq__0) AND (@p__linq__0 IS NOT NULL))";

                QueryTestHelpers.VerifyDbQuery(query, expectedSql);
            }
        }
예제 #6
0
        public void Null_checks_for_nullable_parameters_are_eliminated_when_other_operand_is_not_nullable()
        {
            using (var context = new ABContext())
            {
                int?aId         = 1;
                var query       = context.As.Where(a => a.Id == aId);
                var expectedSql =
                    @"SELECT 
    [Extent1].[Id] AS [Id], 
    [Extent1].[NullableId] AS [NullableId], 
    [Extent1].[Name] AS [Name]
    FROM [dbo].[A] AS [Extent1]
    WHERE [Extent1].[Id] = @p__linq__0";

                QueryTestHelpers.VerifyDbQuery(query, expectedSql);
            }
        }
        public void Duplicate_joins_are_not_created()
        {
            using (var context = new ABContext())
            {
                var query =
                    from a in context.As
                    where a.Name == context.Bs.FirstOrDefault().Name
                    select a;
                var expectedSql =
                    @"SELECT 
    [Extent1].[Id] AS [Id], 
    [Extent1].[Name] AS [Name]
    FROM  [dbo].[A] AS [Extent1]
    LEFT OUTER JOIN  (SELECT TOP (1) [c].[Name] AS [Name]
        FROM [dbo].[B] AS [c] ) AS [Limit1] ON 1 = 1
    WHERE ([Extent1].[Name] = [Limit1].[Name]) OR (([Extent1].[Name] IS NULL) AND ([Limit1].[Name] IS NULL))";

                QueryTestHelpers.VerifyDbQuery(query, expectedSql);
            }
        }
예제 #8
0
        public void Inner_equality_comparisons_are_expanded_correctly()
        {
            using (var context = new ABContext())
            {
                var name1 = "ab1";
                var name2 = "ab2";
                var name3 = "ab3";
                var query =
                    from a in context.As
                    where !(a.Name == name1 || a.Name != name2 || !(a.Name == name3))
                    select a;
                var expectedSql =
                    @"SELECT 
    [Extent1].[Id] AS [Id], 
    [Extent1].[NullableId] AS [NullableId], 
    [Extent1].[Name] AS [Name]
    FROM [dbo].[A] AS [Extent1]
    WHERE  NOT (
        (([Extent1].[Name] = @p__linq__0) AND 
        ((CASE 
            WHEN ([Extent1].[Name] IS NULL) 
            THEN cast(1 as bit) 
            ELSE cast(0 as bit) 
        END) = 
        (CASE 
            WHEN (@p__linq__0 IS NULL) 
            THEN cast(1 as bit) 
            ELSE cast(0 as bit) 
        END))) OR 
        ( NOT (([Extent1].[Name] = @p__linq__1) OR 
        (([Extent1].[Name] IS NULL) AND (@p__linq__1 IS NULL)))) OR 
        ( NOT (([Extent1].[Name] = @p__linq__2) OR (([Extent1].[Name] IS NULL) AND (@p__linq__2 IS NULL)))))";

                QueryTestHelpers.VerifyDbQuery(query, expectedSql);
            }
        }
 public ABTestsRepository(ABContext context)
 {
     this.context = context;
     abtestEntity = context.Set <ABTest>();
 }
예제 #10
0
        /** Connects to a PLC:
         *
         * url = "S7:host"
         * url = "MODBUS:host"
         * url = "AB:host"
         * url = "NI:device/options"
         *
         */
        public bool Connect(String url)
        {
            Console.WriteLine("Info:" + DateTime.GetMilliSecondsSinceEpoch() + ":Controller.connect():" + url);
            connected = false;
            if (url == null)
            {
                Console.WriteLine("Error:url == null");
                return(false);
            }
            if (url.StartsWith("S7:"))
            {
                plc = ControllerType.S7;
                String host = url.Substring(3);
                lock (s7_connect_lock) {
                    try {
                        socket = new TcpSocket();
//                    socket.setSoTimeout(3000);
                        socket.Connect(host, 102);

                        //connect1
                        {
                            byte[] packet = S7Packet.makeConnectPacket1();
                            socket.Write(packet);

                            byte[] reply     = new byte[1500];
                            int    replySize = 0;
                            do
                            {
                                int read = socket.Read(reply, replySize, 1500 - replySize);
                                if (read == -1)
                                {
                                    throw new Exception("bad read");
                                }
                                replySize += read;
                            } while (!S7Packet.isPacketComplete(Arrays <byte> .CopyOf(reply, replySize)));
                        }

                        //connect2
                        {
                            byte[] packet = S7Packet.makeConnectPacket2();
                            socket.Write(packet);

                            byte[] reply     = new byte[1500];
                            int    replySize = 0;
                            do
                            {
                                int read = socket.Read(reply, replySize, 1500 - replySize);
                                if (read == -1)
                                {
                                    throw new Exception("bad read");
                                }
                                replySize += read;
                            } while (!S7Packet.isPacketComplete(Arrays <byte> .CopyOf(reply, replySize)));
                        }
                    } catch (Exception e) {
                        Console.WriteLine("Error:" + e.ToString());
                        return(false);
                    }
                }
                connected = true;
                return(true);
            }
            if (url.StartsWith("MODBUS:"))
            {
                plc = ControllerType.MB;
                String host = url.Substring(7);
                try {
                    socket = new TcpSocket();
                    socket.Connect(host, 502);
//                socket.setSoTimeout(3000);
                } catch (Exception e) {
                    Console.WriteLine("Error:" + e.ToString());
                    return(false);
                }
                connected = true;
                return(true);
            }
            if (url.StartsWith("AB:"))
            {
                ab_context = new ABContext();
                plc        = ControllerType.AB;
                String host = url.Substring(3);
                try {
                    socket = new TcpSocket();
                    socket.Connect(host, 44818);
//                socket.setSoTimeout(3000);

                    //connect1
                    {
                        byte[] packet = ABPacket.makeConnectPacket(ab_context);
                        socket.Write(packet);

                        byte[] reply     = new byte[1500];
                        int    replySize = 0;
                        do
                        {
                            int read = socket.Read(reply, replySize, 1500 - replySize);
                            if (read == -1)
                            {
                                throw new Exception("bad read");
                            }
                            replySize += read;
                        } while (!ABPacket.isPacketComplete(Arrays <byte> .CopyOf(reply, replySize)));
                        ENIP ip = new ENIP();
                        ip.read(reply, 0);
                        ab_context.session = ip.session;
                    }
                } catch (Exception e) {
                    Console.WriteLine("Error:" + e.ToString());
                    return(false);
                }
                connected = true;
                return(true);
            }
            return(false);
        }