رفتن به مطلب

معادل VB این کد #C جی میشه ؟؟


حمید زارع

ارسال‌های توصیه شده

سلام دوستان

من این کد رو دارم که با استفاده از یه OCX نوشته شده

حالا من این OCX رو دارم میخام اینا رو با VB بنویسم

اگر کسی از دوستان هم به VB آشنایی داره هم #C راهنمایی بفرمایید

یه راهنمایی کوجیک میخام 

همه کدها رو گذاشتم ولی نترسید کلاً با یه خطش کار دارم

using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.Common;
using System.IO.Ports;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
using System.Timers;
using Newtonsoft.Json.Linq;
using System.Threading;
using System.Windows.Forms;
using System.Globalization;
using System.Collections.Concurrent;

namespace LPRApp
{

    partial class ReaderMD30Win : IdDevice
    {
        public ReaderMD30Win(DataRow drReader)
            : base(drReader)
        {
            cmdResponse = new BlockingCollection<string>();
        }


        public override void Initialize()
        {
            this.GetAccessRecords();
        }



    }



    partial class ReaderMD30Win : IWebSocketReader
    {
        public virtual void ProcessWebSocketMessage(string eventlog)
        {

            JObject jsonMsg = JObject.Parse(eventlog);

            var count = jsonMsg.Value<string>("count");
            var eventRecords = jsonMsg["record"];
            foreach (var eventRecord in eventRecords)
            {
                var time = eventRecord.Value<string>("time");
                DateTime dt =  DateTime.Parse(time, CultureInfo.InvariantCulture);
                UInt64 cardNo = eventRecord.Value<UInt64>("enrollid");
                //int inout = eventRecord.Value<Int32>("inout");
                //Direction dir = inout == 0 ? Direction.In : Direction.Out;
                int mode = eventRecord.Value<Int32>("mode");
                int eventStatus = eventRecord.Value<Int32>("event");


                if (cardNo > 0)
                {

                    Statics.formMain.Invoke((MethodInvoker)delegate()
                    {
                        Statics.formMain.ProcessControllerAccessRecord(this, cardNo, dt, Direction.InOut, AccessRecordStatus.AuthorisedByController);
                    });
                }
                else if (mode == 0 && (eventStatus == 2 || eventStatus == 1 || eventStatus == 5))
                {
                    AccessRecordStatus accessStatus = AccessRecordStatus.DoorOpened;
                    if (eventStatus == 2) accessStatus = AccessRecordStatus.DoorOpenedbyControllerPushButton;
                    if (eventStatus == 5) accessStatus = AccessRecordStatus.DoorOpenedbyForce;

                    Statics.formMain.Invoke((MethodInvoker)delegate()
                    {
                        Statics.formMain.ProcessOpenDoorEvent(this, dt, accessStatus);
                    });
                }

            }


        }


        public void NewResponseReceived(string message)
        {
            cmdResponse.Add(message);
        }


    }



    partial class ReaderMD30Win : IRelay
    {
        public void OpenDoor()
        {
            System.Threading.Thread.Sleep(50);
            WebSocketLoader.opendoor(_serialNumber);
        }
    }

    partial class ReaderMD30Win : IController
    {

