Example #1
0
        /// <inheritdoc />
        public void AddWorklog(DateTime workStartedDateTime, DateTime workEndedDateTime, string description, double kilometersCovered,
                               string employeeEmail)
        {
            // Project cannot have two worklogs where work was done during the same time by the same employee
            if (ConnectorWorklogs.Any(x => x.WorkStartedDateTime == workStartedDateTime &&
                                      x.WorkEndedDateTime == workEndedDateTime &&
                                      string.Equals(x.EmployeeEmailAddress, employeeEmail)))
            {
                throw new DomainException("Similar worklog already exists in project");
            }

            ConnectorWorklogs.Add(new Worklog(workStartedDateTime, workEndedDateTime, description, kilometersCovered, employeeEmail));
        }
Example #2
0
        /// <inheritdoc />
        public void RemoveWorklog(IWorklog worklog)
        {
            var removedWorklog = ConnectorWorklogs.FirstOrDefault(x =>
                                                                  x.WorkStartedDateTime == worklog.WorkStartedDateTime &&
                                                                  x.WorkEndedDateTime == worklog.WorkEndedDateTime &&
                                                                  Math.Abs(x.KilometresCovered - worklog.KilometresCovered) < 0.01 &&
                                                                  string.Equals(x.EmployeeEmailAddress, worklog.EmployeeEmailAddress));

            if (removedWorklog == null)
            {
                throw new DomainException("Worklog does not exist in project");
            }

            ConnectorWorklogs.Remove(removedWorklog);
        }