/// <summary>
        /// Gets the YAML file in the Relativity Instance and returns their ArtifactID and LastModifiedOn (essentially last uploaded date for comparisons later)
        /// </summary>
        /// <param name="serviceManager"></param>
        /// <param name="yamlFileName"></param>
        /// <returns></returns>
        public async Task <List <Tuple <int, DateTime?> > > QueryYamlFileArtifactIDsByNameAsync(IServicesMgr serviceManager, string yamlFileName)
        {
            List <Tuple <int, DateTime?> > retVal = new List <Tuple <int, DateTime?> >();

            using (IObjectManager objectManager = serviceManager.CreateProxy <IObjectManager>(ExecutionIdentity.System))
            {
                try
                {
                    Condition condition1 = new Relativity.Services.TextCondition(PermissionFieldNames.Name,
                                                                                 Relativity.Services.TextConditionEnum.EqualTo, yamlFileName);

                    QueryRequest queryRequest = new QueryRequest()
                    {
                        ObjectType = new ObjectTypeRef()
                        {
                            ArtifactTypeID = Constants.ArtifactTypes.ResourceFileId
                        },
                        Condition = condition1.ToQueryString(),
                        Fields    = new List <FieldRef>
                        {
                            new FieldRef
                            {
                                Name = "LastModifiedOn"
                            }
                        }
                    };

                    QueryResult results =
                        await objectManager.QueryAsync(Constants.Connections.WorkspaceIdAdmin, queryRequest, 1, 100);

                    if (results.TotalCount > 0)
                    {
                        //retVal.AddRange(results.Results.Select(a => Tuple.Create(a.Artifact.ArtifactID, a.Artifact.Fields.Find(x => x.Name.Equals("LastModifiedOn")).ValueAsDate)));
                        retVal.AddRange(results.Objects.Select(a =>
                                                               Tuple.Create(a.ArtifactID, (DateTime?)a["LastModifiedOn"].Value)));
                    }
                    else
                    {
                        _logHelper.LogError(
                            $"DAPI - {nameof(QueryYamlFileArtifactIDsByNameAsync)} - Unable to find YAML file ({yamlFileName})");
                    }
                }
                catch (Exception ex)
                {
                    _logHelper.LogError(
                        $"DAPI - {nameof(QueryYamlFileArtifactIDsByNameAsync)} - Error while querying resource file ArtifactID: {ex}");
                }
            }

            return(retVal);
        }
        /// <summary>
        /// Gets all the User IDs in the specific group designed for DynamicAPI
        /// </summary>
        /// <param name="serviceManager"></param>
        /// <param name="groupName"></param>
        /// <returns></returns>
        private async Task <List <int> > GetUsersInGroupByName(IServicesMgr serviceManager, string groupName)
        {
            List <int> userIds = new List <int>();

            using (IPermissionManager permissionManager = ConnectionHelper.Helper().GetServicesManager().CreateProxy <IPermissionManager>(ExecutionIdentity.System))
                using (IObjectManager objectManager = ConnectionHelper.Helper().GetServicesManager()
                                                      .CreateProxy <IObjectManager>(ExecutionIdentity.System))
                {
                    // Get Group id (from specified name)
                    Condition condition1 = new Relativity.Services.TextCondition(PermissionFieldNames.Name,
                                                                                 Relativity.Services.TextConditionEnum.EqualTo, groupName);

                    QueryRequest queryRequest = new QueryRequest()
                    {
                        ObjectType = new ObjectTypeRef()
                        {
                            ArtifactTypeID = Constants.ArtifactTypes.GroupId
                        },
                        Condition = condition1.ToQueryString()
                    };

                    QueryResult results =
                        await objectManager.QueryAsync(Constants.Connections.WorkspaceIdAdmin, queryRequest, 1, 100);

                    if (results.TotalCount == 0)
                    {
                        throw new Exception(
                                  $"Group ({groupName}) is not present in the instance of relativity. Create the group and add the user to this group to access DynamicAPI");
                    }

                    if (results.TotalCount > 1)
                    {
                        throw new Exception(Constants.Group.MultipleGroupsExist);
                    }

                    // Get list of users in that group
                    GroupRef       groupRef = new GroupRef(results.Objects.First().ArtifactID);
                    List <UserRef> users    =
                        await permissionManager.GetWorkspaceGroupUsersAsync(Constants.Connections.WorkspaceIdAdmin, groupRef);

                    if (users.Count == 0)
                    {
                        throw new Exception($"Not able to find any users in the group ({groupName})");
                    }

                    userIds = users.Select(x => x.ArtifactID).ToList();
                }

            return(userIds);
        }