private void SaveButton_Click(object sender, EventArgs e) { //TODO add validation var newUserData = new AbsenceTrackerLibrary.Models.PersonModel { Id = AbsenceTracker.CurrentUser.Id, Username = UsernameTextBox.Text, FirstName = FirstNameTextBox.Text, LastName = LastNameTextBox.Text, MiddleName = MiddleNameTextBox.Text, Patronymic = PatronymicTextBox.Text, Email = EmailTextBox.Text, FullNameForDocuments = FullnameForDocumentsTextBox.Text, StartedAt = StartedAtDateTimePicker.Value }; try { AbsenceTracker.SaveUser(newUserData); } catch (System.Data.ConstraintException exception) { MessageBox.Show(exception.Message); return; } Close(); }
private void LoginButton_Click(object sender, EventArgs e) { if (!AbsenceTracker.Login(UsernameTextBox.Text, PasswordTextBox.Text)) { MessageBox.Show("User not found"); } AbsencesBindingList = new BindingList <AbsenceModel>(AbsenceTracker.CurrentUser.Absences); AbsencesDataGridView.DataSource = AbsencesBindingList;; RefreshForm(); }
public IActionResult PersonalData(PersonModel person) { var personDB = AbsenceTracker.GetPerson(User.Id()); personDB.FirstName = person.FirstName; personDB.LastName = person.LastName; AbsenceTracker.SaveUserData(personDB); return(RedirectToAction("PersonalData")); }
private void SaveButton_Click(object sender, EventArgs e) { if (!ValidateForm()) { return; } CurrentAbsence.AbsenceType = (AbsenceTypeModel)AbsenceTypeComboBox.SelectedItem; CurrentAbsence.EffectiveFrom = EffectiveFromDateTimePicker.Value; CurrentAbsence.ExpiresOn = ExpiresOnDateTimePicker.Value; CurrentAbsence.DaysWorkedOnHolidays = int.Parse(DaysWorkedOnHolidaysTextBox.Text); AbsenceTracker.SaveAbsence(CurrentAbsence); Close(); }
public IActionResult PersonalData() { ViewData["Message"] = "Personal Data"; var personDB = AbsenceTracker.GetPerson(User.Id()); var person = new PersonModel { EmailAddress = User.Name(), FirstName = personDB?.FirstName, LastName = personDB?.LastName }; return(View(person)); }
public IActionResult Absences() { var personDB = AbsenceTracker.GetPerson(User.Id()); var absencesDB = AbsenceTracker.GetAbsences(personDB.Id); var absences = absencesDB.Select(_ => new AbsenceModel() { AbsenceType = _.AbsenceType.ToString(), EffectiveFrom = _.EffectiveFrom, WorkDaysTotal = _.WorkDaysTotal, IsSingleDay = _.IsSingleWorkDay, WorkHoursTotal = _.WorkHoursTotal }).ToList(); return(View(absences)); }
private void AbsencesDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e) { var absencesGrid = (DataGridView)sender; var column = absencesGrid.Columns[e.ColumnIndex]; var rowIndex = e.RowIndex; if (column is DataGridViewButtonColumn && rowIndex >= 0) { if (column.Name == RemoveButtonColumn.Name) { AbsenceTracker.RemoveAbsence(AbsencesBindingList[rowIndex]); RefreshForm(); } else if (column.Name == DetailsButtonColumn.Name) { new AbsenceDetails(this, AbsencesBindingList[rowIndex]).Show(); } } }
private bool ValidateForm() { var isValid = true; var errorMessage = new StringBuilder("Ivalid values on form:"); if (AbsenceTypeComboBox.SelectedItem is null) { errorMessage.Append("\nAbsence Type must be populated\n"); isValid = false; } if (!int.TryParse(DaysWorkedOnHolidaysTextBox.Text, out var number)) { errorMessage.Append("\nDays worked on holidays must be a number"); isValid = false; } if (!AbsenceTracker.ValidateAbsenceForDublicateDatePeriod( EffectiveFromDateTimePicker.Value, ExpiresOnDateTimePicker.Value, CurrentAbsence.Id)) { errorMessage.Append("\nEffective and expiration dates must be unique in the absence list"); isValid = false; } if (EffectiveFromDateTimePicker.Text is null || ExpiresOnDateTimePicker.Text is null) { errorMessage.Append("\nEffective and expiration dates must be populated"); isValid = false; } if (ExpiresOnDateTimePicker.Value.Date < EffectiveFromDateTimePicker.Value.Date) { errorMessage.Append("Effective date must be less or equal to the expiration date\n"); isValid = false; } if (!isValid) { MessageBox.Show(errorMessage.ToString(), "Error"); } return(isValid); }
//TODO evaluate if it's needed protected override string SelectStarTop1(string table) => $"select top 1 * from {table}"; protected override IDbConnection ConnectionFactory() { return(new SqlConnection(AbsenceTracker.GetConnectionString("MSSQLServerConnectionString"))); }
//TODO evaluate if it's needed protected override string SelectStarTop1(string table) => $"select * from {table} fetch first 1 rows only"; protected override IDbConnection ConnectionFactory() { return(new NpgsqlConnection(AbsenceTracker.GetConnectionString("PostgreSQLHerokuConnectionString"))); }