public void EditEvent(Guid actorId, Guid eventId, EventForm eventForm)
        {
            if (eventForm.IsNull() || !eventForm.IsCorrectlyFilled())
            {
                return;
            }
            var optionEvent = _eventRepository.Get(eventId);

            optionEvent.Do(@event =>
            {
                var optionTracker = _trackerRepository.Get(@event.TrackerId);
                optionTracker.Do(tracker =>
                {
                    if (actorId != tracker.UserId)
                    {
                        return;
                    }
                    @event.Title            = eventForm.Title;
                    @event.ModificationDate = DateTime.Now;
                    _eventRepository.Update(@event);
                });
            });
        }
        public Guid CreateEvent(Guid actorId, Guid trackerId, EventForm eventForm)
        {
            if (eventForm.IsNull() || !eventForm.IsCorrectlyFilled())
            {
                return(Guid.Empty);
            }
            var optionTracker = _trackerRepository.Get(trackerId);

            return(optionTracker.Match(
                       Some: tracker =>
            {
                if (actorId != tracker.UserId)
                {
                    return Guid.Empty;
                }
                var eventId = Guid.NewGuid();
                var @event = new Event(eventId, trackerId, eventForm.Title,
                                       DateTime.Now, DateTime.Now);
                _eventRepository.Save(@event);
                return eventId;
            },
                       None: Guid.Empty));
        }