public async Task CreateCallLogAsync(CallLog item)
        {
            _logger.LogInformation($"Creating CallLog for callSid: '{item.callSid}'");

            var container = _cosmosClient.GetContainer(CosmosDb.DatabaseId, CosmosDb.CallLogCollection);

            using (Stream stream = ToStream <CallLog>(item))
            {
                using (ResponseMessage responseMessage = await container.CreateItemStreamAsync(stream, new PartitionKey(item.callSid)))
                {
                    // Item stream operations do not throw exceptions for better performance
                    if (responseMessage.IsSuccessStatusCode)
                    {
                        CallLog streamResponse = FromStream <CallLog>(responseMessage.Content);
                        _logger.LogInformation($"CallLog id: '{streamResponse.id}' created successfully");
#if DEBUG
                        _logger.LogDebug($"INSERT Diagnostics for CreateCallLogAsync: {responseMessage.Diagnostics}");
#endif
                    }
                    else
                    {
                        _logger.LogError($"Failed to create CallLog for callSid: '{item.id}' from stream. Status code: {responseMessage.StatusCode} Message: {responseMessage.ErrorMessage}");
                    }
                }
            }
        }
Exemple #2
0
        private void btnRetrieveHistory_Click(object sender, EventArgs e)
        {
            Client         c     = (Client)cmbClients.SelectedItem;
            List <CallLog> calls = new CallLog(new CallOperators(), c, new DateTime(), new DateTime(), "").GetCalls(c.ClientIdentifier);

            PdfWriter.CreateCallHistoryPdf(c, calls);
        }
Exemple #3
0
        public async Task <ActionResult <CallLog_CallLogDTO> > Delete([FromBody] CallLog_CallLogDTO CallLog_CallLogDTO)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            if (!await HasPermission(CallLog_CallLogDTO.Id))
            {
                return(Forbid());
            }

            CallLog CallLog = ConvertDTOToEntity(CallLog_CallLogDTO);

            CallLog = await CallLogService.Delete(CallLog);

            CallLog_CallLogDTO = new CallLog_CallLogDTO(CallLog);
            if (CallLog.IsValidated)
            {
                return(CallLog_CallLogDTO);
            }
            else
            {
                return(BadRequest(CallLog_CallLogDTO));
            }
        }
Exemple #4
0
 private void btnDecline_Click(object sender, EventArgs e)
 {
     btnClose.Visible = true;
     if (ValidateForm())
     {
         current = (Client)bind1.Current;
         if (start != null)
         {
             end = DateTime.UtcNow;
             callTime.Stop();
             CallOperators co   = frmMain.loggedIn.GetMatchingCallOperator();
             CallLog       call = new CallLog(co, current, start, end, rtxtRemarks.Text);
             if (call.InsertCall())
             {
                 MessageBoxShower.ShowInfo("This called has been logged. Thank you.", "Call Log");
             }
             else
             {
                 CustomExceptions error = new CustomExceptions("This call could not be logged. Please try again", "Logging Error!");
             }
         }
     }
     else
     {
         CustomExceptions error = new CustomExceptions("Please complete all fields!", "Validation Error!");
     }
 }
Exemple #5
0
        private void LINQ2D_Load(object sender, EventArgs e)
        {
            List <Contact> contacts = Contact.SampleData();
            List <CallLog> callLog  = CallLog.SampleData();

            var q = from call in callLog
                    where call.Incoming == true
                    group call by call.Number into g
                    join contact in contacts on
                    g.Key equals contact.Phone
                    orderby contact.FirstName, contact.LastName
                select new
            {
                contact.FirstName,
                contact.LastName,
                Count = g.Count(),
                Avg   = g.Average(c => c.Duration),
                Total = g.Sum(c => c.Duration)
            };

            foreach (var call in q)
            {
                Console.WriteLine(
                    "{0} {1} - Calls:{2}, Time:{3}mins, Avg:{4}mins",
                    call.FirstName, call.LastName,
                    call.Count, call.Total, Math.Round(call.Avg, 2));
            }
        }
