コード例 #1
0
        /// <summary>
        /// Moves given <paramref name="entityToMove"/> before given <paramref name="entityToMoveBefore"/>.
        /// </summary>
        /// <typeparam name="TEntity">Moved entity type.</typeparam>
        /// <param name="connection">Tik connection used to move entity.</param>
        /// <param name="entityToMove">Entity to be moved.</param>
        /// <param name="entityToMoveBefore">Entity before which is given <paramref name="entityToMove"/> moved.</param>
        public static void Move <TEntity>(this ITikConnection connection, TEntity entityToMove, TEntity entityToMoveBefore)
        {
            var metadata = TikEntityMetadataCache.GetMetadata <TEntity>();

            EnsureSupportsOrdering(metadata);
            EnsureHasIdProperty(metadata);

            string idToMove       = metadata.IdProperty.GetEntityValue(entityToMove);
            string idToMoveBefore = entityToMoveBefore != null?metadata.IdProperty.GetEntityValue(entityToMoveBefore) : null;

            ITikCommand cmd = connection.CreateCommandAndParameters(metadata.EntityPath + "/move", TikCommandParameterFormat.NameValue,
                                                                    "numbers", idToMove);

            if (entityToMoveBefore != null)
            {
                cmd.AddParameter("destination", idToMoveBefore);
            }

            cmd.ExecuteNonQuery();
        }
