예제 #1
0
        public static string GenerateRefNo(string negeri, IDbTransaction mySqlTrans)
        {
            IVariablesRepo VariablesRepo = new VariablesRepo();
            IAppInfoRepo   AppInfoRepo   = new AppInfoRepo();

            string refno_new = "";

            variables variables = VariablesRepo.GetBy(negeri);

            refno_new = @"TBSPK/" + variables.Parent + "/";

            //int maxappinfo = AppInfoRepo.GetMaxRefNoMySQL(refno_new, mySqlTrans);
            int maxappinfo = AppInfoRepo.GetMaxRefNoMySQL(mySqlTrans);

            refno_new = refno_new + maxappinfo.ToString().PadLeft(5, '0');

            return(refno_new);
        }
예제 #2
0
        /// <summary>
        /// Process Makkebun & Lawatan
        /// </summary>
        public static void SyncToServerForMakKebun()
        {
            IAppInfoRepo    AppInfoRepo    = new AppInfoRepo();
            IMakkebunRepo   MakkebunRepo   = new MakkebunRepo();
            ISemakTapakRepo SemakTapakRepo = new SemakTapakRepo();

            IList <makkebun> lstMakKebun = MakkebunRepo.GetAllToSync();

            for (int i = 0; i < lstMakKebun.Count; i++)
            {
                makkebun makkebunsqlite = lstMakKebun[i];
                using (IDbTransaction sqlTrans = MakkebunRepo.MySQLBeginTransaction())
                {
                    // INSERT MAKKEBUN TO MYSQL
                    int iSaveMakkebun = MakkebunRepo.CreateMySQL(makkebunsqlite, sqlTrans);
                    if (iSaveMakkebun > 0)
                    {
                        makkebun lastmakkebun = MakkebunRepo.GetLastMakkebunBy(makkebunsqlite.appinfo_id);
                        makkebunsqlite.newid_makkebun = lastmakkebun.id_makkebun;
                        makkebunsqlite.syncdate       = DateTime.Now;
                        // UPDATE MAKKEBUN SQLITE
                        MakkebunRepo.UpdateSync(makkebunsqlite);

                        // GET LAWATAN SQLITE DATA
                        semak_tapak semak_tapakSqlite = SemakTapakRepo.GetBy(makkebunsqlite.appinfo_id, makkebunsqlite.id_makkebun);
                        semak_tapakSqlite.newmakkebun_id = makkebunsqlite.newid_makkebun;

                        // INSERT LAWATAN TO MYSQL
                        int iSaveSemakTapak = SemakTapakRepo.CreateMySQL(semak_tapakSqlite, sqlTrans);
                        if (iSaveSemakTapak > 0)
                        {
                            semak_tapak lastsemak_tapak = SemakTapakRepo.GetLastSemakTapakBy(makkebunsqlite.appinfo_id, semak_tapakSqlite.newmakkebun_id);
                            semak_tapakSqlite.newid    = lastsemak_tapak.id;
                            semak_tapakSqlite.syncdate = DateTime.Now;
                            // UPDATE MAKKEBUN SQLITE
                            int iSemakTapakUpdateSync = SemakTapakRepo.UpdateSync(semak_tapakSqlite);
                        }
                    }
                    sqlTrans.Commit();
                }
                AppInfoRepo.CloseMySQLDB();
            }
        }