Exemple #6
0
        public async Task <bool> Create(CallLog CallLog)
        {
            CallLogDAO CallLogDAO = new CallLogDAO();

            CallLogDAO.Id                = CallLog.Id;
            CallLogDAO.Title             = CallLog.Title;
            CallLogDAO.Content           = CallLog.Content;
            CallLogDAO.Phone             = CallLog.Phone;
            CallLogDAO.CallTime          = CallLog.CallTime;
            CallLogDAO.EntityReferenceId = CallLog.EntityReferenceId;
            CallLogDAO.EntityId          = CallLog.EntityId;
            CallLogDAO.CallTypeId        = CallLog.CallTypeId;
            CallLogDAO.CallCategoryId    = CallLog.CallCategoryId;
            CallLogDAO.CallEmotionId     = CallLog.CallEmotionId;
            CallLogDAO.CallStatusId      = CallLog.CallStatusId;
            CallLogDAO.AppUserId         = CallLog.AppUserId;
            CallLogDAO.CreatorId         = CallLog.CreatorId;
            CallLogDAO.CreatedAt         = StaticParams.DateTimeNow;
            CallLogDAO.UpdatedAt         = StaticParams.DateTimeNow;
            DataContext.CallLog.Add(CallLogDAO);
            await DataContext.SaveChangesAsync();

            CallLog.Id = CallLogDAO.Id;
            await SaveReference(CallLog);

            return(true);
        }
Exemple #7
0
        public async Task <bool> Update(CallLog CallLog)
        {
            CallLogDAO CallLogDAO = DataContext.CallLog.Where(x => x.Id == CallLog.Id).FirstOrDefault();

            if (CallLogDAO == null)
            {
                return(false);
            }
            CallLogDAO.Id                = CallLog.Id;
            CallLogDAO.Title             = CallLog.Title;
            CallLogDAO.Content           = CallLog.Content;
            CallLogDAO.Phone             = CallLog.Phone;
            CallLogDAO.CallTime          = CallLog.CallTime;
            CallLogDAO.EntityReferenceId = CallLog.EntityReferenceId;
            CallLogDAO.EntityId          = CallLog.EntityId;
            CallLogDAO.CallTypeId        = CallLog.CallTypeId;
            CallLogDAO.CallCategoryId    = CallLog.CallCategoryId;
            CallLogDAO.CallEmotionId     = CallLog.CallEmotionId;
            CallLogDAO.CallStatusId      = CallLog.CallStatusId;
            CallLogDAO.AppUserId         = CallLog.AppUserId;
            CallLogDAO.CreatorId         = CallLog.CreatorId;
            CallLogDAO.UpdatedAt         = StaticParams.DateTimeNow;
            await DataContext.SaveChangesAsync();

            await SaveReference(CallLog);

            return(true);
        }
        public void ImportOldDatabase(string filename)
        {
            if (!File.Exists(filename))
            {
                return;
            }

            DataTable imported_call_log = CallLog.GetCallLog(999999999, filename);

            FrmTimerMsgBox msg = new FrmTimerMsgBox("Importing Call Log", "Importing", 500000, true);

            msg.Show();
            foreach (DataRow call in imported_call_log.Rows)
            {
                Application.DoEvents();
                string   date_string = call["time"].ToString();
                DateTime date        = DateTime.ParseExact(date_string, "yyyyMMddHHmmss", null);
                CallLog.AddCall(call["line"].ToString(), call["type"].ToString(), call["io"].ToString(), call["dur"].ToString(), call["checksum"].ToString(), call["rings"].ToString(), date, call["number"].ToString(), call["name"].ToString(), call["uid"].ToString());
            }

            if (msg.Visible)
            {
                msg.Close();
            }

            if (!DO_NOT_UPDATE)
            {
                Program.fMain.RefreshCallLog();
            }

            GC.Collect();
            GC.WaitForPendingFinalizers();

            File.Move(filename, filename.Replace(".db3", "-imported-" + DateTime.Now.Month.ToString() + "-" + DateTime.Now.Day.ToString() + "-" + DateTime.Now.Year.ToString() + "-" + DateTime.Now.Hour.ToString() + "-" + DateTime.Now.Minute.ToString() + ".db3"));
        }
Exemple #9
0
 public async Task <bool> Delete(CallLog CallLog)
 {
     if (await ValidateId(CallLog))
     {
     }
     return(CallLog.IsValidated);
 }
