Beispiel #1
0
 private void ExecuteCloseActiveTask(object obj)
 {
     //If task is stopped, but not saved, show dialog
     if ((!_timeEntryRepository.Exists(TimeEntry) && TimeEntry.IsStopped) || !TimeEntry.IsStopped && TimeEntry.TimeSpent != TimeSpan.Zero)
     {
         var result = MessageBox.Show("Current timeentry has not been saved. Close the task?", "Unsaved timeentry", MessageBoxButton.YesNo);
         if (result == MessageBoxResult.Yes)
         {
             TaskCommands.CloseActiveTask.Execute(null);
         }
     }
     else
     {
         TaskCommands.CloseActiveTask.Execute(null);
     }
 }
Beispiel #2
0
        private TimeEntryUpdatedStatusDto SaveOrUpdateTimeEntry(TimeEntryDto timeEntryDto, User user)
        {
            var response = new TimeEntryUpdatedStatusDto();

            response.Guid = timeEntryDto.Guid;
            response.IsOK = true;

            var task          = _taskRepository.GetByGuid(timeEntryDto.TaskGuid);
            var timeEntryType = _timeEntryTypeRepository.GetById(timeEntryDto.TimeEntryTypeId);
            var pricePrHour   = _priceService.GetPrice(timeEntryDto.PricePrHour, user, task);

            if (_timeEntryRepository.Exists(timeEntryDto.Guid))
            {
                var changedTimeEntry = _timeEntryRepository.GetByGuid(timeEntryDto.Guid);

                if (changedTimeEntry.Invoice != null)
                {
                    //throw
                    response.IsOK       = false;
                    response.ReasonText = "Can not edit timeentry that has marked as invoiced!";
                    return(response);
                }

                changedTimeEntry.User          = user;
                changedTimeEntry.Task          = task;
                changedTimeEntry.TimeEntryType = timeEntryType;
                changedTimeEntry.StartTime     = timeEntryDto.StartTime;
                changedTimeEntry.EndTime       = timeEntryDto.EndTime;
                changedTimeEntry.Description   = timeEntryDto.Description;
                changedTimeEntry.TimeSpent     = timeEntryDto.TimeSpent;
                changedTimeEntry.BillableTime  = timeEntryDto.BillableTime;
                changedTimeEntry.Billable      = timeEntryDto.Billable;
                changedTimeEntry.Price         = pricePrHour;

                _timeEntryRepository.SaveOrUpdate(changedTimeEntry);
                return(response);
            }

            var newTimeEntry = _timeEntryFactory.Create(
                timeEntryDto.Guid,
                user,
                task,
                timeEntryType,
                timeEntryDto.StartTime,
                timeEntryDto.EndTime,
                timeEntryDto.Description,
                timeEntryDto.TimeSpent,
                0,
                timeEntryDto.BillableTime,
                timeEntryDto.Billable,
                pricePrHour,
                timeEntryDto.ClientSourceId
                );

            _timeEntryRepository.SaveOrUpdate(newTimeEntry);

            return(response);
        }
Beispiel #3
0
        public TimeEntryDto SaveTimeEntry(TimeEntryDto timeEntryDto, int userId)
        {
            var user          = _userRepository.GetByUserID(userId);
            var task          = _taskRepository.GetByGuid(timeEntryDto.TaskGuid);
            var timeEntryType = _timeEntryTypeRepository.GetById(timeEntryDto.TimeEntryTypeId);
            var pricePrHour   = _priceService.GetPrice(timeEntryDto.PricePrHour, user, task);

            if (!_timeEntryRepository.Exists(timeEntryDto.Guid))
            {
                //TODO: Do logic that splits the timeentry in two, if a dateshift has occurred
                //    if(timeEntry.StartTime.Date != timeEntry.EndTime.Date)

                var newTimeEntry = _timeEntryFactory.Create(
                    timeEntryDto.Guid,
                    user,
                    task,
                    timeEntryType,
                    timeEntryDto.StartTime,
                    timeEntryDto.EndTime,
                    timeEntryDto.Description,
                    timeEntryDto.TimeSpent,
                    0,
                    timeEntryDto.BillableTime,
                    timeEntryDto.Billable,
                    pricePrHour,
                    timeEntryDto.ClientSourceId
                    );

                _timeEntryRepository.SaveOrUpdate(newTimeEntry);
                timeEntryDto.Id = newTimeEntry.Id;
            }
            else
            {
                var changedTimeEntry = _timeEntryRepository.GetByGuid(timeEntryDto.Guid);
                changedTimeEntry.User          = user;
                changedTimeEntry.Task          = task;
                changedTimeEntry.TimeEntryType = timeEntryType;
                changedTimeEntry.StartTime     = timeEntryDto.StartTime;
                changedTimeEntry.EndTime       = timeEntryDto.EndTime;
                changedTimeEntry.Description   = timeEntryDto.Description;
                changedTimeEntry.TimeSpent     = timeEntryDto.TimeSpent;
                changedTimeEntry.BillableTime  = timeEntryDto.BillableTime;
                changedTimeEntry.Billable      = timeEntryDto.Billable;
                changedTimeEntry.Price         = pricePrHour;

                _timeEntryRepository.SaveOrUpdate(changedTimeEntry);
            }

            return(timeEntryDto);
        }
Beispiel #4
0
        private InActiveTaskViewModel Create(TimeEntry timeEntry)
        {
            var    inActiveTaskWidth     = _appSettings.InActiveTaskWidth;
            var    inactiveTaskHeight    = _appSettings.InactiveTaskHeight;
            double timeSpentFontSize     = _appSettings.InactiveTaskTimeSpentFontSize;
            double taskNameFontSize      = _appSettings.InactiveTaskTaskNameFontSize;
            double detailsFontSize       = _appSettings.InactiveTaskDescriptionFontSize;
            var    inActiveTaskViewModel = new InActiveTaskViewModel(timeEntry,
                                                                     _timeEntryRepository.Exists(timeEntry),
                                                                     inActiveTaskWidth,
                                                                     inactiveTaskHeight,
                                                                     timeSpentFontSize,
                                                                     taskNameFontSize,
                                                                     detailsFontSize);

            return(inActiveTaskViewModel);
        }