예제 #3
0
        /// <summary>
        /// Process Normal
        /// </summary>
        public static void SyncToServer()
        {
            try
            {
                IAppInfoRepo AppInfoRepo = new AppInfoRepo();
                AppInfoRepo.ResetMySQLConnection(true);
                IMakkebunRepo   MakkebunRepo   = new MakkebunRepo();
                ISemakTapakRepo SemakTapakRepo = new SemakTapakRepo();

                IList <appinfo> lstAppInfoToSync = AppInfoRepo.GetAllWithoutSync();
                for (int i = 0; i < lstAppInfoToSync.Count; i++)
                {
                    appinfo appinfoSqlite = lstAppInfoToSync[i];
                    AppInfoRepo.OpenMySQLDB();
                    WriteLog("MySQLBeginTransaction");
                    using (IDbTransaction sqlTrans = AppInfoRepo.MySQLBeginTransaction())
                    {
                        string newrefno = GenerateRefNo(appinfoSqlite.negeri, null);
                        appinfoSqlite.newrefno = newrefno;
                        // Insert To MySQL Server - AppInfo
                        WriteLog("AppInfoRepo.CreateMySQL");
                        try
                        {
                            if (AppInfoRepo.CreateMySQL(appinfoSqlite, sqlTrans) > 0)
                            {
                                // Update data local sqlite
                                appinfoSqlite.syncdate = DateTime.Now;
                                AppInfoRepo.UpdateSync(appinfoSqlite);
                                WriteLog(string.Format("AppInfoRepo.CreateMySQL & Update SQLite - {0} - {1} - {2}", appinfoSqlite.id, appinfoSqlite.refno_new, appinfoSqlite.newrefno));

                                IList <makkebun> lstMakkebunSqlite = MakkebunRepo.GetAllByAppInfo(appinfoSqlite.id);
                                for (int j = 0; j < lstMakkebunSqlite.Count; j++)
                                {
                                    makkebun makkebunSqlite = lstMakkebunSqlite[j];
                                    // INSERT MAKKEBUN TO MYSQL
                                    WriteLog("MakkebunRepo.CreateMySQL");
                                    try
                                    {
                                        int iSaveMakkebun = MakkebunRepo.CreateMySQL(makkebunSqlite, sqlTrans);
                                        if (iSaveMakkebun > 0)
                                        {
                                            makkebun lastmakkebun = MakkebunRepo.GetLastMakkebunBy(appinfoSqlite.id);
                                            makkebunSqlite.newid_makkebun = lastmakkebun.id_makkebun;
                                            makkebunSqlite.syncdate       = DateTime.Now;
                                            // UPDATE MAKKEBUN SQLITE

                                            MakkebunRepo.UpdateSync(makkebunSqlite);
                                            WriteLog(string.Format("MakkebunRepo.CreateMySQL & Update SQLite - {0} - {1} - {2}", appinfoSqlite.id, makkebunSqlite.id_makkebun, makkebunSqlite.newid_makkebun));

                                            // GET LAWATAN SQLITE DATA
                                            semak_tapak semak_tapakSqlite = SemakTapakRepo.GetBy(appinfoSqlite.id, makkebunSqlite.id_makkebun);
                                            if (semak_tapakSqlite != null)
                                            {
                                                semak_tapakSqlite.newmakkebun_id = makkebunSqlite.newid_makkebun;
                                                // INSERT LAWATAN TO MYSQL
                                                WriteLog("SemakTapakRepo.CreateMySQL");
                                                try
                                                {
                                                    int iSaveSemakTapak = SemakTapakRepo.CreateMySQL(semak_tapakSqlite, sqlTrans);
                                                    if (iSaveSemakTapak > 0)
                                                    {
                                                        semak_tapak lastsemak_tapak = SemakTapakRepo.GetLastSemakTapakBy(appinfoSqlite.id, semak_tapakSqlite.newmakkebun_id);
                                                        semak_tapakSqlite.newid    = lastsemak_tapak.id;
                                                        semak_tapakSqlite.syncdate = DateTime.Now;
                                                        // UPDATE MAKKEBUN SQLITE
                                                        int iSemakTapakUpdateSync = SemakTapakRepo.UpdateSync(semak_tapakSqlite);
                                                        WriteLog(string.Format("SemakTapakRepo.CreateMySQL & Update SQLite - {0} - {1} - {2}", appinfoSqlite.id, semak_tapakSqlite.id, semak_tapakSqlite.newid));
                                                    }
                                                }
                                                catch (Exception ex)
                                                {
                                                    WriteLog(string.Format("ERROR-SemakTapakRepo.CreateMySQL-{0}", ex.GetFullMessage()));
                                                }
                                            }
                                            else
                                            {
                                                WriteLog(string.Format("Maklumat Kebun Belum Lawat - {0}", makkebunSqlite.id_makkebun));
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        WriteLog(string.Format("ERROR-MakkebunRepo.CreateMySQL-{0}", ex.GetFullMessage()));
                                    }
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            WriteLog(string.Format("ERROR-AppInfoRepo.CreateMySQL-appinfo:{0}-refno_new:{1}-MESSAGE:{2}", appinfoSqlite.id, appinfoSqlite.refno_new, ex.GetFullMessage()));
                        }

                        sqlTrans.Commit();
                    }
                    AppInfoRepo.CloseMySQLDB();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.GetFullMessage());
            }
        }