protected void uxSave_Click(object sender, EventArgs e) { var guid = Guid.Empty.ToString(); if (!string.IsNullOrEmpty(Request.QueryString["guid"])) { guid = Request.QueryString["guid"].ToString(); } ResetPasswordTicket ResetTicket = new ResetPasswordTicket(guid); string password = string.Empty; // TODO: Add validation that passwords match if (uxPassword.Text == uxPasswordConfirm.Text && !string.IsNullOrEmpty(uxPasswordConfirm.Text)) { ResetTicket.CompleteTicket(Request.UserHostAddress); password = uxPassword.Text; ResetYourPasswordItem context = (ResetYourPasswordItem)Sitecore.Context.Item; var membershipManager = new MembershipManager(); var reset = membershipManager.ResetPassword(Guid.Parse(ResetTicket.UserID), password); uxMessage.Text = context.PasswordUpdatedText; var member = membershipManager.GetMember(Guid.Parse(ResetTicket.UserID)); var user = membershipManager.GetUser(Guid.Parse(ResetTicket.UserID), false); ExactTargetService.InvokeEM23PasswordResetConfirmation(new InvokeEM23PasswordResetConfirmationRequest { PreferredLanguage = member.PreferredLanguage, EmailAddress = user.Email, ReportChangedPasswordLink = "#", ToEmail = user.Email, UserPassword = "******", RequestUrl = Request.Url }); } }
void btnSubmit_Click(object sender, EventArgs e) { pnlResults.Update(); MembershipManager mm = new MembershipManager(); if (!string.IsNullOrEmpty(txtEmail.Text)) { var member = mm.GetMember(txtEmail.Text); if (member != null) { bool hasChildren = member.Children.Any(); pnlChildren.Visible = hasChildren; if (hasChildren) { ddlChildren.DataSource = member.Children; ddlChildren.DataTextField = "Nickname"; ddlChildren.DataValueField = "ChildId"; ddlChildren.DataBind(); } if (member.Interests.Any()) { rptInterests.DataSource = member.Interests; rptInterests.DataBind(); } } } }
protected void Page_Load(object sender, EventArgs e) { //var un = string.Empty; if (!string.IsNullOrEmpty(Request.QueryString["un"])) { un = Request.QueryString["un"]; } else { un = "*****@*****.**"; } ////litRoles.Text = MembershipManager.isOpenToConnect(un).ToString(); var membershipManager = new MembershipManager(); //var sb = new StringBuilder(); //var output = @"Method: {0}:{1}</br>"; var member = membershipManager.GetMember(un); //var memberId = member.MemberId; //sb.Append(string.Format(output, "membershipManager.GetMemberByScreenName(un).Email", membershipManager.GetMemberByScreenName(un).Email)); //sb.Append(string.Format(output, "membershipManager.GetMember(memberId).Email", membershipManager.GetMember(memberId).Email)); //sb.Append(string.Format(output, "membershipManager.GetMember('[email protected]').Email", membershipManager.GetMember("[email protected]").Email)); ////sb.Append(string.Format(output, "membershipManager.GetMember('[email protected]').Email", membershipManager.GetMembers().FirstOrDefault(x => x.Email == "[email protected]").Email)); //sb.Append(string.Format(output, "membershipManager.GetMembers().FirstOrDefault(x => x.MemberId == memberId).Email", membershipManager.GetMembers().FirstOrDefault(x => x.MemberId == memberId).Email)); //sb.Append(string.Format(output, "membershipManager.GetUser(memberId).Email", membershipManager.GetUser(memberId).Email)); //litRoles.Text = sb.ToString(); litEmail.Text = member.Email; }
private void UpdateMember(Guid memberId) { Member member = null; try { member = _membershipManager.GetMember(memberId); } catch { } if (member == null) { return; } UpdateMember(member); }
public void Should_Return_Null_When_No_Member_Is_Present() { // Act var member = _membershipManager.GetMember(1); // Assert Assert.Null(member); }
protected void btnGo_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(txtEmail.Text)) { var membershipManager = new MembershipManager(); var member = membershipManager.GetMember(un); var success = membershipManager.UpdateEmail(member, txtEmail.Text); Response.Write(success.ToString()); } }
protected void btnSubmit_Click(object sender, EventArgs e) { var email = txtEmailAddress.Text; try { //always show success message, even if we don't send the email //add ASP.Net validation MembershipManager membershipManager = new MembershipManager(); Member member; member = membershipManager.GetMember(email); if (member != null) { var passwordReset = Sitecore.Context.Database.GetItem(Constants.TemplateIDs.ForgotPasswordPage); var link = string.Format(Request.Url.Host + "{0}?guid={1}", passwordReset.GetUrl(), new ResetPasswordTicket(member.MemberId).ResetTicketID); BaseReply reply = ExactTargetService.InvokeEM22ForgotPassword(new InvokeEM22ForgotPasswordRequest { PreferredLanguage = member.PreferredLanguage, PasswordResetLink = link, ToEmail = email, RequestUrl = Request.Url }); if (reply.Successful) { } else { litErrorMessage.Text = context.ProblemText; throw new Exception("Issue sending email to: " + email); } } else { throw new Exception("User does not exist: " + email); } } catch (Exception ex) { Sitecore.Diagnostics.Log.Error("Forgot password error", ex, this); //uxView.ActiveViewIndex = 0; //litErrorMessage.Visible = true; //litErrorMessage.Text = DictionaryConstants.EmailException; } if (string.IsNullOrEmpty(litErrorMessage.Text)) { uxView.ActiveViewIndex = 1; litSuccessStory.Text = Model.SuccessMessage.Rendered.Replace("$email$", Server.HtmlEncode(email)); } }
private static int PercentProfileComplete(Guid MemberId) { int profileCompleteness = 0; MembershipManager mmgr = new MembershipManager(); mmgr.GetMember(MemberId); Member m = mmgr.GetMember(MemberId); /* * * Show 0%, if the user has only given us their email. * Show 25%, if the user has entered at least one child. * Show 50%, if the user has a community name. * Show 75%, if the user has entered at least one parent interest. * Show 100%, if the user has completed their full profile. * */ //just so something is here until we get the rules nailed down //I'm making these rules cumulative, as a score, so we don't //end up with someone who has nothing but a parental interest come back at 75% if (m.Children.Count > 0) { profileCompleteness += 25; } if (!string.IsNullOrEmpty(m.ScreenName)) { profileCompleteness += 25; } if (m.Interests.Count > 0) { profileCompleteness += 25; } //not sure what next to add in. What means "complete"? //- maybe if their score is 75, then check to see if they have also updated IEP/504 status questions? return(profileCompleteness); }
private void doLogin() { //blow out any existing member when someone tries to sign in try { //Reset session backed my groups from Whats Happening Now Session["_selectedGroups"] = null; //lets make sure to reset all user&member info before we start inflating it this.FlushCurrentMemberUser(); var membershipManager = new MembershipManager(); var currentMember = new Member(); if (!string.IsNullOrEmpty(AccessToken)) { var client = new Facebook.FacebookClient(AccessToken); dynamic me = client.Get("me", new { fields = "email" }); currentMember = membershipManager.GetMember(me.email); } else { currentMember = membershipManager.AuthenticateUser(uxEmailAddress.Text, uxPassword.Text); } if (currentMember != null) { this.CurrentMember = currentMember; this.CurrentUser = membershipManager.GetUser(currentMember.MemberId, true); this.ProfileRedirect(Constants.UserPermission.AgreedToTerms, null, true); //Redirect used here for profile?? this.ReturnRedirect(); var item = Sitecore.Context.Database.GetItem(Constants.Pages.MyAccount); // if you get this far, clear the redirect session URL Response.Redirect(Sitecore.Links.LinkManager.GetItemUrl(item)); } } catch (Exception ex) { uxError.Text = ex.Message; } }
private void ProcessEmail() { // TODO: validate email string email = txtEmail.Text.Trim(); MembershipManager mm = new MembershipManager(); MembershipUser subscriber = mm.GetUser(email); if (subscriber != null && subscriber.Comment != Constants.UnauthenticatedMember_Flag) { litErrorMessage.Text = Model.UnauthenticatedMemberError.Rendered; } else { // temporarily skip personalized questions if (subscriber == null) { Member member = new Member { Email = email, allowNewsletter = true }; mm.AddUnauthorizedMember(member); mm.UpdateMember_ExtendedProperties(member); } else { Member member = mm.GetMember(email); member.allowNewsletter = true; mm.UpdateMember(member); } RedirectToConfirmation(); /* * Submission submission = new Submission * { * Email = email * }; * * Session[Constants.SessionNewsletterKey] = submission; * * var item = Sitecore.Context.Database.GetItem(Sitecore.Data.ID.Parse(Constants.Pages.NewsletterChildInfo.ToString())); * Response.Redirect(item.GetUrl());*/ } }
public static void Main(string[] args) { Console.Title = "YMCA Child Watch Manager"; bool end = false; YMCADataGenerator gen = new YMCADataGenerator(); SqlConnection connection = new SqlConnection(connection_string); MembershipManager membership = new MembershipManager(connection); SignInManager signIn = new SignInManager(connection); while (!end) { Console.Write("YMCA> "); string[] options = Console.ReadLine().Split(' '); try { switch (options[0].ToUpper()) { // Options on members case "MEMBER": switch (options[1]) { case "/s": Member newMember = new Member() { MemberId = options[2], FirstName = options[3], LastName = options[4], Barcode = options[5], Pin = options[6], PhoneNumber = options[7], IsActive = options.Length <= 8 ? true : (options[8] == "0" ? false : true) }; bool res = membership.SaveMember(newMember); Console.WriteLine(String.Format("Member save {0}", res ? "successful" : "failed")); break; case "/g": Member found = null; switch (options.Length) { case 3: found = membership.GetMember(options[2]); break; case 4: found = membership.GetMember(options[2], options[3]); break; } if (found != null) { Console.WriteLine("Member Information:"); Console.WriteLine(found.ToString()); } else { Console.WriteLine("Unable to find member information"); } break; } break; // Options on children case "CHILD": switch (options[1]) { case "/a": // Attach child to member bool attached = membership.AttachChild(options[2], int.Parse(options[3])); Console.WriteLine("Child Attached: " + (attached ? "Completed" : "Failed")); break; case "/d": // Detach child from member bool detached = membership.DetachChild(options[2], int.Parse(options[3])); Console.WriteLine("Child Detached: " + (detached ? "Completed" : "Failed")); break; case "/u": // Update child bool updated = membership.UpdateChild(new Child() { Id = int.Parse(options[2]), FirstName = options[3], LastName = options[4], BirthDate = DateTime.Parse(options[5]) }); Console.WriteLine("Child Updated: " + (updated ? "Completed" : "Failed")); break; case "/i": // Insert Child int id = membership.InsertChild(new Child() { FirstName = options[2], LastName = options[3], BirthDate = DateTime.Parse(options[4]), }, options[5]); if (id >= 1) { Console.WriteLine("Child added with id = " + id.ToString()); } else { Console.WriteLine("Child Insert: Failed"); } break; case "/g": // Get Child Child c = membership.GetChild(int.Parse(options[2])); if (c == null) { Console.WriteLine("Child not found"); } else { Console.WriteLine("Child Information:\n" + c.ToString()); } break; } break; case "CREATEMEMBERS": Console.WriteLine("Member Count: "); int x = int.Parse(Console.ReadLine()); Console.WriteLine("Child Count: "); int y = int.Parse(Console.ReadLine()); Random r = new Random(); int registered = 0; while (x != 0) { try { Child[] child = new Child[0]; Member m = gen.RandomMember(); x--; if (y > 0) { int count = Math.Min(r.Next(6), y); child = new Child[count]; for (int i = 0; i < count; i++) { child[i] = gen.RandomChild(m.LastName); } y = y - count; } Family family = new Family() { Guardian = m, Children = child }; if (membership.RegisterFamily(family)) { registered++; } } catch { } } Console.WriteLine("Registered " + registered + " members and their children"); break; case "CREATESIGNIN": Random random = new Random(); DateTime start = new DateTime(2018, 4, 6, 9, 0, 0); DateTime stop = new DateTime(2018, 4, 6, 21, 0, 0); TimeSpan interval = stop - start; int timefromstart = random.Next((int)interval.TotalMinutes); DateTime signinTime = start.AddMinutes(timefromstart); interval = stop - signinTime; DateTime signoutTime = signinTime.AddMinutes(random.Next((int)interval.TotalMinutes)); Console.WriteLine(signinTime); Console.WriteLine(signoutTime); Family fam = gen.RandomFamily(); Console.WriteLine(fam.Guardian); break; case "CLEAR": Console.Clear(); break; case "EXIT": end = true; break; } } catch (Exception ex) { Console.WriteLine("Error Occurred"); Console.WriteLine(ex.Message); Console.WriteLine("\n" + ex.StackTrace); } } }
private void Page_Load(object sender, EventArgs e) { if (this.CurrentMember == null && this.CurrentUser == null) { if (!string.IsNullOrEmpty(CurrentPage.SignInPage.Url)) { Response.Redirect(CurrentPage.SignInPage.Url); } else { Response.Redirect("/"); } } if (!IsPostBack) { //update member MembershipManager membershipManager = new MembershipManager(); this.CurrentMember = membershipManager.GetMember(this.CurrentMember.MemberId); this.CurrentUser = membershipManager.GetUser(this.CurrentMember.MemberId, true); MyProfileItem context = (MyProfileItem)Sitecore.Context.Item; HyperLink myHL = (HyperLink)this.FindControl("uxAddChild"); myHL.Text = context.AddChildText; SetLabels(); SetRole(); uxChildList.DataSource = this.CurrentMember.Children; uxChildList.DataBind(); //disable new children if you already have 6 or more if (this.CurrentMember.Children.Count >= 6) { uxAddChild.Visible = false; } SetInterests(); uxEmailAddress.Text = txtEmail.Text = this.CurrentUser.UserName; SetJourney(); uxPassword.Text = replacePassword("digitalpulp!"); string phoneNumber = string.Empty; if (!string.IsNullOrEmpty(this.CurrentMember.MobilePhoneNumber)) { phoneNumber = this.CurrentMember.MobilePhoneNumber.Replace("-", string.Empty).Trim(); //if (phoneNumber.Length == 10 && !phoneNumber.Contains("-")) //{ phoneNumber = phoneNumber.Insert(3, "-"); phoneNumber = phoneNumber.Insert(7, "-"); //} } else { //10 points to Gryffindor if you know where this phone number comes from txtPhoneNumber.Attributes["placeholder"] = "212-555-2368"; } uxPhoneNumber.Text = phoneNumber; txtPhoneNumber.Text = phoneNumber; uxPrivacyLevel.Text = this.CurrentMember.allowConnections ? DictionaryConstants.OpenToConnect : DictionaryConstants.NotOpenToConnect; uxScreenname.Text = this.CurrentMember.ScreenName; uxZipcode.Text = this.CurrentMember.ZipCode.Trim(); uxAddChild.Text = string.Format(uxAddChild.Text, ((ChildCount)this.CurrentMember.Children.Count).ToString()); uxAddChild.NavigateUrl = MyProfileStepTwoItem.GetCompleteMyProfileStepTwo().GetUrl() + "?" + Constants.QueryStrings.Registration.Mode + "=" + Constants.QueryStrings.Registration.ModeAdd; if (Session["PostReloadScript"] != null) { string reloadScript = Session["PostReloadScript"].ToString(); if (reloadScript != "") { ltlJS.Text = string.Format("<script type=\"text/javascript\">{0}</script>", reloadScript); Session["PostReloadScript"] = null; } } //top of edit interests hypEditCommunityAboutMe.NavigateUrl = String.Format(MyProfileStepFourItem.GetCompleteMyProfileStepFour().GetUrl() + "?{0}={1}", Constants.QueryStrings.Registration.Mode, Constants.QueryStrings.Registration.ModeEdit); //jump to edit community hypEditCommunity.NavigateUrl = hypCompleteYourProfile.NavigateUrl = String.Format(MyProfileStepFourItem.GetCompleteMyProfileStepFour().GetUrl() + "?{0}={1}#community", Constants.QueryStrings.Registration.Mode, Constants.QueryStrings.Registration.ModeEdit); if (!string.IsNullOrEmpty(this.CurrentMember.ScreenName)) { hypViewAsVisitors.NavigateUrl = MembershipHelper.GetPublicProfileAsVisitorUrl(CurrentMember.ScreenName); hypViewAsMembers.NavigateUrl = MembershipHelper.GetPublicProfileAsMemberUrl(CurrentMember.ScreenName); hypViewAsFriends.NavigateUrl = MembershipHelper.GetPublicProfileUrl(CurrentMember.ScreenName); } else { uxNoProfile.Visible = true; uxPublicView.Visible = false; } } }
protected void lbSaveEmailPassword_Click(object sender, EventArgs e) { var action = false; try { if (!string.IsNullOrEmpty(this.txtEmail.Text)) { if (Regex.IsMatch(this.txtEmail.Text, Constants.Validators.Email)) { //matched regex if (this.UpdateEmail()) { action = true; var membershipManager = new MembershipManager(); this.CurrentMember = membershipManager.GetMember(this.CurrentMember.MemberId); this.CurrentUser = membershipManager.GetUser(this.CurrentMember.MemberId, true); } else { throw new Exception(DictionaryConstants.SomethingFailedError); } } else { //did not match regex and not empty throw new Exception(DictionaryConstants.PasswordErrorMessage); } } } catch (Exception ex) { litEmailPasswordError.Text += ex.Message; } try { if (!string.IsNullOrEmpty(this.txtOldPassword.Text) && !string.IsNullOrEmpty(this.txtNewPassword.Text) && !string.IsNullOrEmpty(this.txtConfirmNewPassword.Text)) { if (this.txtNewPassword.Text == this.txtConfirmNewPassword.Text && Regex.IsMatch(this.txtNewPassword.Text, Constants.Validators.Password) && Regex.IsMatch(this.txtOldPassword.Text, Constants.Validators.Password)) { if (this.UpdatePassword()) { action = true; } else { throw new Exception(DictionaryConstants.SomethingFailedError); } } else { //new passwords don't match throw new Exception(DictionaryConstants.PasswordMatchError); } } } catch (Exception ex) { litEmailPasswordError.Text += ex.Message; } if (action) { Response.Redirect(Request.RawUrl, true); } }
public static void Main(string[] args) { Console.Title = "YMCA Child Watch Manager"; DateTime now = DateTime.Now; DateTime start = new DateTime(now.Year, now.Month, now.Day, 9, 0, 0); DateTime stop = new DateTime(now.Year, now.Month, now.Day, 22, 0, 0); bool end = false; YMCADataGenerator gen = new YMCADataGenerator(); SqlConnection connection = new SqlConnection(connection_string); MembershipManager membership = new MembershipManager(connection); SignInManager signIn = new SignInManager(connection); ReportManager reports = new ReportManager(connection); OrganizationManager organization = new OrganizationManager(connection); while (!end) { Console.Write("YMCA> "); string[] options = Console.ReadLine().Split(' '); try { switch (options[0].ToUpper()) { case "LOG": switch (options[1]) { case "/m": try { throw new Exception("Test Exception"); } catch (Exception ex) { log.Write(ex, "YMCAHelpUtility"); } break; } break; // Options on members case "MEMBER": switch (options[1]) { case "/s": Member newMember = new Member() { MemberId = options[2], FirstName = options[3], LastName = options[4], Barcode = options[5], Pin = options[6], PhoneNumber = options[7], IsActive = options.Length <= 8 ? true : (options[8] == "0" ? false : true) }; bool res = membership.SaveMember(newMember); Console.WriteLine(String.Format("Member save {0}", res ? "successful" : "failed")); break; case "/g": Member found = null; switch (options.Length) { case 3: found = membership.GetMember(options[2]); break; case 4: found = membership.GetMember(options[2], options[3]); break; } if (found != null) { Console.WriteLine("Member Information:"); Console.WriteLine(found.ToString()); } else { Console.WriteLine("Unable to find member information"); } break; } break; // Options on children case "CHILD": switch (options[1]) { case "/a": // Attach child to member bool attached = membership.AttachChild(options[2], int.Parse(options[3])); Console.WriteLine("Child Attached: " + (attached ? "Completed" : "Failed")); break; case "/d": // Detach child from member bool detached = membership.DetachChild(options[2], int.Parse(options[3])); Console.WriteLine("Child Detached: " + (detached ? "Completed" : "Failed")); break; case "/u": // Update child bool updated = membership.UpdateChild(new Child() { Id = int.Parse(options[2]), FirstName = options[3], LastName = options[4], BirthDate = DateTime.Parse(options[5]) }); Console.WriteLine("Child Updated: " + (updated ? "Completed" : "Failed")); break; case "/i": // Insert Child int id = membership.InsertChild(new Child() { FirstName = options[2], LastName = options[3], BirthDate = DateTime.Parse(options[4]), }, options[5]); if (id >= 1) { Console.WriteLine("Child added with id = " + id.ToString()); } else { Console.WriteLine("Child Insert: Failed"); } break; case "/g": // Get Child Child c = membership.GetChild(int.Parse(options[2])); if (c == null) { Console.WriteLine("Child not found"); } else { Console.WriteLine("Child Information:\n" + c.ToString()); } break; } break; case "CREATEMEMBERS": Console.WriteLine("Member Count: "); int x = int.Parse(Console.ReadLine()); Console.WriteLine("Child Count: "); int y = int.Parse(Console.ReadLine()); Random r = new Random(); int registered = 0; while (x != 0) { try { List <Child> child = new List <Child>(); Member m = gen.RandomMember(); x--; if (y > 0) { int childs = Math.Min(r.Next(6), y); for (int i = 0; i < childs; i++) { child.Add(gen.RandomChild(m.LastName)); } y = y - childs; } Family family = new Family() { Guardian = m, Children = child }; if (membership.RegisterFamily(family)) { registered++; } } catch (Exception ex) { Console.WriteLine(ex.Message); } } Console.WriteLine("Registered " + registered + " members and their children"); break; case "REPORT": switch (options[1]) { case "/m": var member_report = reports.GetMemberReport(true); Console.WriteLine(member_report.Rows.Count); break; case "/i": var interval_report = reports.GetIntervalReport(60, start, stop, 1); if (interval_report.Rows.Count > 0) { Console.WriteLine("REPORT DATA\n================================================="); } foreach (DataRow i in interval_report.Rows) { DateTime time = (DateTime)i["time"]; Console.WriteLine((time.ToShortTimeString() + " " + time.AddMinutes((int)i["interval"]).ToShortTimeString() + " " + ((int)i["count"]).ToString())); } if (interval_report.Rows.Count > 0) { Console.WriteLine("============================================================\nEND DATA"); } break; } break; case "CREATESIGNIN": Console.WriteLine("Enter number of families"); int families = int.Parse(Console.ReadLine()); int written = 0; Signin[] signins = new Signin[families]; for (int z = 0; z < families; z++) { try { Random random = new Random(); Family fam = gen.RandomFamily(reports); Location[] list = organization.GetLocations(); int count = 0; try { count = random.Next(1, fam.Children.Count - 1); } catch { count = 1; }; List <Assignment> assignments = new List <Assignment>(); for (int i = 0; i < count; i++) { Child c = fam.Children[random.Next(fam.Children.Count)]; Assignment assignment = new Assignment() { Child = c.Id, Location = list[random.Next(list.Length)].Id }; assignments.Add(assignment); } Signin current = signIn.SignIn(fam.Guardian.MemberId, assignments.ToArray()); signins[written] = current; if (current.Band > 0 && !signIn.SignOut(current.Band)) { throw new Exception("Failed sign out or sign in for member " + fam.Guardian.MemberId); } written++; Console.WriteLine(written + ")" + fam.Guardian.MemberId); } catch (Exception ex) { File.AppendAllText("ErrorReport.txt", ex.ToString()); } } Console.WriteLine("Families written: " + written); using (SqlConnection connect = new SqlConnection(connection_string)) { connect.Open(); Random rnd = new Random(); int failed = 0; for (int i = 0; i < signins.Length; i++) { try { if (signins[i] != null) { DateTime signinTime = gen.RandomTimeBetween(start, stop); DateTime signoutTime = gen.RandomTimeBetween(signinTime, stop); using (SqlCommand command = new SqlCommand("p_signin_modify", connect)) { command.CommandType = System.Data.CommandType.StoredProcedure; command.Parameters.AddWithValue("@out", signoutTime); command.Parameters.AddWithValue("@in", signinTime); command.Parameters.AddWithValue("@id", signins[i].Id); command.ExecuteNonQuery(); } } } catch (Exception ex) { failed++; Console.WriteLine("Exception: " + ex.Message); } } Console.WriteLine("Failed Update Count: " + failed); connect.Close(); } break; case "CLEAR": Console.Clear(); break; case "EXIT": end = true; break; } } catch (Exception ex) { Console.WriteLine("Error Occurred"); Console.WriteLine(ex.Message); Console.WriteLine("\n" + ex.StackTrace); } } }