        public void GetAccessRecords()
        {
            int pMachineNumber = 1;
            int pTMachineNumber = 1;
            int pEMachineNumber = 1;
            int pEnrollNumber = 0;
            int pVerifyMode = 0;
            int pInOut = 0;
            int pEvent = 0;
            int pYear = 0;
            int pMonth = 0;
            int pDay = 0;
            int pHour = 0;
            int pMinute = 0;
            int pSecond = 0;
            int pwd = 0;


            if (!Statics.fpClock.SetIPAddress(ref _ipAddress, _ipPort, pwd))
                throw new System.Exception("خطا در اعمال آدرس کنترلر ");
            if (!Statics.fpClock.OpenCommPort(pMachineNumber))
                throw new System.Exception("خطا در ایجاد ارتباط با کنترلر ");
            if (!Statics.fpClock.EnableDevice(pMachineNumber, 0))
                throw new System.Exception("خطا در غیر فعال کردن کنترلر ");

            Statics.fpClock.ReadMark = true;

            if (!Statics.fpClock.ReadAllGLogData(pMachineNumber))
                throw new System.Exception("خطا در خواندن اطلاعات کاربران کنترلر ");


            int logCount = 0;
            try
            {
                while (Statics.fpClock.GetGeneralLogDataWithSecond(
                    pMachineNumber,
                    ref pTMachineNumber,
                    ref pEnrollNumber,
                    ref pEMachineNumber,
                    ref pVerifyMode,
                    ref pInOut,
                    ref pEvent,
                    ref pYear,
                    ref pMonth,
                    ref pDay,
                    ref pHour,
                    ref pMinute,
                    ref pSecond))
                {
                    if (pVerifyMode < 10)
                    {
                        logCount++;
                        UInt64 cardNo = (UInt64)pEnrollNumber;
                        DateTime dt = new DateTime(pYear, pMonth, pDay, pHour, pMinute, pSecond);

                        if (cardNo > 0)
                        {

                            Statics.formMain.Invoke((MethodInvoker)delegate()
                            {
                                Statics.formMain.ProcessControllerAccessRecord(this, cardNo, dt, Direction.InOut, AccessRecordStatus.AuthorisedByController);
                            });
                        }
                        else if (pVerifyMode == 0 && (pEvent == 2 || pEvent == 1))
                        {
                            AccessRecordStatus accessStatus = AccessRecordStatus.DoorOpened;
                            if (pEvent == 2) accessStatus = AccessRecordStatus.DoorOpenedbyControllerPushButton;

                            Statics.formMain.Invoke((MethodInvoker)delegate()
                            {
                                Statics.formMain.ProcessOpenDoorEvent(this, dt, accessStatus);
                            });
                        }

                        Application.DoEvents();
                    }
                }

                Statics.fpClock.ReadMark = false;
                if ( logCount > 0) Statics.fpClock.EmptyGeneralLogData(pMachineNumber);
                Statics.fpClock.EnableDevice(pMachineNumber, 1);
                Statics.fpClock.CloseCommPort();

            }
            catch (System.Exception ex)
            {
                throw new System.Exception("خطا در دریافت رکوردهای تردد از کنترلر" + ex);
            }

        }


        public void ClearAccessRights()
        {
            int machineNumber = 1;
            int pwd = 0;
            int vEnrollNumber = 0;
            int vBackupNumber = 0;
            int vPrivilege = 0;
            int vEnable = 0;
            int vEMachineNumber = 0;



            List<UserInfo> usersInfo;
            usersInfo = new List<UserInfo>();

            int[] dwData = new int[355];

            if (!Statics.fpClock.SetIPAddress(ref _ipAddress, _ipPort, pwd))
                throw new System.Exception("خطا در اعمال آدرس کنترلر ");
            if (!Statics.fpClock.OpenCommPort(machineNumber))
                throw new System.Exception("خطا در ایجاد ارتباط با کنترلر ");
            if (!Statics.fpClock.EnableDevice(machineNumber, 0))
                throw new System.Exception("خطا در غیر فعال کردن کنترلر ");
            if (!Statics.fpClock.ReadAllUserID(machineNumber))
                throw new System.Exception("خطا در خواندن اطلاعات کاربران کنترلر ");

            try
            {
                while (Statics.fpClock.GetAllUserID(machineNumber, ref vEnrollNumber, ref vEMachineNumber, ref vBackupNumber, ref vPrivilege, ref vEnable))
                {
                    Statics.fpClock.DeleteEnrollData(machineNumber, vEnrollNumber, machineNumber, vBackupNumber);
                }

                Statics.fpClock.EnableDevice(machineNumber, 1);
                Statics.fpClock.CloseCommPort();

            }
            catch (System.Exception ex)
            {
                throw new System.Exception("خطا در حذف اطلاعات کاربران از کنترلر");
            }

        }

        public void SetTime(DateTime dt)
        {
        }

        public void SetDate(DateTime dt)
        {
        }


        public virtual void ShowSettingForm()
        {
        }



