internal void Assign(string owner)
{
if (owner == null)
{
throw new ArgumentNullException("owner", "owner can't be null!");
}
if (owner.Length == 0)
{
throw new ArgumentOutOfRangeException("owner", owner, "owner can't be empty!");
}
if (_status != TaskStatus.Created)
{
throw new InvalidOperationException("Can't assign owner to a completed or already assigned task!");
}
_owner = owner;
_status = TaskStatus.Assigned;
}