Exemple #10
0
 public object SetPropertyDynamicParameters(string path, PSObject propertyValue)
 {
     using (var call = new CallLog(this, "SetPropertyDynamicParameters", path))
     {
         return(null);
     }
 }
Exemple #11
0
 public object GetPropertyDynamicParameters(string path, Collection <string> providerSpecificPickList)
 {
     using (var call = new CallLog(this, "GetPropertyDynamicParameters", path, providerSpecificPickList))
     {
         return(null);
     }
 }
        public NewContractRequestLogic(Agent agent, Boolean incoming, NewContractRequest ncr)
        {
            callLog = new CallLog(DateTime.Now, incoming);
            callLog.Representative = agent;

            this.newContractRequest = ncr;
        }
Exemple #13
0
        public void ShowCallLogList(CallLog.CallLogCollection callLogCollection)
        {
            lvCallLog.Items.Clear();

            for (int i = 0; i < callLogCollection.Count; i++)
            {
                lvCallLog.Items.Add(new ListViewItem(new string[]{i.ToString(),
                    callLogCollection[i].DBID.ToString(),
                    callLogCollection[i].Number.ToString(),
                    callLogCollection[i].Name.ToString(),
                    callLogCollection[i].StartTime.ToString("yyyy-MM-dd HH:mm:ss"),
                    callLogCollection[i].EndTime.ToString("yyyy-MM-dd HH:mm:ss"),
                    callLogCollection[i].CallType.ToString(),
                    callLogCollection[i].OutGoing.ToString(),
                    callLogCollection[i].Connected.ToString(),
                    callLogCollection[i].Ended.ToString(),
                    callLogCollection[i].Roaming.ToString(),
                    callLogCollection[i].CallIDType.ToString(),
                    callLogCollection[i].NameType.ToString(),
                    callLogCollection[i].Note.ToString(),
                    callLogCollection[i].Readed.ToString()}));

            }

            lvCallLog.Refresh();
        }
Exemple #14
0
        protected override bool IsItemContainer(string path)
        {
            using (var call = new CallLog(this, "IsItemContainer", path))
            {
                if (IsRootPath(path))
                {
                    return(true);
                }

                var node = GetFirstNodeFactoryFromPath(path);
                if (null == node)
                {
                    return(false);
                }

                var value = node.GetNodeValue();

                if (null == value)
                {
                    return(false);
                }

                return(value.IsCollection);
            }
        }
        public async Task <IHttpActionResult> PutCall(int id, CallLog call)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != call.ID)
            {
                return(BadRequest());
            }

            db.Entry(call).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CallExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemple #16
0
 public object ClearPropertyDynamicParameters(string path, Collection <string> propertyToClear)
 {
     using (var call = new CallLog(this, "ClearPropertyDynamicParameters", path, propertyToClear))
     {
         return(null);
     }
 }
        /// <summary>
        /// delete a user info
        /// </summary>
        /// <param name="customerId"></param>
        public void RemoveCallLog(Guid id)
        {
            if (id == Guid.Empty)
            {
                LoggerFactory.CreateLog().LogWarning(Messages.warning_CannotRemoveNonExistingCallLog);
            }
            else
            {
                var calllog = _callLogRepository.Get(id);

                if (calllog != null) //if customer exist
                {
                    var deleteCallLog = new CallLog();
                    deleteCallLog.ChangeCurrentIdentity(id);

                    //disable account "delete"
                    _callLogRepository.Remove(deleteCallLog);

                    //commit changes
                    _callLogRepository.UnitOfWork.Commit();
                }
                else //the customer not exist, cannot remove
                {
                    LoggerFactory.CreateLog().LogWarning(Messages.warning_CannotRemoveNonExistingCallLog);
                }
            }
        }