        public virtual UserInfo SetUserAccessRight(UserInfo userInfo)
        {

            int machineNumber = 1;
            int privilege = 0;
            int pwd = 0;

            if (!Statics.fpClock.SetIPAddress(ref _ipAddress, _ipPort, pwd))
                throw new System.Exception("خطا در اعمال آدرس کنترلر ");
            if (!Statics.fpClock.OpenCommPort(machineNumber))
                throw new System.Exception("خطا در ایجاد ارتباط با کنترلر ");
            if (!Statics.fpClock.EnableDevice(machineNumber, 0))
                throw new System.Exception("خطا در غیر فعال کردن کنترلر ");
            if (!Statics.fpClock.ReadAllUserID(machineNumber))
                throw new System.Exception("خطا در خواندن اطلاعات کاربران کنترلر ");
            if (userInfo.OnDeviceIDs.Count() < GetNumberOfRequiredIds(userInfo))
                throw new System.Exception("برای این کاربر تعداد کافی شناسه تعریف نشده است");

            int weekTime = userInfo.AccessRight == UserAccessRight.Valid ? 0 : 10;

            int sYear = userInfo.ValidStartDate.Year;
            int sMonth = userInfo.ValidStartDate.Month;
            int sDay = userInfo.ValidStartDate.Day;

            int eYear = 9999;
            int eMonth = 1;
            int eDay = 1;

            if (userInfo.ValidEndEnable)
            {
                eYear = userInfo.ValidEndDate.Year;
                eMonth = userInfo.ValidEndDate.Month;
                eDay = userInfo.ValidEndDate.Day;
            }
            
            object obj;

            try
            {
                //clear IDs
                foreach (var id in userInfo.OnDeviceIDs)
                    for (int backupNumber = 0; backupNumber < 13; backupNumber++)
                        Statics.fpClock.DeleteEnrollData(machineNumber, id, machineNumber, backupNumber);
 //                           throw new System.Exception("خطا در حذف شناسه");

                if (weekTime == 0)
                {
                    int count = 0;
                    foreach (var finger in userInfo.Fingers)
                    {
                        int id = userInfo.OnDeviceIDs[count % 10];
                        int backupNumber = count % 10;

                        int[] dwData = Statics.ByteArrayToIntArray(finger);
                        obj = new System.Runtime.InteropServices.VariantWrapper(dwData);

                        if (Statics.fpClock.SetEnrollData(machineNumber, id, machineNumber, backupNumber, privilege, ref obj, pwd) == false)
                            throw new System.Exception("خطا در تعریف اثر انگشت کاربر روی کنترلر");

                        count++;
                    }


                    count = 0;
                    foreach (var cardNumber in userInfo.CardNumbers)
                    {
                        int id = userInfo.OnDeviceIDs[count];

                        int[] dwData = new int[355];
                        obj = new System.Runtime.InteropServices.VariantWrapper(dwData);

                        if (Statics.fpClock.SetEnrollData(machineNumber, id, machineNumber, (int)BackupNumber.CardNumber, privilege, ref obj, Convert.ToInt32(cardNumber)) == false)
                            throw new System.Exception("خطا در تعریف شماره کارت کاربر روی کنترلر");


                        count++;
                    }


                    count = 0;
                    foreach (var password in userInfo.Passwords)
                    {
                        int id = userInfo.OnDeviceIDs[count];

                        int[] dwData = new int[355];
                        obj = new System.Runtime.InteropServices.VariantWrapper(dwData);

                        if (Statics.fpClock.SetEnrollData(machineNumber, id, machineNumber, (int)BackupNumber.Password, privilege, ref obj, Convert.ToInt32(password)) == false)
                            throw new System.Exception("خطا در تعریف رمز عبور کاربر روی کنترلر");

                        count++;
                    }


                    foreach (var id in userInfo.OnDeviceIDs)
                        if (!Statics.fpClock.SetUserCtrl(machineNumber, id, weekTime, 0, sYear, sMonth, sDay, eYear, eMonth, eDay))
                            throw new System.Exception("خطا در تنظیم کنترل قفل برای کاربر روی کنترلر");

                    foreach (var id in userInfo.OnDeviceIDs)
                    {
                        int deviceKind = 0;
                        string userName = userInfo.Name == null ? String.Empty : userInfo.Name;
                        obj = new System.Runtime.InteropServices.VariantWrapper(userName);
                        if (!Statics.fpClock.SetUserName(deviceKind, machineNumber, id, machineNumber, ref obj))
                            throw new System.Exception("خطا در انتقال نام کاربر روی کنترلر");
                    }

                    
                    Statics.fpClock.EnableDevice(machineNumber, 1);
                    Statics.fpClock.CloseCommPort();
                }

                return userInfo;

            }
            catch (System.Exception ex)
            {
                throw new System.Exception(ex.Message);
            }

        }


    }







    partial class ReaderMD30Win : IIdController
    {

        private BlockingCollection<string> cmdResponse;

        
        
