public void TestInitialize() { var dismisses = new List<TemporaryDismiss>(); for (int i = 0; i < 7; i++) { var d = new TemporaryDismiss(new DateTime(i), new TimeSpan(SpanMultiplier * i), TestObjectCreator.CreateAlphabetString(i, DismissReasonLength)); dismisses.Add(d); } var document = TestObjectCreator.CreateAlphabetString(DismissReasonLength, DismissReasonLength); ReferenceCollection = new TemporaryDismissCollection(new PersonIdentifier(document), dismisses); }
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 editarDispensasTemporariasToolStripMenuItem_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(); TemporaryDismissCollection dismisses; var foundDismisses = RepositoryManager.TryGet(person.Identifier, out dismisses); if (!foundDismisses) dismisses = new TemporaryDismissCollection(person.Identifier, Array.Empty<TemporaryDismiss>()); using (var editor = new TemporaryDismissCollectionEditorForm(person.Name, dismisses)) { var result = editor.ShowDialog(); if (result != DialogResult.OK) return; var newDismisses = editor.GetDismisses(); var newDismissCollection = new TemporaryDismissCollection(person.Identifier, newDismisses); RepositoryManager.Save(newDismissCollection); } }
public static void SaveTemporaryDismisses(PersonIdentifier id, IEnumerable<TemporaryDismiss> 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 = GetTemporaryDismissRepository(); var dismissCollection = new TemporaryDismissCollection(id, dismisses); repository.Save(dismissCollection); repository.FlushRepositoryToDisk(); }
public static bool TryGet(PersonIdentifier id, out TemporaryDismissCollection entity) => TemporaryDismissRepository.TryGet(id, out entity);
public static void Save(TemporaryDismissCollection 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."); TemporaryDismissRepository.Save(entity); }