コード例 #2
0
        public ActionResult UpdateMikrotikUser(int ClientDetailsID, int MikrotikID)
        {
            ///first check mikrotik is active or not *******************************************************
            ITikConnection connection = ConnectionFactory.CreateConnection(TikConnectionType.Api);

            Mikrotik mk = db.Mikrotik.Find(MikrotikID);

            try
            {
                if ((bool)Session["MikrotikOptionEnable"])
                {
                    var clientDetails = db.ClientDetails.Where(s => s.ClientDetailsID == ClientDetailsID).FirstOrDefault();
                    //checking new mikrotik is enable or not
                    connection = ConnectionFactory.OpenConnection(TikConnectionType.Api, mk.RealIP, 8728, mk.MikUserName, mk.MikPassword);

                    // now checking if old client details mikrotik is null then direcet try to insert into mikrotik.
                    if (clientDetails.Mikrotik == null)
                    {
                        clientDetails.MikrotikID      = MikrotikID;
                        db.Entry(clientDetails).State = EntityState.Modified;
                        db.SaveChanges();

                        connection.CreateCommandAndParameters("/ppp/secret/add", "name", clientDetails.LoginName, "password", clientDetails.Password, "profile", clientDetails.Package.PackageName).ExecuteNonQuery();
                    }
                    else
                    {
                        connection = ConnectionFactory.OpenConnection(TikConnectionType.Api, clientDetails.Mikrotik.RealIP, 8728, clientDetails.Mikrotik.MikUserName, clientDetails.Mikrotik.MikPassword);
                        if (clientDetails.MikrotikID == mk.MikrotikID)
                        {
                            // connection.CreateCommandAndParameters("/ppp/secret/set", ".id",clientDetails.LoginName,).ExecuteNonQuery();
                        }
                        else if (clientDetails.MikrotikID != mk.MikrotikID)
                        {
                            //check if new mikrotik has this name then return
                            connection = ConnectionFactory.OpenConnection(TikConnectionType.Api, mk.RealIP, 8728, mk.MikUserName, mk.MikPassword);
                            var checkClientLoginNameExistInNewMikrotik = connection.CreateCommandAndParameters("/ppp/secret/print", "name", clientDetails.LoginName).ExecuteList();
                            if (checkClientLoginNameExistInNewMikrotik.Count() > 0)
                            {
                                return(Json(new { Success = false, MikrotikFailed = true, Message = "secret name already exist in " + mk.MikName + " mikrotik." }, JsonRequestBehavior.AllowGet));
                            }

                            connection.CreateCommandAndParameters("/ppp/secret/remove", ".id", clientDetails.LoginName).ExecuteNonQuery();
                            connection.CreateCommandAndParameters("/ppp/secret/add", "name", clientDetails.LoginName, "password", clientDetails.Password, "service", "pppoe", "profile", clientDetails.Package.PackageName).ExecuteNonQuery();
                        }
                    }



                    //string loginName = db.ClientDetails.Find(ClientClientDetails.ClientDetailsID).LoginName;

                    //var oldIDExistOrNot = connection.CreateCommandAndParameters("/ppp/secret/print", "name", loginName).ExecuteList();
                    ////var oldIDExistOrNot1 = connection.CreateCommandAndParameters("/ppp/secret/print", "name", loginName).ExecuteScalar();
                    ////var oldIDExistOrNot2 = connection.CreateCommandAndParameters("/ppp/secret/print", "name", loginName).ExecuteSingleRow();
                    //if (oldIDExistOrNot.Count() < 1)
                    //{
                    //    return Json(new { Success = false, MikrotikFailed = true, Message = "Old login name: " + loginName + " was not exist in Mikrotik. Please Assign First." },
                    //        JsonRequestBehavior.AllowGet);
                    //}
                }
            }
            catch (Exception ex)
            {
                return(Json(new
                {
                    Success = false,
                    MikrotikFailed = true,
                    Message = ex.Message
                }, JsonRequestBehavior.AllowGet));
            }


            try
            {
                var JSON = Json(new { UpdateSuccess = true, ClientDetailsID = ClientDetailsID, MikrotikName = mk.MikName }, JsonRequestBehavior.AllowGet);
                JSON.MaxJsonLength = int.MaxValue;
                return(JSON);
            }
            catch
            {
                return(Json(new { UpdateSuccess = false, PackageUpdateInformation = "" }, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #3
0
 internal static void RemoveUserInMikrotik(ITikConnection connection, ClientDetails clientDetails)
 {
     connection.CreateCommandAndParameters("/ppp/secret/remove", ".id", clientDetails.LoginName).ExecuteNonQuery();
 }
コード例 #4
0
ファイル: IpDhcpServer.cs プロジェクト: sstercan/tik4net
 /// <summary>
 /// Check status of a given busy dynamic lease, and free it in case of no response
 /// </summary>
 public void CheckStatus(ITikConnection connection)
 {
     connection.CreateCommandAndParameters("ip/dhcp-server/lease/check-status",
                                           TikSpecialProperties.Id, Id).ExecuteNonQuery();
 }
コード例 #5
0
ファイル: IpDhcpServer.cs プロジェクト: sstercan/tik4net
 /// <summary>
 /// Convert a dynamic lease to a static one
 /// </summary>
 public void ResetAlert(ITikConnection connection)
 {
     connection.CreateCommandAndParameters("ip/dhcp-server/alert/reset-alert",
                                           TikSpecialProperties.Id, Id).ExecuteNonQuery();
 }
コード例 #6
0
        //[ValidateAntiForgeryToken]
        public ActionResult UpdatePackage(Package PackageInfoForUpdate)
        {
            Package package_Check = db.Package.Where(s => s.PackageID != PackageInfoForUpdate.PackageID && s.PackageName.ToLower() == PackageInfoForUpdate.PackageName.Trim().ToLower() && s.PackageForMyOrResellerUser == PackageInfoForUpdate.PackageForMyOrResellerUser).FirstOrDefault();

            if (package_Check != null)
            {
                return(Json(new { UpdateSuccess = false, AlreadyInsert = true }, JsonRequestBehavior.AllowGet));
            }

            if ((bool)Session["MikrotikOptionEnable"])
            {
                Mikrotik mikrotik   = db.Mikrotik.Find(PackageInfoForUpdate.MikrotikID);
                var      ipPoolName = db.IPPool.Find(PackageInfoForUpdate.IPPoolID).PoolName;
                var      oldPackageInfoForUpdate = db.Package.Find(PackageInfoForUpdate.PackageID);

                PackageInfoForUpdate.OldPackageName = oldPackageInfoForUpdate.PackageName;
                try
                {//ITikConnection connection = ConnectionFactory.CreateConnection(TikConnectionType.Api);
                    ITikConnection connection = ConnectionFactory.OpenConnection(TikConnectionType.Api, mikrotik.RealIP, 8728, mikrotik.MikUserName, mikrotik.MikPassword);
                    connection.CreateCommandAndParameters("/ppp/profile/set", ".id", oldPackageInfoForUpdate.PackageName, "name", PackageInfoForUpdate.PackageName.Trim(), "local-address", PackageInfoForUpdate.LocalAddress, "remote-address", ipPoolName, "incoming-filter", "mypppclients").ExecuteNonQuery();

                    //add profile
                    //var profileadd = connection.CreateCommandAndParameters("ppp/profile/add", "name", "test1", "local-address", "10.0.0.1", "remote-address", "sp", "incoming-filter", "mypppclients");
                    //profileadd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    return(Json(new { Success = false, MikrotikFailed = true, Message = ex.Message }, JsonRequestBehavior.AllowGet));
                }
            }

            try
            {
                var Package = db.Package.Where(s => s.PackageID == PackageInfoForUpdate.PackageID);
                PackageInfoForUpdate.CreatedBy   = Package.FirstOrDefault().CreatedBy;
                PackageInfoForUpdate.CreatedDate = Package.FirstOrDefault().CreatedDate;
                PackageInfoForUpdate.UpdateBy    = "Hasan";
                PackageInfoForUpdate.UpdateDate  = AppUtils.GetDateTimeNow();

                db.Entry(Package.SingleOrDefault()).CurrentValues.SetValues(PackageInfoForUpdate);
                db.SaveChanges();

                var package =
                    new CustomPackage()
                {
                    PackageID     = PackageInfoForUpdate.PackageID,
                    PackageName   = PackageInfoForUpdate.PackageName,
                    BandWith      = PackageInfoForUpdate.BandWith,
                    PackagePrice  = PackageInfoForUpdate.PackagePrice.ToString(),
                    Client        = db.ClientDetails.Where(ss => ss.PackageID == PackageInfoForUpdate.PackageID).Count(),
                    IPPoolName    = (PackageInfoForUpdate.IPPoolID != null) ? db.IPPool.Find(PackageInfoForUpdate.IPPoolID).PoolName : "",
                    LocalAddress  = PackageInfoForUpdate.LocalAddress,
                    MikrotikName  = db.Mikrotik.Find(PackageInfoForUpdate.MikrotikID).MikName,
                    PackageUpdate = ISP_ManagementSystemModel.AppUtils.HasAccessInTheList(ISP_ManagementSystemModel.AppUtils.Update_Package) ? true : false,
                };
                var JSON = Json(new { UpdateSuccess = true, PackageUpdateInformation = package }, JsonRequestBehavior.AllowGet);
                JSON.MaxJsonLength = int.MaxValue;
                return(JSON);
            }
            catch
            {
                return(Json(new { UpdateSuccess = false, PackageUpdateInformation = "" }, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #7
0
 /// <summary>
 /// Renew current leases. If the renew operation was not successful, client tries to reinitialize lease (i.e. it starts lease request procedure (rebind) as if it had not received an IP address yet)
 /// </summary>
 public void Renew(ITikConnection connection)
 {
     connection.CreateCommandAndParameters("ip/dhcp-client/renew",
                                           TikSpecialProperties.Id, Id).ExecuteNonQuery();
 }
コード例 #8
0
 internal static void CreateUserInMikrotikDuringUpdate(ITikConnection connection, ClientDetails clientDetails, ClientLineStatus clientLineStatus)
 {
     connection.CreateCommandAndParameters("/ppp/secret/add", "name", clientDetails.LoginName, "password", clientDetails.Password, "service", MikrotikService, "profile", db.Package.Find(clientLineStatus.PackageID).PackageName.Trim() /*,"disabled", "yes"*/).ExecuteNonQuery();
 }
コード例 #9
0
 internal static void CreateUserInMikrotikByPackageID(ITikConnection connection, ClientDetails clientDetails, int packageID)
 {
     connection.CreateCommandAndParameters("/ppp/secret/add", "name", clientDetails.LoginName, "password", clientDetails.Password, "service", MikrotikService, "profile", db.Package.Find(packageID).PackageName.Trim()).ExecuteNonQuery();
 }
コード例 #10
0
        internal static /*ITikReSentence*/ int CountNumbeOfUserInActive(ITikConnection connection, ClientDetails clientDetails)
        {
            var countLoginName = connection.CreateCommandAndParameters("/ppp/active/print", "name", clientDetails.LoginName).ExecuteList();

            return(countLoginName.Count() > 0 ? countLoginName.Count() : 0);
        }
コード例 #11
0
        internal static /*ITikReSentence*/ bool UserIDExistOrNotInMikrotik(ITikConnection connection, ClientDetails clientDetails)
        {
            var checkUserExistOrNot = connection.CreateCommandAndParameters("/ppp/secret/print", "name", clientDetails.LoginName).ExecuteList();

            return(checkUserExistOrNot.Count() > 0 ? true : false);
        }
コード例 #12
0
 internal static void UpdateMikrotikUserBySingleSingleData(ITikConnection connection, string LoginName, string password, int PackageID)
 {
     connection.CreateCommandAndParameters("/ppp/secret/set", ".id", LoginName, "name", LoginName, "password", password, /*"service", MikrotikService,*/ "profile", db.Package.Find(PackageID).PackageName.Trim()).ExecuteNonQuery();
 }
コード例 #13
0
 internal static void SetStatusOfUserInMikrotik(ITikConnection connection, string ClientLoginName, string status)
 {
     connection.CreateCommandAndParameters("/ppp/secret/set", "disabled", status.Trim(), TikSpecialProperties.Id, ClientLoginName).ExecuteNonQuery();
 }
コード例 #14
0
 internal static void RemoveUserInMikrotik(ITikConnection connection, string UserName)
 {
     connection.CreateCommandAndParameters("/ppp/secret/remove", ".id", UserName).ExecuteNonQuery();
 }
コード例 #15
0
 /// <summary>
 /// Check status of a given busy dynamic lease, and free it in case of no response
 /// </summary>
 public void CheckStatus(ITikConnection connection)
 {
     connection.CreateCommandAndParameters("ip/dhcp-server/lease/check-status",
         TikSpecialProperties.Id, Id).ExecuteNonQuery();
 }
コード例 #16
0
 //internal static void CreateUserInMikrotikByPackageAndStatus(ITikConnection connection, ClientDetails clientDetails, int packageID, int status)
 //{
 //    connection.CreateCommandAndParameters("/ppp/secret/add", "name", clientDetails.LoginName, "password", clientDetails.Password, "service", MikrotikService, "profile", db.Package.Find(packageID).PackageName.Trim(), "disabled", status == 5 ? AppUtils.MakeUserDisabledInMikrotik : AppUtils.MakeUserEnableInMikrotik).ExecuteNonQuery();
 //}
 internal static void UpdateUserInMikrotikWithPackageInformation(ITikConnection connection, ClientDetails oldClientDetails, ClientDetails newClientDetails, ClientLineStatus clientLineStatus)
 {
     connection.CreateCommandAndParameters("/ppp/secret/set", ".id", oldClientDetails.LoginName, "name", newClientDetails.LoginName, "password", newClientDetails.Password /*, "service", MikrotikService*/, "profile", db.Package.Find(clientLineStatus.PackageID).PackageName.Trim()).ExecuteNonQuery();
 }
コード例 #17
0
 /// <summary>
 /// Convert a dynamic lease to a static one
 /// </summary>
 public void MakeStatic(ITikConnection connection)
 {
     connection.CreateCommandAndParameters("ip/dhcp-server/lease/make-static",
         TikSpecialProperties.Id, Id).ExecuteNonQuery();
 }
コード例 #18
0
 internal static void UpdateUserInMikrotikWithPackageAndStatusInformation(ITikConnection connection, ClientDetails oldClientDetails, ClientDetails newClientDetails, ClientLineStatus ClientClientLineStatus, bool?chkStatusFromRunningMonth, bool?chkPackageFromRunningMonth)
 {
     connection.CreateCommandAndParameters("/ppp/secret/set", ".id", oldClientDetails.LoginName, "name", newClientDetails.LoginName, "password", newClientDetails.Password /*, "service", MikrotikService*/, "profile", db.Package.Find(ClientClientLineStatus.PackageID).PackageName.Trim(), "disabled", ClientClientLineStatus.LineStatusID == AppUtils.LineIsLock ? AppUtils.MakeUserDisabledInMikrotik : AppUtils.MakeUserEnableInMikrotik).ExecuteNonQuery();
 }
コード例 #19
0
        public JsonResult InsertPackage(Package Package)
        {
            Package package_Check = package_Check = db.Package.Where(s => s.PackageName.ToLower() == Package.PackageName.Trim().ToLower() && s.PackageForMyOrResellerUser == Package.PackageForMyOrResellerUser).FirstOrDefault();

            if (package_Check != null)
            {
                return(Json(new { SuccessInsert = false, AlreadyInsert = true }, JsonRequestBehavior.AllowGet));
            }

            if ((bool)Session["MikrotikOptionEnable"])
            {
                Mikrotik mikrotik   = db.Mikrotik.Find(Package.MikrotikID);
                var      ipPoolName = db.IPPool.Find(Package.IPPoolID).PoolName;

                try
                {//ITikConnection connection = ConnectionFactory.CreateConnection(TikConnectionType.Api);
                    ITikConnection connection = ConnectionFactory.OpenConnection(TikConnectionType.Api, mikrotik.RealIP, 8728, mikrotik.MikUserName, mikrotik.MikPassword);
                    connection.CreateCommandAndParameters("/ppp/profile/add", "name", Package.PackageName.Trim(), "local-address", Package.LocalAddress, "remote-address", ipPoolName, "incoming-filter", "mypppclients").ExecuteNonQuery();

                    //add profile
                    //var profileadd = connection.CreateCommandAndParameters("ppp/profile/add", "name", "test1", "local-address", "10.0.0.1", "remote-address", "sp", "incoming-filter", "mypppclients");
                    //profileadd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    return(Json(new { Success = false, MikrotikFailed = true, Message = ex.Message }, JsonRequestBehavior.AllowGet));
                }
            }
            int packageCount = db.Package.Count();

            try
            {
                Package.CreatedBy   = AppUtils.GetLoginEmployeeName();
                Package.CreatedDate = AppUtils.GetDateTimeNow();

                db.Package.Add(Package);
                db.SaveChanges();
                var PoolName = db.IPPool.Where(s => s.IPPoolID == Package.IPPoolID).FirstOrDefault().PoolName;
                //var packageInsertInformation = AppUtils.IgnoreCircularLoop(PackageInfo);

                CustomPackage PackageInfo = new CustomPackage
                {
                    PackageID     = Package.PackageID,
                    PackageName   = Package.PackageName,
                    BandWith      = Package.BandWith,
                    PackagePrice  = Package.PackagePrice.ToString(),
                    Client        = db.ClientDetails.Where(ss => ss.PackageID == Package.PackageID).Count(),
                    IPPoolName    = (Package.IPPoolID != null) ? Package.IpPool.PoolName : "",
                    LocalAddress  = Package.LocalAddress,
                    MikrotikName  = db.Mikrotik.Find(Package.MikrotikID).MikName,
                    PackageUpdate = ISP_ManagementSystemModel.AppUtils.HasAccessInTheList(ISP_ManagementSystemModel.AppUtils.Update_Package) ? true : false,
                };


                return(Json(new { SuccessInsert = true, PackageInformation = PackageInfo, packageCount = packageCount }, JsonRequestBehavior.AllowGet));
            }
            catch
            {
                return(Json(new { SuccessInsert = false }, JsonRequestBehavior.AllowGet));
            }



            //return Json(new { SuccessInsert = false }, JsonRequestBehavior.AllowGet);
        }
コード例 #20
0
 internal static void UpdateUserInMikrotikWithOutPackageInformation(ITikConnection connection, ClientDetails oldClientDetails, ClientDetails newClientDetails)
 {
     connection.CreateCommandAndParameters("/ppp/secret/set", ".id", oldClientDetails.LoginName, "name", newClientDetails.LoginName, "password", newClientDetails.Password /*, "service", MikrotikService*/).ExecuteNonQuery();
 }
コード例 #21
0
ファイル: DhcpServerAlert.cs プロジェクト: danikf/tik4net
 /// <summary>
 /// Convert a dynamic lease to a static one
 /// </summary>
 public void ResetAlert(ITikConnection connection)
 {
     connection.CreateCommandAndParameters("ip/dhcp-server/alert/reset-alert",
         TikSpecialProperties.Id, Id).ExecuteNonQuery();
 }
コード例 #22
0
ファイル: IpDhcpRelay.cs プロジェクト: wizd/tik4net
 /// <summary>
 /// Reset counters
 /// </summary>
 public void ResetCounters(ITikConnection connection)
 {
     connection.CreateCommandAndParameters("ip/dhcp-relay/reset-counters",
                                           TikSpecialProperties.Id, Id).ExecuteNonQuery();
 }
コード例 #23
0
ファイル: IpDhcpServer.cs プロジェクト: sstercan/tik4net
 /// <summary>
 /// Convert a dynamic lease to a static one
 /// </summary>
 public void MakeStatic(ITikConnection connection)
 {
     connection.CreateCommandAndParameters("ip/dhcp-server/lease/make-static",
                                           TikSpecialProperties.Id, Id).ExecuteNonQuery();
 }
コード例 #24
0
ファイル: IpDhcpClient.cs プロジェクト: h44z/tik4net
 /// <summary>
 /// Renew current leases. If the renew operation was not successful, client tries to reinitialize lease (i.e. it starts lease request procedure (rebind) as if it had not received an IP address yet)
 /// </summary>
 public void Renew(ITikConnection connection)
 {
     connection.CreateCommandAndParameters("ip/dhcp-client/renew",
         TikSpecialProperties.Id, Id).ExecuteNonQuery();
 }
コード例 #25
0
        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                using (ITikConnection connection = ConnectionFactory.CreateConnection(TikConnectionType.Api))
                {
                    connection.Open(HOST, USER, PASS);

                    int n = 1;

                    var natRule = connection.CreateCommandAndParameters("/ip/route/print", "dst-address", route).ExecuteList();
                    var value   = natRule.Count();
                    if (value == n)
                    {
                        Color colorOn_n = Color.Blue;
                        label1.ForeColor = colorOn_n;
                        label1.Text      = ("Сервер уже включен.");
                        return;
                    }
                }
            }
            catch
            {
                Color colorOff_n = Color.Red;
                label1.ForeColor = colorOff_n;
                label1.Text      = ("Возникло исключение!\nИмя сервера или порт \nне доступты!");
            }

            try
            {
                using (ITikConnection connection = ConnectionFactory.CreateConnection(TikConnectionType.Api))
                {
                    connection.Open(HOST, USER, PASS);

                    int n = 1;

                    var natRule = connection.CreateCommandAndParameters("/ip/route/print", "dst-address", route).ExecuteList();
                    var value   = natRule.Count();
                    if (value == n)
                    {
                        Color colorOn_n = Color.Blue;
                        label1.ForeColor = colorOn_n;
                        label1.Text      = ("Сервер уже включен.");
                        return;
                    }
                }
            }
            catch
            {
                label1.Text = ("Возникло исключение");
            }

            try
            {
                using (ITikConnection connection = ConnectionFactory.CreateConnection(TikConnectionType.Api))
                {
                    connection.Open(HOST, USER, PASS);

                    var natRule    = connection.CreateCommandAndParameters("/ip/address/print", "comment", nameRule).ExecuteList();
                    var id         = natRule.Single().GetId();
                    var enableRule = connection.CreateCommandAndParameters("/ip/address/enable", TikSpecialProperties.Id, id);
                    enableRule.ExecuteNonQuery();

                    Color colorOn = Color.Blue;
                    label1.ForeColor = colorOn;
                    label1.Text      = ("Вы включили сервер.");
                }
            }
            catch
            {
                Color colorOff_n = Color.Red;
                label1.ForeColor = colorOff_n;
                label1.Text      = ("Возникло исключение!\nИмя сервера или порт \nне доступты!");
            }
        }
コード例 #26
0
ファイル: IpDhcpRelay.cs プロジェクト: h44z/tik4net
 /// <summary>
 /// Reset counters
 /// </summary>
 public void ResetCounters(ITikConnection connection)
 {
     connection.CreateCommandAndParameters("ip/dhcp-relay/reset-counters",
         TikSpecialProperties.Id, Id).ExecuteNonQuery();
 }