База даних "Телефонний довідник"

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

blic UserForm(bool newUser, bool changeUser, bool changeInfo)

{

InitializeComponent();

/////////////////////

this.NewUser = newUser;

this.ChangeInfo = changeInfo;

this.ChangeUser = changeUser;

if (NewUser)

{

this.Text = "Додати нового користувача";

labelPass1.Text = "Пароль:";

labelPass2.Text = "Підтвердити пароль:";

checkBoxForgetPass.Enabled = false;

}

else if (ChangeUser)

{

this.Text = "Обрати користувача";

labelPass1.Text = "Пароль:";

labelPass2.Text = "Новий пароль:";

labelPass2.Enabled = textBoxPassword2.Enabled = false;

labelEmail.Enabled = textBoxEmail.Enabled = false;

}

else if (ChangeInfo)

{

this.Text = "Змінити інформацію користувача";

labelPass1.Text = "Старий пароль:";

labelPass2.Text = "Новий пароль:";

}

}

private void buttonSubmit_Click(object sender, EventArgs e)

{

try

{

errorProvider1.Clear();

#region Forgets the password

if (checkBoxForgetPass.Enabled && checkBoxForgetPass.Checked)

{

if (textBoxUsername.Text.Trim() == "")

{

errorProvider1.SetError(this.textBoxUsername, "Будь-ласка, введіть імя користувача");

textBoxUsername.Focus();

return;

}

errorProvider1.Clear();

q.Attribute("UserName").Value.ToLower()==textBoxUsername.Text.Trim().ToLower());">var user = Variables.xDocument.Descendants("User").Where(q => q.Attribute("UserName").Value.ToLower() == textBoxUsername.Text.Trim().ToLower());

if (user.Count() < 1)

{

errorProvider1.SetError(this.textBoxUsername, "Таке імя користувача відсутнє у базі даних!!!!");

return;

}

string password = user.First().Attribute("Password").Value;

try

{

NetworkCredential loginInfo = new NetworkCredential("username", "password");

MailMessage msg = new MailMessage();

msg.From = new MailAddress("CyberkillerPS@gmail.ru");

msg.To.Add(new MailAddress(user.First().Attribute("Email").Value));

msg.Subject = "Phonebook Password";

msg.Body = "Yours Password = " + password;

msg.IsBodyHtml = true;

SmtpClient client = new SmtpClient("smtp.gmail.ru");

client.EnableSsl = true;

client.UseDefaultCredentials = false;

client.Credentials = loginInfo;

client.Send(msg);

MessageBox.Show("Ваш пароль був відісланий вам на email", "Відправка пароля", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "Помилка", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

return;

}

#endregion

#region add new user

else if (this.NewUser)

{

if (textBoxUsername.Text.Trim() == "" && textBoxUsername.Enabled)

{

errorProvider1.SetError(this.textBoxUsername, "Будь-ласка, введіть імя користувача");

return;

}

else if (textBoxPassword1.Text.Trim() == "" && textBoxPassword1.Enabled)

{

errorProvider1.SetError(this.textBoxPassword1, "Будь-ласка, введіть пароль");

return;

}

else if (textBoxPassword2.Text.Trim() == "" && textBoxPassword2.Enabled)

{

errorProvider1.SetError(this.textBoxPassword2, "Будь-ласка, введіть підтвердження пароля");

return;

}

else if (textBoxPassword2.Text.Trim()!= textBoxPassword1.Text.Trim())

{

errorProvider1.SetError(this.textBoxPassword1, "Ваші паролі повинні співпадати");

errorProvider1.SetError(this.textBoxPassword2, "Ваші паролі повинні співпадати");

return;

}

else if (textBoxEmail.Text.Trim() == "" && textBoxEmail.Enabled)

{

errorProvider1.SetError(this.textBoxEmail, "Будь-ласка, введіть правельний Email");

return;

}

if (!File.Exists(Variables.DBFile))

{

Variables.xDocument = new XDocument(

new XComment("\n Dont edit manually \n"),

new XElement("PhoneBook",

new XElement("Users",

new XElement("User",

new XAttribute("ID", "01"),

new XAttribute("UserName", textBoxUsername.Text.Trim()),

new XAttribute("Password", textBoxPassword1.Text.Trim()),

new XAttribute("Email", textBoxEmail.Text.Trim()),

new XAttribute("RegDate", DateTime.Now.ToString()))),

new XElement("Settings",

new XElement("Setting",

new XAttribute("UserID", "01"),

new XAttribute("RightToLeft", "NO"),

new XAttribute("Dates", "Persian"),

new XAttribute("FontSize", "10"))),

new XElement("Items")));

Variables.CurrentUserID = "01";

}

else

{

Variables.xDocument = XDocument.Parse(TripleDES.DecryptFromFile(Variables.DBFile, TripleDES.ByteKey, TripleDES.IV));

var SameUserQuery = from q in Variables.xDocument.Descendants("User")

where q.Attribute("UserName").Value.ToLower() == textBoxUsername.Text.Trim().ToLower()

select q;

=1)">if (SameUserQuery.Count() >= 1)

{

errorProvider1.SetError(this.textBoxUsername, "Таке імя користувача вже існує, Будь-ласка, оберіть інше");

return;

}

int maxID = 0;

try

{

maxID = (from q in Variables.xDocument.Descendants("User")

select (int)q.Attribute("ID")).Max();

}

catch { }

maxID++;

Variables.CurrentUserID = maxID.ToString();

XElement xElement = new XElement("User",

new XAttribute("ID", maxID),

new XAttribute("UserName", textBoxUsername.Text.Trim()),

new XAttribute("Password", textBoxPassword1.Text.Trim()),

new XAttribute("Email", textBoxEmail.Text.Trim()),

new XAttribute("RegDate", DateTime.Now.ToString()));

var usersElement = (from q in Variables.xDocument.Descendants("Users")

select q).First();

usersElement.Add(xElement);

xElement = new XElement("Setting",

new XAttribute("UserID", maxID),

new XAttribute("RightToLeft", "NO"),

new XAttribute("Dates", "Persian"),

new XAttribute("FontSize", "10"));

var settingsElement = (from q in Variables.xDocument.Descendants("Settings")

select q).First();

settingsElement.Add(xElement);

}

Variables.CurrentUserName = textBoxUsername.Text.Trim();

TripleDES.EncryptToFile(Variables.xDocument.ToString(SaveOptions.DisableFormatting), Variables.DBFile, TripleDES.ByteKey, TripleDES.IV);

//Variables.xDocument.Save("debug.xml");

}

#endregion

#region change user

else if (this.ChangeUser)

{

if (Variables.xDocument == null)

{

MessageBox.Show("Ваше імя користувача та пароль невірні", "Помилка", MessageBoxButtons.OK, MessageBoxIcon.Error);

return;

}

if (textBoxUsername.Text.Trim() == "")

{

errorProvider1.SetError(this.textBoxUsername, "Будь-ласка, введіть імя користувача");

return;

}

else if (textBoxPassword1.Text.Trim() == "" && textBoxPassword1.Enabled)

{

errorProvider1.SetError(this.textBoxPassword1, "Будь-ласка, введіть пароль");

return;

}

var query = from q in Variables.xDocument.Descendants("User")

where textBoxUsername.Text.Trim().ToLower() == q.Attribute("UserName").Value.ToLower()

&& textBoxPassword1.Text.Trim().ToLower() == q.Attribute("Password").Value.ToLower()

select q;

if (query.Count() == 1)

{

Variables.CurrentUserID = query.First().Attribute("ID").Value;

Variables.CurrentUserName = textBoxUsername.Text.Trim();

}

else

{

Variables.CurrentUserID = "";

Variables.CurrentUserName = ""