Exemple #18
0
        public static void Main1(string[] agru)
        {
            List <Contact> contacts = Contact.SampleData();
            List <CallLog> callLogs = CallLog.SampleData();

            "################ Selecting Using Constructor ################".Output();
            var q = from cont in contacts
                    select new ContactName(cont.FirstName + ", " + cont.LastName, (DateTime.Now - cont.DateOfBirth).Days / 365);

            q.PrintValuesInColumn();
            "".Output();

            "################ Selecting Using Type Initializer syntax ################".Output();
            var q1 = from cont in contacts
                     select new ContactName
            {
                FullName   = cont.FirstName + ", " + cont.LastName,
                YearsOfAge = (DateTime.Now - cont.DateOfBirth).Days / 365
            };

            q1.PrintValuesInColumn();
            "".Output();

            "################ Selecting Using Type Anonymous syntax ################".Output();
            var q2 = from cont in contacts
                     select new
            {
                FullName   = cont.FirstName + ", " + cont.LastName,
                YearsOfAge = (DateTime.Now - cont.DateOfBirth).Days / 365
            };

            q2.PrintValuesInColumn();

            Console.ReadLine();
        }
Exemple #19
0
 public CallLog_CallLogDTO(CallLog CallLog)
 {
     this.Id = CallLog.Id;
     this.EntityReferenceId = CallLog.EntityReferenceId;
     this.CallTypeId        = CallLog.CallTypeId;
     this.CallCategoryId    = CallLog.CallCategoryId;
     this.CallStatusId      = CallLog.CallStatusId;
     this.CallEmotionId     = CallLog.CallEmotionId;
     this.AppUserId         = CallLog.AppUserId;
     this.Title             = CallLog.Title;
     this.Content           = CallLog.Content;
     this.Phone             = CallLog.Phone;
     this.CallTime          = CallLog.CallTime;
     this.CreatorId         = CallLog.CreatorId;
     this.AppUser           = CallLog.AppUser == null ? null : new CallLog_AppUserDTO(CallLog.AppUser);
     this.Creator           = CallLog.Creator == null ? null : new CallLog_AppUserDTO(CallLog.Creator);
     this.EntityReference   = CallLog.EntityReference == null ? null : new CallLog_EntityReferenceDTO(CallLog.EntityReference);
     this.CallType          = CallLog.CallType == null ? null : new CallLog_CallTypeDTO(CallLog.CallType);
     this.CallCategory      = CallLog.CallCategory == null ? null : new CallLog_CallCategoryDTO(CallLog.CallCategory);
     this.CallStatus        = CallLog.CallStatus == null ? null : new CallLog_CallStatusDTO(CallLog.CallStatus);
     this.CallEmotion       = CallLog.CallEmotion == null ? null : new CallLog_CallEmotionDTO(CallLog.CallEmotion);
     this.AppUser           = CallLog.AppUser == null ? null : new CallLog_AppUserDTO(CallLog.AppUser);
     this.CreatedAt         = CallLog.CreatedAt;
     this.UpdatedAt         = CallLog.UpdatedAt;
     this.Errors            = CallLog.Errors;
 }
Exemple #20
0
        static async Task Main(string[] args)
        {
            CallLog callLog = new CallLog();

            while (callLog.PayLoad.MoreAvailable)
            {
                var apiURL = APIHelper.GenerateTheAPIURL(Enums.ObjectType.Events);
                //setting the flag back to false
                callLog.IsCallSuccess = false;

                while (!callLog.IsCallSuccess)
                {
                    callLog = APIHelper.CallTheAPI(apiURL);
                }
                // get the DB PK ID of the row just inserted
                var dbid = DatabaseHelper.InsertCallLogInToDatabse(callLog);

                // convert response data into ojbect using database Key for new record created above
                var PL = Newtonsoft.Json.JsonConvert.DeserializeObject <PayLoad>(callLog.Response);
                // build AzureStorageHelper MessagePayload with Datbase ID
                AzureStorageHelper.AzureConfigSettings azureconfig = new AzureStorageHelper.AzureConfigSettings()
                {
                    storageConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["SQLConnectionString"].ToString(),
                    blobcontainer           = System.Configuration.ConfigurationManager.AppSettings["AzureContainerName"].ToString(),
                    queuename = System.Configuration.ConfigurationManager.AppSettings["AzureQueueName"].ToString()
                };
                var data = new AzureStorageHelper.Response()
                {
                    ID = (int)dbid, RESPONSE = callLog.Response
                };
                await AzureStorageHelper.PostMessageToQueueAsync(azureconfig, data);
            }
        }
