public void TestInitialize()
 {
     Reference = new DayOfWeekDismissCollection(new PersonIdentifier("012345677"), new DayOfWeekDismiss[] {
         new DayOfWeekDismiss(DayOfWeek.Monday, "Blargh"),
         new DayOfWeekDismiss(DayOfWeek.Thursday, "Dindu noffin.")
     });
 }
Beispiel #2
0
        public static string ProcessPerson(Person p, BusinessDay[] days, string delimiter)
        {
            TemporaryDismissCollection temporaryDismisses;
            if (!RepositoryManager.TryGet(p.Identifier, out temporaryDismisses))
                temporaryDismisses = new TemporaryDismissCollection(p.Identifier, Array.Empty<TemporaryDismiss>());

            DayOfWeekDismissCollection dayOfWeekDismisses;
            if (!RepositoryManager.TryGet(p.Identifier, out dayOfWeekDismisses))
                dayOfWeekDismisses = new DayOfWeekDismissCollection(p.Identifier, Array.Empty<DayOfWeekDismiss>());

            var builder = new StringBuilder(days.Length * 3);
            builder.Append(p.Identifier);
            builder.Append(delimiter);
            builder.Append(p.Name);
            builder.Append(delimiter);
            foreach (var day in days)
            {
                if (dayOfWeekDismisses.Any(dismiss => dismiss.GetDismissStatus(day.Identifier.Date).Dismissed) ||
                    temporaryDismisses.Any(dismiss => dismiss.GetDismissStatus(day.Identifier.Date).Dismissed))
                {
                    builder.Append(DismissedLetter);
                    builder.Append(delimiter);
                    continue;
                }
                else if (day.Contains(p.Identifier))
                {
                    builder.Append(AttendedLetter);
                    builder.Append(delimiter);
                    continue;
                }
                else
                {
                    builder.Append(UnattendedLetter);
                    builder.Append(delimiter);
                }
            }
            return builder.ToString();
        }
        private void editarDispensasDiaDaSemanaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var selected = PersonCollectionControl.GetSelectedItems().ToList();
            if (!selected.Any())
            {
                MessageBox.Show(this, "Nenhuma pessoa está selecionada.", "Woops", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (selected.Count > 1)
            {
                MessageBox.Show(this, "Mais que uma pessoa está selecionada.", "Woops", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            var person = selected.First();
            DayOfWeekDismissCollection dismisses;
            var foundDismisses = RepositoryManager.TryGet(person.Identifier, out dismisses);
            if (!foundDismisses)
                dismisses = new DayOfWeekDismissCollection(person.Identifier, Array.Empty<DayOfWeekDismiss>());

            using (var editor = new DayOfWeekDismissCollectionEditorForm(person.Name, dismisses))
            {
                var result = editor.ShowDialog();
                if (result != DialogResult.OK)
                    return;

                var newDismisses = editor.GetDismisses();
                var newDismissCollection = new DayOfWeekDismissCollection(person.Identifier, newDismisses);
                RepositoryManager.Save(newDismissCollection);
            }
        }
        public static void SaveDayOfWeekDismisses(PersonIdentifier id, IEnumerable<DayOfWeekDismiss> dismisses)
        {
            if (id == null)
                throw new ArgumentNullException(nameof(id));
            if (dismisses == null)
                throw new ArgumentNullException(nameof(dismisses));
            if (!GetPersonRepository().Contains(id))
                throw new ArgumentException("Identifier not found in PersonRepository.");

            var repository = GetDayOfWeekDismissRepository();
            var dismissCollection = new DayOfWeekDismissCollection(id, dismisses);
            repository.Save(dismissCollection);
            repository.FlushRepositoryToDisk();
        }
Beispiel #5
0
 public static bool TryGet(PersonIdentifier id, out DayOfWeekDismissCollection entity) => DayOfWeekDismissRepository.TryGet(id, out entity);
Beispiel #6
0
        public static void Save(DayOfWeekDismissCollection entity)
        {
            Person person;
            if (!TryGet(entity.Identifier, out person))
                throw new ArgumentException($"There is no Person with {entity.Identifier.ToString()} id in the Person Repository.");

            DayOfWeekDismissRepository.Save(entity);
        }