private void processAssignment(ProjectDataSet.AssignmentRow assignmentRow, ProjectDataSet projectDataSet, SPListItem listItem)
        {
            var taskRow = (ProjectDataSet.TaskRow)projectDataSet.Task.Select($"TASK_UID=\'{assignmentRow.TASK_UID}\'")[0];

            try
            {
                listItem[listItem.Fields.GetFieldByInternalName(TaskHierarchy).Id] = getHierarchy(projectDataSet, taskRow.TASK_PARENT_UID);
                listItem[listItem.Fields.GetFieldByInternalName(IsAssignment).Id]  = "1";
                listItem[listItem.Fields.GetFieldByInternalName(Title).Id]         = taskRow.TASK_NAME;
                listItem[listItem.Fields.GetFieldByInternalName(Wbs).Id]           = taskRow.TASK_WBS;
                listItem[listItem.Fields.GetFieldByInternalName(TaskUid).Id]       = $"{taskRow.TASK_UID}.{assignmentRow.ASSN_UID}";
                listItem[listItem.Fields.GetFieldByInternalName(TaskOrder).Id]     = taskRow.TASK_ID;

                if (!assignmentRow.IsASSN_NOTESNull())
                {
                    listItem[listItem.Fields.GetFieldByInternalName(Notes).Id] = assignmentRow.ASSN_NOTES;
                }

                listItem[listItem.Fields.GetFieldByInternalName(LastPublished).Id] = DateTime.Now;
                var resourceWssId = getResourceWssId(assignmentRow.RES_UID_OWNER);

                if (resourceWssId != 0)
                {
                    listItem[listItem.Fields.GetFieldByInternalName(AssignedTo).Id] = resourceWssId;
                }

                listItem[Summary] = taskRow.TASK_IS_SUMMARY.ToString();

                ProcessFieldToPublish(assignmentRow, projectDataSet, listItem, taskRow);

                if (!string.IsNullOrWhiteSpace(strTimesheetField))
                {
                    if (listItem.Fields.ContainsField(TimeSheetId))
                    {
                        var dataRows = projectDataSet.TaskCustomFields.Select(
                            $"TASK_UID=\'{taskRow.TASK_UID}\' AND MD_PROP_UID=\'{strTimesheetField}\'");

                        listItem[TimeSheetId] = dataRows.Length > 0
                            ? (object)dataRows[0][FlagValue].ToString()
                            : 0;
                    }
                }

                listItem.Update();
            }
            catch (Exception ex)
            {
                myLog.WriteEntry($"Error processing Assignment ({taskRow.TASK_NAME}): {ex.Message}{ex.StackTrace}", EventLogEntryType.Error, 330);
            }
        }