Exemple #21
0
        static void Main()
        {
            Common.InitializeSettings();

            // Load properties
            Common.LoadSettings();

            // Create Database if needed
            CallLog.CreateDatabase();

            bool exists = System.Diagnostics.Process.GetProcessesByName(System.IO.Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetEntryAssembly().Location)).Length > 1;

            if (exists)
            {
                FrmTimerMsgBox msg = new FrmTimerMsgBox("App Already Opened", "ELPoup 5 Already Running in System Tray", 4000);
                msg.ShowDialog();
                Application.Exit();
                return;
            }

            // Setup styles and rendering
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            // Create main form
            fMain = new FrmMain();

            // Launch main form
            Application.Run(fMain);
        }
Exemple #22
0
 public void SetProperty(string path, PSObject propertyValue)
 {
     using (var call = new CallLog(this, "SetProperty", path, propertyValue))
     {
         var factories = GetNodeFactoryFromPath(path);
         factories.ToList().ForEach(f => SetProperty(path, f, propertyValue));
     }
 }
Exemple #23
0
 public void GetProperty(string path, Collection <string> providerSpecificPickList)
 {
     using (var call = new CallLog(this, "GetProperty", path, providerSpecificPickList))
     {
         var factories = GetNodeFactoryFromPath(path);
         factories.ToList().ForEach(f => GetProperty(path, f, providerSpecificPickList));
     }
 }
Exemple #24
0
 IEnumerable<INodeFactory> ResolvePath( string path )
 {
     using (var call = new CallLog(this, "ResolvePath", path))
     {
         path = EnsurePathIsRooted(path);
         return PathNodeProcessor.ResolvePath(CreateContext(path), path);           
     }
 }
Exemple #25
0
 public void ClearProperty(string path, Collection <string> propertyToClear)
 {
     using (var call = new CallLog(this, "ClearProperty", path, propertyToClear))
     {
         WriteCmdletNotSupportedAtNodeError(path, ProviderCmdlet.ClearItemProperty,
                                            ClearItemPropertyNotsupportedErrorID);
     }
 }
Exemple #26
0
        public async Task <bool> Delete(CallLog CallLog)
        {
            await DataContext.CallLog.Where(x => x.Id == CallLog.Id).UpdateFromQueryAsync(x => new CallLogDAO {
                DeletedAt = StaticParams.DateTimeNow, UpdatedAt = StaticParams.DateTimeNow
            });

            return(true);
        }
Exemple #27
0
        public CallLog SaveCallLog(CallLog log)
        {
            log.LoggedOn = DateTime.UtcNow;

            _callLogsRepository.SaveOrUpdate(log);

            return(GetCallLogById(log.CallLogId));
        }
Exemple #28
0
 private void SetTestMode(OpenStackNetConfigurationOptions options)
 {
     options.FlurlHttpSettings.HttpClientFactory = new TestHttpClientFactory(this);
     options.FlurlHttpSettings.AfterCall         = call =>
     {
         CallLog.Add(call);
     };
 }
Exemple #29
0
        public async Task <bool> Create(CallLog CallLog)
        {
            await ValidateContent(CallLog);
            await ValidateCallType(CallLog);
            await ValidateAppUser(CallLog);

            return(CallLog.IsValidated);
        }
Exemple #30
0
 public async Task <bool> ValidateCallType(CallLog CallLog)
 {
     if (CallLog.CallType == null)
     {
         CallLog.AddError(nameof(CallLogValidator), nameof(CallLog.CallType), ErrorCode.CallTypeEmpty);
     }
     return(CallLog.IsValidated);
 }
Exemple #31
0
 public async Task <bool> ValidateAppUser(CallLog CallLog)
 {
     if (CallLog.AppUser == null)
     {
         CallLog.AddError(nameof(CallLogValidator), nameof(CallLog.AppUser), ErrorCode.AppUserEmpty);
     }
     return(CallLog.IsValidated);
 }
Exemple #32
0
 IEnumerable <INodeFactory> ResolvePath(string path)
 {
     using (var call = new CallLog(this, "ResolvePath", path))
     {
         path = EnsurePathIsRooted(path);
         return(PathNodeProcessor.ResolvePath(CreateContext(path), path));
     }
 }
 public MockImplementer(Type type, CallLog callLog)
 {
     _type = type;
     _callLog = callLog;
 }
