public ActionResult UpdateMikrotik(Mikrotik MikrotikInfoForUpdate) { try { Mikrotik Mikrotik_Check = db.Mikrotik.Where(s => s.MikrotikID != MikrotikInfoForUpdate.MikrotikID && s.RealIP == MikrotikInfoForUpdate.RealIP.Trim()).FirstOrDefault(); if (Mikrotik_Check != null) { //TempData["AlreadyInsert"] = "Mikrotik Already Added. Choose different Mikrotik. "; return(Json(new { UpdateSuccess = false, AlreadyInsert = true }, JsonRequestBehavior.AllowGet)); } var Mikrotik_db = db.Mikrotik.Where(s => s.MikrotikID == MikrotikInfoForUpdate.MikrotikID); MikrotikInfoForUpdate.CreatedBy = Mikrotik_db.FirstOrDefault().CreatedBy; MikrotikInfoForUpdate.CreatedDate = Mikrotik_db.FirstOrDefault().CreatedDate; MikrotikInfoForUpdate.UpdateBy = AppUtils.GetLoginUserID(); MikrotikInfoForUpdate.UpdateDate = AppUtils.GetDateTimeNow(); db.Entry(Mikrotik_db.SingleOrDefault()).CurrentValues.SetValues(MikrotikInfoForUpdate); db.SaveChanges(); TempData["UpdateSucessOrFail"] = "Update Successfully."; var Mikrotik_Return = Mikrotik_db; var JSON = Json(new { UpdateSuccess = true, MikrotikUpdateInformation = Mikrotik_Return }, JsonRequestBehavior.AllowGet); JSON.MaxJsonLength = int.MaxValue; return(JSON); } catch (Exception ex) { TempData["UpdateSucessOrFail"] = "Update Fail."; return(Json(new { UpdateSuccess = false, MikrotikUpdateInformation = "" }, JsonRequestBehavior.AllowGet)); } }
public ActionResult InsertMikrotikFromPopUp(Mikrotik Mikrotik_Client) { int mikrotikCount = db.Mikrotik.Count(); Mikrotik Mikrotik_Check = db.Mikrotik.Where(s => s.RealIP == Mikrotik_Client.RealIP.Trim()).FirstOrDefault(); if (Mikrotik_Check != null) { // TempData["AlreadyInsert"] = "Mikrotik Already Added. Choose different Mikrotik. "; return(Json(new { SuccessInsert = false, AlreadyInsert = true }, JsonRequestBehavior.AllowGet)); } Mikrotik Mikrotik_Return = new Mikrotik(); try { Mikrotik_Client.CreatedBy = int.Parse(Session["LoggedUserID"].ToString());//AppUtils.LoginUserID; Mikrotik_Client.CreatedDate = AppUtils.GetDateTimeNow(); Mikrotik_Return = db.Mikrotik.Add(Mikrotik_Client); db.SaveChanges(); if (Mikrotik_Return.MikrotikID > 0) { // TempData["SaveSucessOrFail"] = "Save Successfully."; return(Json(new { SuccessInsert = true, Mikrotik = Mikrotik_Return, MikrotikCount = mikrotikCount }, JsonRequestBehavior.AllowGet)); } else { // TempData["SaveSucessOrFail"] = "Save Failed."; return(Json(new { SuccessInsert = false }, JsonRequestBehavior.AllowGet)); } } catch { return(Json(new { SuccessInsert = false }, JsonRequestBehavior.AllowGet)); } }
public ActionResult ShowMikrotikUserByMikrotikIDForSynchronize(int MikrotikID) { // Initialization. JsonResult result = new JsonResult(); try { Mikrotik mikrotik = db.Mikrotik.Find(MikrotikID); ITikConnection connection; ITikCommand userCmd; ITikCommand PackageCmd; try { List <MikrotikUserList> lstMikrotikUserList = new List <MikrotikUserList>(); connection = ConnectionFactory.OpenConnection(TikConnectionType.Api, mikrotik.RealIP, mikrotik.MikUserName, mikrotik.MikPassword);//mikrotik.APIPort, List <MikrotikUserList> lstUserFromMikrotik = MikrotikLB.GetUserListFromMikrotik(connection, mikrotik); List <MikrotikUserList> lstActiveUserList = MikrotikLB.GetActiveUserListFromMikrotik(connection, mikrotik); IEnumerable <ITikReSentence> lstPackageFromMikrotik = MikrotikLB.GetPackageListFromMikrotik(connection); List <string> lstUserFromSystem = db.ClientDetails.Select(x => x.LoginName).ToList(); lstUserFromMikrotik = lstUserFromMikrotik.Where(z => !lstUserFromSystem.Contains(z.UserName)).ToList(); return(Json(new { Success = true, lstUserFromMikrotik = lstUserFromMikrotik, MikrotikConnectionFailed = true }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new { Success = false, MikrotikConnectionFailed = true }, JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { // Info Console.Write(ex); } // Return info. return(result); }
//[ValidateJsonAntiForgeryTokenAttribute] public JsonResult RemoveClientPermentlyFromMikrotik(List <MikrotikUser> MikrotikUser) { List <Package> lstPackage = db.Package.ToList(); Mikrotik mikrotik = db.Mikrotik.Find(MikrotikUser.FirstOrDefault().MikrotikID); int questionID = db.SecurityQuestion.FirstOrDefault().SecurityQuestionID; bool success = true; List <string> successArray = new List <string>(); ITikConnection connMik = MikrotikLB.CreateInstanceOfMikrotik(TikConnectionType.Api, mikrotik.RealIP, 8728, mikrotik.MikUserName, mikrotik.MikPassword); foreach (var user in MikrotikUser) { try { MikrotikLB.RemoveUserInMikrotik(connMik, user.LoginName); successArray.Add(user.LoginName); } catch (Exception ex) { success = false; } } return(Json(new { Success = success, SuccessArray = successArray }, JsonRequestBehavior.AllowGet)); }
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); }
//[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)); } }
public ActionResult GetAllMikrotikUserAJAXData() { // Initialization. JsonResult result = new JsonResult(); try { int zoneFromDDL = 0; // Initialization. string search = Request.Form.GetValues("search[value]")[0]; string draw = Request.Form.GetValues("draw")[0]; string order = Request.Form.GetValues("order[0][column]")[0]; string orderDir = Request.Form.GetValues("order[0][dir]")[0]; int startRec = Convert.ToInt32(Request.Form.GetValues("start")[0]); int pageSize = Convert.ToInt32(Request.Form.GetValues("length")[0]); var Mikrotik = Request.Form.Get("lstMikrotiks"); int MikrotikID = 0; if (!String.IsNullOrEmpty(Mikrotik)) { MikrotikID = int.Parse(Mikrotik); } // Loading. Mikrotik mikrotik = db.Mikrotik.Find(MikrotikID); ITikConnection connection; ITikCommand userCmd; ITikCommand PackageCmd; try { List <MikrotikUserList> lstMikrotikUserList = new List <MikrotikUserList>(); connection = ConnectionFactory.OpenConnection(TikConnectionType.Api, mikrotik.RealIP, mikrotik.MikUserName, mikrotik.MikPassword);//mikrotik.APIPort, List <MikrotikUserList> lstUserFromMikrotik = MikrotikLB.GetUserListFromMikrotik(connection, mikrotik); List <MikrotikUserList> lstActiveUserList = MikrotikLB.GetActiveUserListFromMikrotik(connection, mikrotik); IEnumerable <ITikReSentence> lstPackageFromMikrotik = MikrotikLB.GetPackageListFromMikrotik(connection); //userCmd.ExecuteList(); //var a = MikrotikLB.GetUserListFromMikrotik(userCmd); //PackageCmd = connection.CreateCommand("/ppp/profile/print"); //IEnumerable<ITikReSentence> lstPackageFromMikrotik = PackageCmd.ExecuteList(); List <string> lstUserFromSystem = db.ClientDetails.Select(x => x.LoginName).ToList(); lstUserFromMikrotik = lstUserFromMikrotik.Where(z => !lstUserFromSystem.Contains(z.UserName)).ToList(); //s => lstStockDetailsListFromClient.Contains(s.StockDetailsID) return(Json(new { Success = true, lstUserFromMikrotik = lstUserFromMikrotik, MikrotikConnectionFailed = true }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new { Success = false, MikrotikConnectionFailed = true }, JsonRequestBehavior.AllowGet)); } //// Apply pagination. ////data = data.Skip(startRec).Take(pageSize).ToList(); //var clientDetails = !string.IsNullOrEmpty(Mikrotik) ? db.ClientDetails.Where(s => s.MikrotikID.Value == MikrotikID && s.IsNewClient != AppUtils.isNewClient).AsEnumerable() : db.ClientDetails.Where(s => s.IsNewClient != AppUtils.isNewClient).AsEnumerable(); //int ifSearch = 0; //if (!string.IsNullOrEmpty(search) && // !string.IsNullOrWhiteSpace(search)) //{ // ifSearch = (clientDetails.Any()) ? clientDetails.Where(p => p.Name.ToString().ToLower().Contains(search.ToLower()) || p.Package.PackageName.ToString().ToLower().Contains(search.ToLower()) || // p.Zone.ZoneName.ToString().ToLower().Contains(search.ToLower()) || p.ContactNumber.ToString().ToLower().Contains(search.ToLower()) || // p.LoginName.ToString().ToLower().Contains(search.ToLower())).Count() : 0; // //Apply search // clientDetails = clientDetails.Where(p => p.Name.ToString().ToLower().Contains(search.ToLower()) || p.Package.PackageName.ToString().ToLower().Contains(search.ToLower()) || // p.Zone.ZoneName.ToString().ToLower().Contains(search.ToLower()) || p.ContactNumber.ToString().ToLower().Contains(search.ToLower()) || // p.LoginName.ToString().ToLower().Contains(search.ToLower()) // ).AsEnumerable(); //} //List<MikrotikUserCutomModel> data = // clientDetails.Any() ? clientDetails.Skip(startRec).Take(pageSize).AsEnumerable() // //.Select new {ss=>ss. } // .Select( // s => new MikrotikUserCutomModel // { // ClientDetailsID = s.ClientDetailsID, // MikrotikID = (s.Mikrotik != null) ? s.MikrotikID.Value : 0, // ClientName = s.Name, // LoginName = s.LoginName.ToString(), // PackageName = s.Package.PackageName, // Zone = s.Zone.ZoneName, // ContactNumber = s.ContactNumber, // MikrotikName = (s.Mikrotik != null) ? s.Mikrotik.MikName : "", // LocalAddress = s.Package.LocalAddress, // PoolName = s.Package.IpPool != null ? s.Package.IpPool.PoolName : "", // UpdateMikrotikUserInformation = ISP_ManagementSystemModel.AppUtils.HasAccessInTheList(ISP_ManagementSystemModel.AppUtils.Update_Client) ? true : false, // }) // .ToList() : new List<MikrotikUserCutomModel>(); //// Verification. //// Sorting. //data = this.SortByColumnWithOrder(order, orderDir, data); //// Total record count. //int totalRecords = clientDetails.AsEnumerable().Count();//(!string.IsNullOrEmpty(search) && !string.IsNullOrWhiteSpace(search))? data.AsEnumerable().Count(): //// Filter record count. //int recFilter = (!string.IsNullOrEmpty(search) && !string.IsNullOrWhiteSpace(search)) ? ifSearch : clientDetails.AsEnumerable().Count(); ////////////////////////////////////// //// Loading drop down lists. //result = this.Json(new //{ // draw = Convert.ToInt32(draw), // recordsTotal = totalRecords, // recordsFiltered = recFilter, // data = data //}, JsonRequestBehavior.AllowGet); } catch (Exception ex) { // Info Console.Write(ex); } // Return info. return(result); }
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)); } }
internal static List <MikrotikUserList> GetActiveUserListFromMikrotik(ITikConnection connection, Mikrotik mikrotik) { List <MikrotikUserList> lstMikrotikUserList = new List <MikrotikUserList>(); ITikCommand userCmd = connection.CreateCommand("/ppp/active/print"); var lstUserFromMikrotik = userCmd.ExecuteList(); foreach (var user in lstUserFromMikrotik) { var name = user.Words["name"]; lstMikrotikUserList.Add(new MikrotikUserList() { UserName = name }); } return(lstMikrotikUserList); }
internal static List <MikrotikUserList> GetUserListFromMikrotik(ITikConnection connection, Mikrotik mikrotik) { List <MikrotikUserList> lstMikrotikUserList = new List <MikrotikUserList>(); ITikCommand userCmd = connection.CreateCommand("/ppp/secret/print"); var lstUserFromMikrotik = userCmd.ExecuteList(); foreach (var user in lstUserFromMikrotik) { var name = user.Words["name"]; var password = user.Words["password"]; var package = user.Words["profile"]; var active = user.Words["disabled"]; var profile = user.Words["profile"]; lstMikrotikUserList.Add(new MikrotikUserList() { UserName = name, Password = password, MikrotikID = mikrotik.MikrotikID, MikrotikName = mikrotik.MikName, ProfileName = profile, active = active }); } return(lstMikrotikUserList); }