public JDownloaderApi(JDownloaderContext context, DeviceDto device, IJDownloaderHttpClient jdownloaderClient)
 {
     DownloadController = new DownloadController(context, device, jdownloaderClient);
     DownloadsV2        = new DownloadsV2(context, device, jdownloaderClient);
     Jd            = new Jd(context, device, jdownloaderClient);
     LinkgrabberV2 = new LinkgrabberV2(context, device, jdownloaderClient);
 }
        internal DeviceHandler(Device device, JDownloaderApiHandler apiHandler, LoginObject loginObject, bool useJdownloaderApi = false)
        {
            _device      = device;
            _apiHandler  = apiHandler;
            _loginObject = loginObject;

            Accounts           = new Accounts(_apiHandler, _device);
            AccountsV2         = new AccountsV2(_apiHandler, _device);
            Captcha            = new Captcha(_apiHandler, _device);
            CaptchaForward     = new CaptchaForward(_apiHandler, _device);
            Config             = new Config(_apiHandler, _device);
            Dialogs            = new Dialogs(_apiHandler, _device);
            DownloadController = new DownloadController(_apiHandler, _device);
            DownloadsV2        = new DownloadsV2(_apiHandler, _device);
            Extensions         = new Extensions(_apiHandler, _device);
            Extraction         = new Extraction(_apiHandler, _device);
            LinkCrawler        = new LinkCrawler(_apiHandler, _device);
            LinkgrabberV2      = new LinkGrabberV2(_apiHandler, _device);
            Update             = new Update(_apiHandler, _device);
            Jd     = new Jd(_apiHandler, _device);
            System = new Namespaces.System(_apiHandler, _device);
            DirectConnect(useJdownloaderApi);
        }
        protected override void ValidateError()
        {
            decimal TotalDebit  = 0;
            decimal TotalKredit = 0;

            if (!_BuatJurnalPembalik)
            {
                _TglDibalik = new DateTime(1900, 1, 1);
            }
            if (_TglDibalik <= _TglJurnal && _BuatJurnalPembalik)
            {
                AddError("TglDibalik",
                         "Tgl Dibalik tidak boleh kurang dari atau sama dengan tanggal jurnal");
            }

            foreach (JurnalDetil Jd in JurnalDetil)
            {
                if (Jd.Debit == Jd.Kredit)
                {
                    Jd.AddError("Debit",
                                "Debit dan Kredit tidak boleh kosong");
                }
                TotalDebit  += Jd.Debit;
                TotalKredit += Jd.Kredit;
            }
            if (TotalDebit != TotalKredit)
            {
                AddError("NoJurnal",
                         "Total Debit Harus sama dengan Total Kredit");
            }
            else if (TotalDebit == 0)
            {
                AddError("NoJurnal",
                         "Total Debit/ Kredit tidak boleh nol");
            }
        }