Exemple #34
0
 public void GetProperty(string path, Collection<string> providerSpecificPickList)
 {
     using (var call = new CallLog(this, "GetProperty", path, providerSpecificPickList))
     {
         var factories = GetNodeFactoryFromPath(path);
         factories.ToList().ForEach(f => GetProperty(path, f, providerSpecificPickList));
     }
 }
Exemple #35
0
 public object GetPropertyDynamicParameters(string path, Collection<string> providerSpecificPickList)
 {
     using (var call = new CallLog(this, "GetPropertyDynamicParameters", path, providerSpecificPickList))
     {
         return null;
     }
 }
Exemple #36
0
 public void SetProperty(string path, PSObject propertyValue)
 {
     using (var call = new CallLog(this, "SetProperty", path, propertyValue))
     {
         var factories = GetNodeFactoryFromPath(path);
         factories.ToList().ForEach(f => SetProperty(path, f, propertyValue));
     }
 }
Exemple #37
0
 public object SetPropertyDynamicParameters(string path, PSObject propertyValue)
 {
     using (var call = new CallLog(this, "SetPropertyDynamicParameters", path))
     {
         return null;
     }
 }
Exemple #38
0
 public void ClearProperty(string path, Collection<string> propertyToClear)
 {
     using (var call = new CallLog(this, "ClearProperty", path, propertyToClear))
     {
         WriteCmdletNotSupportedAtNodeError(path, ProviderCmdlet.ClearItemProperty,
                                            ClearItemPropertyNotsupportedErrorID);
     }
 }
Exemple #39
0
 public object ClearPropertyDynamicParameters(string path, Collection<string> propertyToClear)
 {
     using (var call = new CallLog(this, "ClearPropertyDynamicParameters", path, propertyToClear))
     {
         return null;
     }
 }
Exemple #40
0
        public string GetHelpMaml(string helpItemName, string path)
        {
            using (var call = new CallLog(this, "GetHelpMaml", helpItemName, path))
            {
                if (String.IsNullOrEmpty(helpItemName) || String.IsNullOrEmpty(path))
                {
                    return String.Empty;
                }

                var parts = helpItemName.Split(new[] {'-'});
                if (2 != parts.Length)
                {
                    return String.Empty;
                }

                var nodeFactory = GetFirstNodeFactoryFromPath(path);
                if (null == nodeFactory)
                {
                    return String.Empty;
                }

                XmlDocument document = new XmlDocument();

                string filename = GetExistingHelpDocumentFilename();

                if (String.IsNullOrEmpty(filename)
                    || !File.Exists(filename))
                {
                    return String.Empty;
                }

                try
                {
                    document.Load(filename);
                }
                catch (Exception e)
                {
                    WriteError(new ErrorRecord(
                                   new MamlHelpDocumentExistsButCannotBeLoadedException(filename, e),
                                   GetHelpCustomMamlErrorID,
                                   ErrorCategory.ParserError,
                                   filename
                                   ));

                    return string.Empty;
                }

                List<string> keys = GetCmdletHelpKeysForNodeFactory(nodeFactory);

                string verb = parts[0];
                string noun = parts[1];
                string maml = (from key in keys
                               let m = GetHelpMaml(document, key, verb, noun)
                               where !String.IsNullOrEmpty(m)
                               select m).FirstOrDefault();

                if (String.IsNullOrEmpty(maml))
                {
                    maml = GetHelpMaml(document, NotSupportedCmdletHelpID, verb, noun);
                }
                return maml ?? String.Empty;
            }
        }
Exemple #41
0
        protected override bool IsItemContainer(string path)
        {
            using (var call = new CallLog(this, "IsItemContainer", path))
            {
                if (IsRootPath(path))
                {
                    return true;
                }

                var node = GetFirstNodeFactoryFromPath(path);
                if (null == node)
                {
                    return false;
                }

                var value = node.GetNodeValue();

                if (null == value)
                {
                    return false;
                }

                return value.IsCollection;
            }
        }