        public void DeleteOnDeviceIDs(List<int> onDeviceIDs)
        {

            int machineNumber = 1;
            int pwd = 0;

            if (!Statics.fpClock.SetIPAddress(ref _ipAddress, _ipPort, pwd))
                throw new System.Exception("خطا در اعمال آدرس کنترلر ");
            if (!Statics.fpClock.OpenCommPort(machineNumber))
                throw new System.Exception("خطا در ایجاد ارتباط با کنترلر ");
            if (!Statics.fpClock.EnableDevice(machineNumber, 0))
                throw new System.Exception("خطا در غیر فعال کردن کنترلر ");

            foreach (var id in onDeviceIDs)
                for (int backupNumber = 0; backupNumber < 13; backupNumber++)
                    Statics.fpClock.DeleteEnrollData(machineNumber, id, machineNumber, backupNumber);
//                    throw new System.Exception("خطا در حذف شناسه");

            Statics.fpClock.EnableDevice(machineNumber, 1);
            Statics.fpClock.CloseCommPort();

        }

        public virtual UserInfo GetUserInfo(List<int> onDeviceIDs)
        {


            int machineNumber = 1;
            int privilege = 0;
            int pwd = 0;
            bool result = false;
            

            object obj;
            int[] dwData = new int[355];

            if (!Statics.fpClock.SetIPAddress(ref _ipAddress, _ipPort, pwd))
                throw new System.Exception("خطا در اعمال آدرس کنترلر ");
            if (!Statics.fpClock.OpenCommPort(machineNumber))
                throw new System.Exception("خطا در ایجاد ارتباط با کنترلر ");
            if (!Statics.fpClock.EnableDevice(machineNumber, 0))
                throw new System.Exception("خطا در غیر فعال کردن کنترلر ");
            if (!Statics.fpClock.ReadAllUserID(machineNumber))
                throw new System.Exception("خطا در خواندن اطلاعات کاربران کنترلر ");

            UserInfo userInfo = new UserInfo();


            try
            {
                foreach (int id in onDeviceIDs)
                {
                    userInfo.OnDeviceIDs.Add(id);

                    for (int finger = 0; finger < 10; finger++)
                    {
                        obj = new System.Runtime.InteropServices.VariantWrapper(dwData);
                        result = Statics.fpClock.GetEnrollData(machineNumber, id, machineNumber, finger, ref privilege, ref obj, ref pwd);
                        if (result == true)
                        {
                            dwData = (int[])obj;
                            byte[] fpBytes = new byte[dwData.Length * sizeof(int)];
                            Buffer.BlockCopy(dwData, 0, fpBytes, 0, fpBytes.Length);
                            userInfo.Fingers.Add(fpBytes);
                            //   Statics.IntArrayToString(dwData);
                        }

                    }


                    obj = new System.Runtime.InteropServices.VariantWrapper(dwData);
                    result = Statics.fpClock.GetEnrollData(machineNumber, id, machineNumber, (int)BackupNumber.Password, ref privilege, ref obj, ref pwd);
                    if (result == true)
                    {
                        dwData = (int[])obj;
                        userInfo.Passwords.Add(pwd.ToString());
                    }

                    obj = new System.Runtime.InteropServices.VariantWrapper(dwData);
                    result = Statics.fpClock.GetEnrollData(machineNumber, id, machineNumber, (int)BackupNumber.CardNumber, ref privilege, ref obj, ref pwd);
                    if (result == true)
                    {
                        dwData = (int[])obj;
                        userInfo.CardNumbers.Add(pwd.ToString());
                    }


                    string userName = "";
                    obj = new System.Runtime.InteropServices.VariantWrapper(userName);
                    result = Statics.fpClock.GetUserName(0, machineNumber, id, machineNumber, ref obj);
                    if (result == true)
                    {
                        userInfo.Name = (string)obj;
                    }

                }


                Statics.fpClock.EnableDevice(machineNumber, 1);
                Statics.fpClock.CloseCommPort();

                return userInfo;


            }
            catch (System.Exception ex)
            {
                throw new System.Exception("خطا در اخذ اطلاعات کاربر از کنترلر");
            }




        }







