/// <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)); }
/// <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); }