Exemple #1
0
        private Enum.ProgramTypes SetProgramType(int projectNumber)
        {
            var parser = new Utilities.Parser();

            var programNumber = parser.ExtractRhaProgramNumber(projectNumber);

            var programMapping = Configuration.ConfigHandler.InstanceOf.ProgramMappings;

            if (programMapping.ContainsKey(programNumber))
            {
                return(programMapping[programNumber]);
            }
            else
            {
                return(Enum.ProgramTypes.Generic);
            }
        }
Exemple #2
0
        public bool SaveAttachmentsToFolder(Microsoft.Exchange.WebServices.Data.AttachmentCollection attachments)
        {
            if (string.IsNullOrEmpty(this.path))
            {
                var argEx = new ArgumentNullException("File Path", "File path must be set prior to calling this method");

                Logger.LoggerAsync.InstanceOf.GeneralLogger.Error(argEx);

                throw argEx;
            }

            var directory = new System.IO.DirectoryInfo(this.path);

            var xmlStorage = new Data.HashStorage(@"..\XmlStorage\hashTable.xml");

            xmlStorage.Read();

            var attachmentList = this.AttachmentFileHash(attachments).Result;

            var result = xmlStorage.MoveToProjectRfiFolder(this.store.ProjectNumber);

            this.SynchronizeHashStorage(directory, xmlStorage);

            if (result == false)
            {
                xmlStorage.MoveToProjectRfiFolder(this.store.ProjectNumber);
            }

            // test names and hashes

            foreach (var item in attachmentList)
            {
                var parser = new Utilities.Parser();

                var isValidName = parser.IsValidRfiAttachmentName(item.Key.Name);

                if (isValidName == false)
                {
                    return(false);
                }

                var comparisonResult = xmlStorage.Comparator(item);

                switch (comparisonResult)
                {
                case Enum.FileComparisonResult.NoMatch:
                    var destination = directory.FullName + @"\" + item.Key.Name;

                    xmlStorage.Write(directory, new List <KeyValuePair <FileInfo, byte[]> > {
                        item
                    }, this.store);

                    var newFile = item.Key.CopyTo(destination);

                    newFile.Refresh();

                    item.Key.Delete();

                    result = newFile.Exists;
                    break;

                case Enum.FileComparisonResult.SameNames:
                case Enum.FileComparisonResult.SameNamesAndData:
                    result = true;

                    break;

                case Enum.FileComparisonResult.SameData:
                    result = false;

                    break;

                default:
                    throw new Exception("Invalid value for FileComparisonResult");
                }
            }


            return(result);
        }