        public List<UserInfo> GetAllUserInfo()
        {


            int machineNumber = 1;
            int privilege = 0;
            int pwd = 0;
            int vEnrollNumber = 0;
            int vFingerNumber = 0;
            int vPrivilege = 0;
            int vEnable = 0;
            int vEMachineNumber = 0;

            bool result = false;


            List<UserInfo> usersInfo;
            usersInfo = new List<UserInfo>();

            int[] dwData = new int[355];

            if (!Statics.fpClock.SetIPAddress(ref _ipAddress, _ipPort, pwd))
                throw new System.Exception("خطا در اعمال آدرس کنترلر ");
            if (!Statics.fpClock.OpenCommPort(machineNumber))
                throw new System.Exception("خطا در ایجاد ارتباط با کنترلر ");
            if (!Statics.fpClock.EnableDevice(machineNumber, 0))
                throw new System.Exception("خطا در غیر فعال کردن کنترلر ");
            if (!Statics.fpClock.ReadAllUserID(machineNumber))
                throw new System.Exception("خطا در خواندن اطلاعات کاربران کنترلر ");



            try
            {
                while (Statics.fpClock.GetAllUserID(machineNumber, ref vEnrollNumber, ref vEMachineNumber, ref vFingerNumber, ref vPrivilege, ref vEnable))
                {
                    object obj = new System.Runtime.InteropServices.VariantWrapper(dwData);
                    result = Statics.fpClock.GetEnrollData(machineNumber, vEnrollNumber, machineNumber, vFingerNumber, ref privilege, ref obj, ref pwd);
                    if (result == true)
                    {
                        var userInfo = usersInfo.Find(x => x.OnDeviceIDs[0] == vEnrollNumber);
                        if (userInfo == null)
                        {
                            userInfo = new UserInfo();
                            usersInfo.Add(userInfo);
                            userInfo.OnDeviceIDs.Add(vEnrollNumber);
                        }


                        if (vFingerNumber < 10)
                        {
                            dwData = (int[])obj;
                            byte[] fpBytes = new byte[dwData.Length * sizeof(int)];
                            Buffer.BlockCopy(dwData, 0, fpBytes, 0, fpBytes.Length);
                            userInfo.Fingers.Add(fpBytes);
                        }
                        if (vFingerNumber == (int)BackupNumber.Password)
                        {
                            userInfo.Passwords.Add(pwd.ToString());
                        }
                        if (vFingerNumber == (int)BackupNumber.CardNumber)
                        {
                            userInfo.CardNumbers.Add(pwd.ToString());
                        }

                    }
                }

                Statics.fpClock.EnableDevice(machineNumber, 1);
                Statics.fpClock.CloseCommPort();

                return usersInfo;


            }
            catch (System.Exception ex)
            {
                throw new System.Exception("خطا در اخذ اطلاعات کاربر از کنترلر");
            }




        }

        public virtual int GetNumberOfRequiredIds(UserInfo userInfo)
        {
            int idsRequiredforFingers = (userInfo.Fingers.Count() + 9) /10 ;
            int idsRequiredforCards = userInfo.CardNumbers.Count();
            int idsRequiredforPasswords = userInfo.Passwords.Count();
            return Math.Max(Math.Max(idsRequiredforCards, idsRequiredforFingers), idsRequiredforPasswords);
        }


    }
}

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما بگمونم سی شارپ یاد بگیری بصرفه تر باشه:shok:(خیلی طولانیه)

سایت هایی هستن که بصورت آنلاین این کارو می کنن. البته از صحت و دقت کارشون خبری ندارم

Convert C# to VB.NET. Convert C# projects to VB.NET

حالا شما یه تستی بزن.

در ضمن اگه به صورت دستی اینکارو می خواین بکنید بهتره از متدهاش یک کتابخونه درست کنین تا نخواین کل کد رو به vb تبدیل کنین

به هر حال امیوارم موفق باشید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 10 ساعت قبل، امین مهدی نژاد گفته است :

شما بگمونم سی شارپ یاد بگیری بصرفه تر باشه:shok:(خیلی طولانیه)

ممنون از شما ولی گفتم که یه خطشو میخام تبدیل کنم .

اگر شما آشنایی دارید من دقیقاً بگم کدوم بخش ...

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خب خطشو مشخص کنی بهتره حالا من نتونستم شاید کسی دیگه بود.:answercenter:

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 6 دقیقه قبل، امین مهدی نژاد گفته است :

خب خطشو مشخص کنی بهتره حالا من نتونستم شاید کسی دیگه بود.:answercenter:

 

اصلاً کدهای بالا رو نادیده بگیرید

این خط ...

من اطلاعات dwEnrollData رو میخام ...  که اینجا به عنوان وروردی هست !!!

همین

چطور میتونم این اطلاعات رو بدست بیارم ؟؟؟

 

2017-08-27_09-52-49.thumb.png.7ad7df7e1f4eeb7c434e5301bc3c5943.png

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...