/// <summary>
 /// Populate FileAssociation given a filePath to an actual File
 /// </summary>
 /// <param name="filePath"></param>
 /// <param name="associationType"></param>
 /// <param name="isFileEncrypted"></param>
 public void Populate(string filePath, eFileAssociationType associationType, bool isFileEncrypted)
 {
     mstrPath = filePath;
     mstrDescription = filePath.Substring(filePath.LastIndexOf(@"\") + 1);
     mobjAssociationType = associationType;
     using (FileStream inStream = new FileStream(mstrPath, FileMode.Open, FileAccess.Read, FileShare.Read))
     {
         mintSizeInBytes = (int)inStream.Length;
     }
     mstrHash = CalculateFileHash(mstrPath);
     mblnIsEncrypted = isFileEncrypted;
 }
        public bool Save(string wmSourceID, eWMSourceSystem sourceSystem, eFileAssociationType fileAssociationType)
        {
            DataAccess objADO = new DataAccess();
            ArrayList colParameters = new ArrayList();
            string strStoredProcedure = "updJobFileAssociation";
            if (fileAssociationType == eFileAssociationType.UserRelated)
            {
                strStoredProcedure = "updUserFileAssociation";
            }
            int intReturn = 0;

            foreach (FileAssociation fileMetadata in this)
            {
                if (fileAssociationType != eFileAssociationType.UserRelated)
                {
                    colParameters.Add(new SqlParameter("@WMSourceID", wmSourceID));
                    colParameters.Add(new SqlParameter("@WMSourceSystem", sourceSystem.ToString()));
                }
                else
                {
                    colParameters.Add(new SqlParameter("@UserID", wmSourceID));
                }
                colParameters.Add(new SqlParameter("@RawFileName", fileMetadata.Path.Substring(fileMetadata.Path.LastIndexOf(@"\") + 1)));
                colParameters.Add(new SqlParameter("@FilePath", fileMetadata.Path));
                colParameters.Add(new SqlParameter("@FileDesc", fileMetadata.Description));
                colParameters.Add(new SqlParameter("@AssociationType", fileMetadata.AssociationType.ToString()));
                colParameters.Add(new SqlParameter("@SizeInBytes", fileMetadata.SizeInBytes));
                colParameters.Add(new SqlParameter("@FileHash", fileMetadata.Hash));
                colParameters.Add(new SqlParameter("@IsEncrypted", fileMetadata.IsEncrypted));
                intReturn += objADO.ExecuteSQL(strStoredProcedure, (SqlParameter[])colParameters.ToArray(typeof(SqlParameter)));
                colParameters.Clear();
            }
            objADO = null;

            return (intReturn > 0);
        }