Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
 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();
 }
Ejemplo n.º 3
0
        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"));
        }
Ejemplo n.º 4
0
 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();
 }
Ejemplo n.º 5
0
        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));
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
        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();
                }
            }
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        //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")));
        }
Ejemplo n.º 10
0
        //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")));
        }