public bool PredicateDelegate(AssignmentDetails memberInstance)
 {
     return memberInstance.SourceSystem == mstrSourceSystem;
 }
 public bool PredicateDelegate(AssignmentDetails memberInstance)
 {
     return memberInstance.ID == mintID;
 }
        private static AssignmentDetailsCollection  Populate(DataTable collectionMembers)
        {
            AssignmentDetailsCollection colMembers = new AssignmentDetailsCollection();
            AssignmentDetails obj = null;

            foreach (DataRow drMember in collectionMembers.Rows)
            {
                obj = new AssignmentDetails();
                obj.ID = (int)drMember["WMSourceID"];
                obj.InstanceNumber = (int)drMember["JobInstanceNumber"];

                obj.Workers = new WorkerCollection();
                Worker objWorker = new Worker();
                objWorker.UserID = drMember["UserID"].ToString();
                obj.Workers.Add(objWorker);

                obj.DueDate = (DateTime)drMember["DateChangeDetected"];
                colMembers.Add(obj);
            }

            return colMembers;
        }
        public static AssignmentDetailsCollection GetAllAssignmentInstances(AssignmentDetails assignment)
        {

            DataTable dtResults = null;
            FinalBuild.DataAccess objADO = Domain.GetADOInstance(Domain.eConnectionName.FieldData);
            System.Collections.ArrayList colParameters = new System.Collections.ArrayList();
            string strStoredProcedure = "selEligibleForDispatch";

            colParameters.Add(new SqlParameter("@WMSourceID", assignment.ID));

            dtResults = objADO.GetDataTable(strStoredProcedure, "Assignments", (SqlParameter[])colParameters.ToArray(typeof(SqlParameter)));
            return Populate(dtResults);

        }
        public static bool RemoveAssignment(AssignmentDetails assignment)
        {
            DataAccess objADO = Domain.GetADOInstance(Domain.eConnectionName.FieldData);
            ArrayList colParameters = new ArrayList();
            string strStoredProcedure = "delEligibleForDispatch";
            int intRowsAffected = 0;

            colParameters.Add(new SqlParameter("@WMSourceID", assignment.ID));
            if (assignment.InstanceNumber > -1)
            {
                colParameters.Add(new SqlParameter("@InstanceNumber", assignment.InstanceNumber));
            }
            if (assignment.Workers != null && assignment.Workers.Count > 0 && !string.IsNullOrEmpty(assignment.Workers[0].UserID))
            {
                colParameters.Add(new SqlParameter("@UserID", assignment.Workers[0].UserID));
            }

            intRowsAffected = objADO.ExecuteSQL(strStoredProcedure, (SqlParameter[])colParameters.ToArray(typeof(SqlParameter)));
            objADO = null;

            return (intRowsAffected > 0);
        }
        /// <summary>
        /// Handles both New & Existing Assignments in the Eligible For Dispatch table
        /// </summary>
        /// <param name="assignment"></param>
        /// <returns></returns>
        public static bool SaveAssignmentEligibleForDispatch(AssignmentDetails assignment)
        {
            DataAccess objADO = Domain.GetADOInstance(Domain.eConnectionName.FieldData);
            ArrayList colParameters = new ArrayList();
            string strStoredProcedure = "updEligibleForDispatch";
            int intRowsAffected = 0;

            colParameters.Add(new SqlParameter("@WMSourceID", assignment.ID));
            colParameters.Add(new SqlParameter("@UserID", assignment.Workers[0].UserID));
            colParameters.Add(new SqlParameter("@InstanceNumber", assignment.InstanceNumber));
            colParameters.Add(new SqlParameter("@DateChangeDetected", DateTime.Now));
            colParameters.Add(new SqlParameter("@WMSourceSystem", assignment.SourceSystem.ToString()));

            intRowsAffected = objADO.ExecuteSQL(strStoredProcedure, (SqlParameter[])colParameters.ToArray(typeof(SqlParameter)));
            objADO = null;

            return (intRowsAffected > 0);
        }