private void SetTaskData(DataEntities.ProductRequests.ProductRequestRegistrationTask dataTask, ProductRequestRegistrationTask businessTask, int accountId)
        {
            if ((dataTask.ProductRequestRegistrationTaskId == 0 &&
                    (businessTask.IsCompleted || !string.IsNullOrWhiteSpace(businessTask.Comment))
                )
                ||
                (dataTask.ProductRequestRegistrationTaskId > 0 &&
                    (businessTask.IsCompleted != dataTask.IsCompleted || !string.Equals(businessTask.Comment, dataTask.Comment, StringComparison.CurrentCulture))
                ))
            {
                dataTask.LastChangedByAccountId = accountId;
                dataTask.LastChangedOn = SystemTime.Now;

                dataTask.IsCompleted = businessTask.IsCompleted;
                dataTask.Comment = businessTask.Comment;
            }
        }
        private void UpdateExistingTask(DataEntities.ProductRequests.ProductRequestRegistrationTask existingTask, ProductRequestRegistrationTask task, DataEntities.Auth.Account dataAccount)
        {
            SetTaskData(existingTask, task, dataAccount.AccountId);

            ProductRequestRegistrationTaskRepository.Update(existingTask);
        }
        private void CreateNewTask(ProductRequestRegistration registration, int registrationId, ProductRequestRegistrationTask task, DataEntities.Auth.Account dataAccount)
        {
            var taskForType = GetTasksByType(registration.ProductRequestTypeId).FirstOrDefault(o => o.ExternalId == task.ProductRequestTaskId);
            if (taskForType == null)
                throw new EntityNotFoundException(typeof(ProductRequestRegistrationTask), task.ProductRequestTaskId);

            var newEntity =
                new DataEntities.ProductRequests.ProductRequestRegistrationTask
                {
                    ProductRequestTaskId = taskForType.ProductRequestTaskId,
                    ProductRequestRegistrationId = registrationId,
                };

            SetTaskData(newEntity, task, dataAccount.AccountId);

            ProductRequestRegistrationTaskRepository.Insert(newEntity);
        }