public InApporvalOvertimeOrder(Guid id, Guid staffId, OvertimeOrderMonth month, DateTime timeOfSubmited)
        {
            AssertionConcern.AssertArgumentNotEmptyGuid(id, "Overtime roder id cannot be null.");
            AssertionConcern.AssertArgumentNotEmptyGuid(staffId, "Overtime order staff id cannot be null.");
            AssertionConcern.AssertArgumentNotNull(timeOfSubmited, "Time of submited cannot be null.");

            this.Id             = id;
            this.TimeOfSubmited = timeOfSubmited;
            this.Status         = OvertimeOrderStatus.InApproval;
        }
        public NewBornOvertimeOrder(Guid id, Guid staffId, OvertimeOrderMonth month, DateTime timeOfCreation)
        {
            AssertionConcern.AssertArgumentNotEmptyGuid(id, "Overtime roder id cannot be null.");
            AssertionConcern.AssertArgumentNotEmptyGuid(staffId, "Overtime order staff id cannot be null.");
            AssertionConcern.AssertArgumentNotNull(timeOfCreation, "Time of creation cannot be null.");

            this.Id             = id;
            this.StaffId        = staffId;
            this.Month          = month;
            this.TimeOfCreation = timeOfCreation;
            this.Status         = OvertimeOrderStatus.NewBorn;
        }
        public CanceledOvertimeOrder(Guid id, Guid staffId, OvertimeOrderMonth month, DateTime timeOfCanceled)
        {
            AssertionConcern.AssertArgumentNotEmptyGuid(id, "Overtime roder id cannot be null.");
            AssertionConcern.AssertArgumentNotEmptyGuid(staffId, "Overtime order staff id cannot be null.");
            AssertionConcern.AssertArgumentNotNull(timeOfCanceled, "Time of cancel cannot be null.");


            this.Id             = id;
            this.StaffId        = staffId;
            this.Month          = month;
            this.TimeOfCanceled = timeOfCanceled;
            this.Status         = OvertimeOrderStatus.Canceled;
        }