private Task<List<CommunicationItemViewModel>> RefreshCaseCommunicationItemsAsync(CommunicationAdaptor adaptor)
        {
            Task<List<CommunicationItemViewModel>> taskResult = Task.Run(() =>
                {
                    var result = new List<CommunicationItemViewModel>();

                    // Append publicReplyItems
                    if (CaseCommunicationItems.Count > 0)
                    {
                        result = result.Union(CaseCommunicationItems
                                                       .Where(item => item is PublicReplyItem)
                                                       .Select(
                                                           item =>
                                                           adaptor.PublicReply2PublicReplyViewModel(
                                                               item.DeepClone(
                                                                   _entityFactory as IKnownSerializationTypes)
                                                               as PublicReplyItem)))
                                       .ToList();
                    }
                    // Append Notes
                    if (CaseNotes.Count > 0)
                    {
                        result =
                            result.Union(
                                CaseNotes.Select(
                                    n =>
                                    adaptor.Note2NoteCommunicationViewModel(
                                        n.DeepClone(_entityFactory as IKnownSerializationTypes)))).ToList();
                    }

                    return result;
                });

            return taskResult;
        }
        private Task<List<CommunicationItemViewModel>> RefreshCustomerNotesItemAsync(CommunicationAdaptor adaptor)
        {
            Task<List<CommunicationItemViewModel>> taskResult = Task.Run(() =>
                {
                    var result = new List<CommunicationItemViewModel>();
                    if (CurrentCustomer != null && ContactNotes.Count > 0)
                    {
                        result =
                            result.Union(
                                ContactNotes.Select(
                                    n =>
                                    adaptor.Note2NoteCommunicationViewModel(
                                        n.DeepClone(_entityFactory as IKnownSerializationTypes)))).ToList();
                    }
                    return result;
                });

            return taskResult;
        }