public ActionResult Login(ExLogOnViewModel model, bool hosted = false) { User userObj = (User)Session["user"]; var acc = accRepository.Accounts.FirstOrDefault(x => x.ID == userObj.AccountID); //credRepository.SetConnectionString(acc.ConnectionString); ExchangeService srv = null; if (model.SelectedCredentialID != 0) { var creds = credRepository.Credentials.FirstOrDefault(x => x.ID == model.SelectedCredentialID); if (creds.IsHostedExchange) { srv = new ExchangeService(ExchangeVersion.Exchange2007_SP1); srv.Credentials = new WebCredentials(creds.EmailAddress, creds.Password); srv.AutodiscoverUrl(creds.EmailAddress, RedirectionUrlValidationCallback); } else { if (creds.ServerVersion == "2007SP1") srv = new ExchangeService(ExchangeVersion.Exchange2007_SP1); else if (creds.ServerVersion == "2010") srv = new ExchangeService(ExchangeVersion.Exchange2010); else if (creds.ServerVersion == "2010SP1") srv = new ExchangeService(ExchangeVersion.Exchange2010_SP1); else srv = new ExchangeService(ExchangeVersion.Exchange2010_SP2); srv.Credentials = new WebCredentials(creds.UserName, creds.Password); srv.AutodiscoverUrl(creds.EmailAddress, RedirectionUrlValidationCallback); } Session["srv"] = srv; Session["srvEmail"] = creds.EmailAddress; } else { if (hosted) { srv = new ExchangeService(ExchangeVersion.Exchange2007_SP1); srv.Credentials = new WebCredentials(model.Credentials.EmailAddress, model.Credentials.Password); srv.AutodiscoverUrl(model.Credentials.EmailAddress, RedirectionUrlValidationCallback); model.Credentials.URL = srv.Url.AbsoluteUri; } else { if (model.Credentials.ServerVersion == "2007SP1") srv = new ExchangeService(ExchangeVersion.Exchange2007_SP1); else if (model.Credentials.ServerVersion == "2010") srv = new ExchangeService(ExchangeVersion.Exchange2010); else if (model.Credentials.ServerVersion == "2010SP1") srv = new ExchangeService(ExchangeVersion.Exchange2010_SP1); else srv = new ExchangeService(ExchangeVersion.Exchange2010_SP2); srv.Credentials = new WebCredentials(model.Credentials.UserName, model.Credentials.Password); srv.AutodiscoverUrl(model.Credentials.EmailAddress, RedirectionUrlValidationCallback); model.Credentials.URL = srv.Url.AbsoluteUri; } Session["srv"] = srv; Session["srvEmail"] = model.Credentials.EmailAddress; model.Credentials.IsHostedExchange = hosted; credRepository.SaveCredential(model.Credentials); } return Redirect(model.ReturnUrl); }
public ActionResult Index(string src = "", string primid = "") { User userObj = (User)Session["user"]; var acc = accRepository.Accounts.FirstOrDefault(x => x.ID == userObj.AccountID); //credRepository.SetConnectionString(acc.ConnectionString); TempData["SelectedMenu"] = "SetupSync"; var model = new ExLogOnViewModel(); model.ExistingCredentials = credRepository.Credentials.ToList(); model.ReturnUrl = "~/ExO365/SelectFolder?src=" + src + "&primid=" + primid; return View(model); }
public ActionResult AddCrimeDiary(ExLogOnViewModel model, bool hosted = false) { Account accountObj = (Account)Session["account"]; DateTime? d = null; var folderID = ((CCFolder)Session["folderDetail"]).FolderID; var folderNmae = ((CCFolder)Session["folderDetail"]).Name; string constring = string.Empty; var hostUrl = System.Web.HttpContext.Current.Request.Url.Host; if (hostUrl == "secure.corporate-contacts.com") { constring = ConfigurationManager.ConnectionStrings["TuckersConnectionDB"].ConnectionString; } else if (hostUrl == "staging.corporate-contacts.com") { constring = ConfigurationManager.ConnectionStrings["TuckersConnectionDB"].ConnectionString; } else { constring = ConfigurationManager.ConnectionStrings["TuckersConnectionTestDB"].ConnectionString; } CCConnection objConnection = new CCConnection(); objConnection = model.Connection; objConnection.Type = "CrimeDiary"; objConnection.FolderID = folderID; objConnection.AllowAdditions = false; objConnection.IgnoreExisting = false; objConnection.CategoryFilterUsed = false; objConnection.CopyPhotos = false; objConnection.TurnOffReminders = false; objConnection.CredentialsID = 11111; objConnection.Owner = "owner"; objConnection.IsRunning = false; objConnection.LastSyncTime = "1900-01-01 00:00"; objConnection.Frequency = 1440; objConnection.FolderName = folderNmae; objConnection.SourceID = constring; objConnection.AccessType = 0; objConnection.SecondaryAccount = ""; objConnection.AccountGUID = accountObj.AccountGUID; if (ModelState.IsValid) { var resp = CCConnectinRepository.SaveSubscription(objConnection); return RedirectToAction("ViewConnections", "Folder", new { id = folderID }); } else { return View(model); } }
public long SaveCredentials(ExLogOnViewModel model, string selectedButton, bool hosted, string url, string version) { long credentialID = 0; string enpassword = string.Empty; Account accountObj = (Account)Session["account"]; Credential resp = new Credential(); if (selectedButton == "auto" || selectedButton == "test") { enpassword = Encryption.EncryptStringAES(model.Credentials.Password, rand); Session["srvEmail"] = model.Credentials.EmailAddress; model.Credentials.IsHostedExchange = hosted; model.Credentials.Password = enpassword; model.Credentials.ServerVersion = version; model.Credentials.URL = url; model.Credentials.AccountGUID = accountObj.AccountGUID; resp = CCCredentialRepository.SaveCredential(model.Credentials); credentialID = resp.ID; } else { enpassword = Encryption.EncryptStringAES(model.Password, rand); Credential credintialIn = new Credential(); credintialIn.Name = model.Name; if (model.UserName != null) { credintialIn.UserName = model.UserName; Session["srvEmail"] = model.UserName; } else { credintialIn.EmailAddress = model.EmailAddressIn; Session["srvEmail"] = model.EmailAddressIn; } credintialIn.URL = url; credintialIn.Password = enpassword; credintialIn.ServerVersion = version; credintialIn.IsHostedExchange = false; credintialIn.Domain = model.Domain; credintialIn.AccountGUID = accountObj.AccountGUID; resp = CCCredentialRepository.SaveCredential(credintialIn); credentialID = resp.ID; } return credentialID; }
public ActionResult LogintoExchange(ExLogOnViewModel model, bool hosted = false) { EWSCode ewscode = new EWSCode(); User userObj = (User)Session["user"]; Account accountObj = (Account)Session["account"]; TempData["SelectedMenu"] = "Manage"; TempData["SelectedSubMenu"] = "ManageFolders"; string selectedButton = string.Empty; if (model.ExchangeType == 1) { selectedButton = model.SelectedButtonInhouse; } else { selectedButton = model.SelectedButton; } long credentialID = 0; model.ExistingConnections = CCConnectinRepository.CCSubscriptions.Where(folderID => folderID.AccountGUID == accountObj.AccountGUID & folderID.SecondaryAccount != "").ToList().GroupBy(x => x.SecondaryAccount).Select(y => y.First()).ToList(); if (selectedButton == "auto") { ConnectionConfig cc = ewscode.AutoDiscoverConnectionDetails(model.Credentials.EmailAddress, model.Credentials.Password); //model.ExistingCredentials = CCCredentialRepository.Credentials.Where(aid => aid.AccountID == userObj.AccountID).ToList(); model.ExistingCredentials = CCCredentialRepository.Credentials.Where(aguid => aguid.AccountGUID == accountObj.AccountGUID).ToList(); model.ReturnUrl = "~/Folder/SelectFolder?src=" + "src" + "&primid=" + model.selectedFolderID; if (cc != null) { //save crediantal credentialID = SaveCredentials(model, selectedButton, hosted, cc.url, cc.version.ToString()); ViewBag.url = cc.url; ViewBag.msucess = "Connection Successful"; ViewBag.mfail = ""; ViewBag.tmessage = "sucess"; ViewBag.pass = Encryption.DecryptStringAES(model.Credentials.Password, rand); model.ServerVer = cc.version.ToString(); Session["secondaryAccount"] = model.SecondaryAccount; Session["accessType"] = model.AccessType; string accessTypes = Session["accessType"].ToString(); } else { ViewBag.url = ""; ViewBag.mfail = "Error: Auto-discover failed"; ViewBag.msucess = ""; ViewBag.tmessage = "fail"; ViewBag.pass = model.Credentials.Password; } model.CreatedCredentialID = credentialID; return View(model); } else if (selectedButton == "test") { string version = ewscode.StandardConnection(model.Credentials.EmailAddress, model.Credentials.Password, model.Credentials.URL); model.ExistingCredentials = CCCredentialRepository.Credentials.Where(aguid => aguid.AccountGUID == accountObj.AccountGUID).ToList(); model.ReturnUrl = "~/Folder/SelectFolder?src=" + "src" + "&primid=" + model.selectedFolderID; if (version != "" && version != "404" && version != "401" && version != "null") { //save crediantal credentialID = SaveCredentials(model, selectedButton, hosted, model.Credentials.URL, version.ToString()); ViewBag.url = model.Credentials.URL; ViewBag.pass = Encryption.DecryptStringAES(model.Credentials.Password, rand); ViewBag.msucess = "Connection Successful"; ViewBag.mfail = ""; ViewBag.tmessage = "sucess"; model.ServerVer = version.ToString(); } else { ViewBag.url = ""; if (version == "") { ViewBag.mfail = "Connection Fail"; } else if (version == "404") { ViewBag.mfail = "Error: The URL was not found. Please check the URL."; } else if (version == "401") { ViewBag.mfail = "Error: Server returned 'Unauthorized'. Please check the username and password"; } else if (version == "null") { ViewBag.mfail = "Error: URL cannot be null. Please enter the URL."; } else { ViewBag.mfail = "Connection Fail"; } ViewBag.msucess = ""; ViewBag.tmessage = "fail"; } model.CreatedCredentialID = credentialID; return View(model); } else if (selectedButton == "autoInhouse") { ConnectionConfig cc = ewscode.AutoDiscoverConnectionDetails(model.EmailAddressIn, model.Password); model.ExistingCredentials = CCCredentialRepository.Credentials.Where(aguid => aguid.AccountGUID == accountObj.AccountGUID).ToList(); model.ReturnUrl = "~/Folder/SelectFolder?src=" + "src" + "&primid=" + model.selectedFolderID; if (cc != null) { //save crediantal credentialID = SaveCredentials(model, selectedButton, hosted, cc.url, cc.version.ToString()); ViewBag.urlin = cc.url; ViewBag.msucessin = "Connection Successful"; ViewBag.mfailin = ""; ViewBag.tmessagein = ""; ViewBag.passin = model.Password; model.ServerVersionInhouse = cc.version.ToString(); Session["secondaryAccount"] = model.SecondaryAccountIn; Session["accessType"] = model.AccessTypeIn; } else { ViewBag.urlin = ""; ViewBag.mfailin = "Error: Auto-discover failed"; ViewBag.msucessin = ""; ViewBag.tmessagein = ""; ViewBag.passin = model.Password; } model.CreatedCredentialIDIn = credentialID; return View(model); } else if (selectedButton == "testInhouse") { model.ExistingCredentials = CCCredentialRepository.Credentials.Where(aguid => aguid.AccountGUID == accountObj.AccountGUID).ToList(); string version = ewscode.StandardConnectionToInHouseExchanges(model.UserName, model.Password, model.URL, model.Domain); model.ReturnUrlInhouse = "~/Folder/SelectFolder?src=" + "src" + "&primid=" + model.selectedFolderIDInhouse; if (version != "" && version != "404" && version != "401" && version != "null") { //save crediantal credentialID = SaveCredentials(model, selectedButton, hosted, model.URL, version.ToString()); ViewBag.urlin = model.URL; ViewBag.passin = model.Password; ViewBag.msucessin = "Connection Successful"; ViewBag.mfailin = ""; ViewBag.tmessagein = "sucess"; model.ServerVersionInhouse = version.ToString(); } else { ViewBag.urlin = ""; if (version == "") { ViewBag.mfailin = "Connection Fail"; } else if (version == "404") { ViewBag.mfailin = "Error: The URL was not found. Please check the URL."; } else if (version == "401") { ViewBag.mfailin = "Error: Server returned 'Unauthorized'. Please check the username and password"; } else if (version == "null") { ViewBag.mfailin = "Error: URL cannot be null. Please enter the URL."; } else { ViewBag.mfailin = "Connection Fail"; } ViewBag.msucessin = ""; ViewBag.tmessagein = "fail"; } model.CreatedCredentialIDIn = credentialID; return View(model); } else { if (model.SecondaryAccountc != null) { Session["secondaryAccount"] = model.SecondaryAccountc; if (model.AccessTypec != null) { Session["accessType"] = model.AccessTypec; } } if (model.SecondaryAccount != null) { Session["secondaryAccount"] = model.SecondaryAccount; if (model.AccessType != null) { Session["accessType"] = model.AccessType; } } if (model.SecondaryAccountIn != null) { Session["secondaryAccount"] = model.SecondaryAccountIn; if (model.AccessTypeIn != null) { Session["accessType"] = model.AccessTypeIn; } } if (model.SecondaryAccountc == null && model.SecondaryAccount == null && model.SecondaryAccountIn == null) { Session["accessType"] = 0; Session["secondaryAccount"] = ""; } ExchangeService srv = null; if (model.SelectedCredentialID != 0 || model.CreatedCredentialID != 0 || model.CreatedCredentialIDIn != 0) { long selectedCreadintialID = 0; if (model.SelectedCredentialID != 0) { selectedCreadintialID = model.SelectedCredentialID; } else if (model.CreatedCredentialID != 0) { selectedCreadintialID = model.CreatedCredentialID; } else if (model.CreatedCredentialIDIn != 0) { selectedCreadintialID = model.CreatedCredentialIDIn; } var creds = CCCredentialRepository.Credentials.FirstOrDefault(x => x.ID == selectedCreadintialID); string depassword = Encryption.DecryptStringAES(creds.Password, rand); if (creds.IsHostedExchange) { srv = new ExchangeService(ExchangeVersion.Exchange2007_SP1); if (creds.EmailAddress != null) { srv.Credentials = new WebCredentials(creds.EmailAddress, depassword); } else { srv.Credentials = new WebCredentials(creds.UserName, depassword); } srv.Url = new Uri(creds.URL); } else { if (creds.ServerVersion == "2007SP1") srv = new ExchangeService(ExchangeVersion.Exchange2007_SP1); else if (creds.ServerVersion == "2010") srv = new ExchangeService(ExchangeVersion.Exchange2010); else if (creds.ServerVersion == "2010SP1") srv = new ExchangeService(ExchangeVersion.Exchange2010_SP1); else if (creds.ServerVersion == "Exchange2010_SP1") srv = new ExchangeService(ExchangeVersion.Exchange2010_SP1); else if (creds.ServerVersion == "Exchange2010_SP2") srv = new ExchangeService(ExchangeVersion.Exchange2010_SP2); else srv = new ExchangeService(ExchangeVersion.Exchange2007_SP1); if (creds.Domain != null) { srv.Credentials = new WebCredentials(creds.UserName, depassword, creds.Domain); } else if (creds.UserName != null) { srv.Credentials = new WebCredentials(creds.UserName, depassword); } else { srv.Credentials = new WebCredentials(creds.EmailAddress, depassword); } srv.Url = new Uri(creds.URL); } Session["srv"] = srv; if (creds.EmailAddress != null) { Session["srvEmail"] = creds.EmailAddress; } else { Session["srvEmail"] = creds.UserName; } credentialID = selectedCreadintialID; } return Redirect(model.ReturnUrl + "&creid=" + credentialID); } }
public ActionResult LogintoExchange(string src = "", long fid = 1) { User userObj = (User)Session["user"]; Account accountObj = (Account)Session["account"]; TempData["SelectedMenu"] = "Manage"; TempData["SelectedSubMenu"] = "ManageFolders"; var model = new ExLogOnViewModel(); model.ExistingCredentials = CCCredentialRepository.Credentials.Where(aguid => aguid.AccountGUID == accountObj.AccountGUID).ToList(); model.ExistingConnections = CCConnectinRepository.CCSubscriptions.Where(folderID => folderID.AccountGUID == accountObj.AccountGUID & folderID.SecondaryAccount != "").ToList().GroupBy(x => x.SecondaryAccount).Select(y => y.First()).ToList(); model.ReturnUrl = "~/Folder/SelectFolder?src=" + "src" + "&primid=" + fid; model.selectedFolderIDInhouse = fid; // add plan id if (userObj != null) { var account = accRepository.Accounts.Where(aid => aid.ID == userObj.AccountID).FirstOrDefault(); model.PlanID = account.PlanID; } else { model.PlanID = 1; } return View(model); }
public ActionResult AddCredentials(ExLogOnViewModel model, bool hosted = false) { EWSCode ewscode = new EWSCode(); User userObj = (User)Session["user"]; Account accountObj = (Account)Session["account"]; TempData["SelectedMenu"] = "Manage"; TempData["SelectedSubMenu"] = "ManageCredentials"; string selectedButton = string.Empty; if (model.ExchangeType == 1) { selectedButton = model.SelectedButtonInhouse; } else { selectedButton = model.SelectedButton; } long credentialID = 0; model.ExistingConnections = CCConnectinRepository.CCSubscriptions.Where(folderID => folderID.AccountGUID == accountObj.AccountGUID & folderID.SecondaryAccount != "").ToList().GroupBy(x => x.SecondaryAccount).Select(y => y.First()).ToList(); if (selectedButton == "auto") { ConnectionConfig cc = ewscode.AutoDiscoverConnectionDetails(model.Credentials.EmailAddress, model.Credentials.Password); //model.ExistingCredentials = CCCredentialRepository.Credentials.Where(aid => aid.AccountID == userObj.AccountID).ToList(); model.ExistingCredentials = CCCredentialRepository.Credentials.Where(aguid => aguid.AccountGUID == accountObj.AccountGUID).ToList(); model.ReturnUrl = "~/Folder/SelectFolder?src=" + "src" + "&primid=" + model.selectedFolderID; if (cc != null) { //save crediantal credentialID = SaveCredentials(model, selectedButton, hosted, cc.url, cc.version.ToString()); ViewBag.url = cc.url; ViewBag.msucess = "Connection Successful and Saved"; ViewBag.mfail = ""; ViewBag.tmessage = "sucess"; ViewBag.pass = Encryption.DecryptStringAES(model.Credentials.Password, rand); model.ServerVer = cc.version.ToString(); Session["secondaryAccount"] = model.SecondaryAccount; Session["accessType"] = model.AccessType; string accessTypes = Session["accessType"].ToString(); Session["NewCredentialObject"] = model; } else { ViewBag.url = ""; ViewBag.mfail = "Error: Auto-discover failed"; ViewBag.msucess = ""; ViewBag.tmessage = "fail"; ViewBag.pass = model.Credentials.Password; } model.CreatedCredentialID = credentialID; return View(model); } else if (selectedButton == "test") { string version = ewscode.StandardConnection(model.Credentials.EmailAddress, model.Credentials.Password, model.Credentials.URL); model.ExistingCredentials = CCCredentialRepository.Credentials.Where(aguid => aguid.AccountGUID == accountObj.AccountGUID).ToList(); model.ReturnUrl = "~/Folder/SelectFolder?src=" + "src" + "&primid=" + model.selectedFolderID; if (version != "" && version != "404" && version != "401" && version != "null") { //save crediantal credentialID = SaveCredentials(model, selectedButton, hosted, model.Credentials.URL, version.ToString()); ViewBag.url = model.Credentials.URL; ViewBag.pass = Encryption.DecryptStringAES(model.Credentials.Password, rand); ViewBag.msucess = "Connection Successful and Saved"; ViewBag.mfail = ""; ViewBag.tmessage = "sucess"; model.ServerVer = version.ToString(); } else { ViewBag.url = ""; if (version == "") { ViewBag.mfail = "Connection Fail"; } else if (version == "404") { ViewBag.mfail = "Error: The URL was not found. Please check the URL."; } else if (version == "401") { ViewBag.mfail = "Error: Server returned 'Unauthorized'. Please check the username and password"; } else if (version == "null") { ViewBag.mfail = "Error: URL cannot be null. Please enter the URL."; } else { ViewBag.mfail = "Connection Fail"; } ViewBag.msucess = ""; ViewBag.tmessage = "fail"; } model.CreatedCredentialID = credentialID; return View(model); } else if (selectedButton == "autoInhouse") { ConnectionConfig cc = ewscode.AutoDiscoverConnectionDetails(model.EmailAddressIn, model.Password); model.ExistingCredentials = CCCredentialRepository.Credentials.Where(aguid => aguid.AccountGUID == accountObj.AccountGUID).ToList(); model.ReturnUrl = "~/Folder/SelectFolder?src=" + "src" + "&primid=" + model.selectedFolderID; if (cc != null) { //save crediantal credentialID = SaveCredentials(model, selectedButton, hosted, cc.url, cc.version.ToString()); ViewBag.urlin = cc.url; ViewBag.msucessin = "Connection Successful and Saved"; ViewBag.mfailin = ""; ViewBag.tmessagein = ""; ViewBag.passin = model.Password; model.ServerVersionInhouse = cc.version.ToString(); Session["secondaryAccount"] = model.SecondaryAccountIn; Session["accessType"] = model.AccessTypeIn; } else { ViewBag.urlin = ""; ViewBag.mfailin = "Error: Auto-discover failed"; ViewBag.msucessin = ""; ViewBag.tmessagein = ""; ViewBag.passin = model.Password; } model.CreatedCredentialIDIn = credentialID; return View(model); } else if (selectedButton == "testInhouse") { model.ExistingCredentials = CCCredentialRepository.Credentials.Where(aguid => aguid.AccountGUID == accountObj.AccountGUID).ToList(); string version = ewscode.StandardConnectionToInHouseExchanges(model.UserName, model.Password, model.URL, model.Domain); model.ReturnUrlInhouse = "~/Folder/SelectFolder?src=" + "src" + "&primid=" + model.selectedFolderIDInhouse; if (version != "" && version != "404" && version != "401" && version != "null") { //save crediantal credentialID = SaveCredentials(model, selectedButton, hosted, model.URL, version.ToString()); ViewBag.urlin = model.URL; ViewBag.passin = model.Password; ViewBag.msucessin = "Connection Successful and Saved"; ViewBag.mfailin = ""; ViewBag.tmessagein = "sucess"; model.ServerVersionInhouse = version.ToString(); } else { ViewBag.urlin = ""; if (version == "") { ViewBag.mfailin = "Connection Fail"; } else if (version == "404") { ViewBag.mfailin = "Error: The URL was not found. Please check the URL."; } else if (version == "401") { ViewBag.mfailin = "Error: Server returned 'Unauthorized'. Please check the username and password"; } else if (version == "null") { ViewBag.mfailin = "Error: URL cannot be null. Please enter the URL."; } else { ViewBag.mfailin = "Connection Fail"; } ViewBag.msucessin = ""; ViewBag.tmessagein = "fail"; } model.CreatedCredentialIDIn = credentialID; return View(model); } else if (selectedButton == "setUpConnection") { Session["NewCredential"] = "Yes"; return RedirectToAction("setUpNewConnection", "Folder"); } else { Session["NewCredential"] = "Yes"; return RedirectToAction("ManageCredentials", "Folder"); } }