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);
 }
예제 #2
0
파일: Report.cs 프로젝트: Mirandatz/Bentham
        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);
            }
        }
예제 #4
0
        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();
        }
예제 #5
0
 public static bool TryGet(PersonIdentifier id, out TemporaryDismissCollection entity) => TemporaryDismissRepository.TryGet(id, out entity);
예제 #6
0
        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);
        }