public void TestInitialize() { Reference = new DayOfWeekDismissCollection(new PersonIdentifier("012345677"), new DayOfWeekDismiss[] { new DayOfWeekDismiss(DayOfWeek.Monday, "Blargh"), new DayOfWeekDismiss(DayOfWeek.Thursday, "Dindu noffin.") }); }
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(); }
public static bool TryGet(PersonIdentifier id, out DayOfWeekDismissCollection entity) => DayOfWeekDismissRepository.TryGet(id, out entity);
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); }