Exemplo n.º 1
0
        public void Process(dataFieldType dataField, ImportedProject importedProject)
        {
            var authorSubfield = dataField.subfield.FirstOrDefault(x => x.code == AuthorCode);

            if (authorSubfield == null)
            {
                return;
            }

            var author    = authorSubfield.Value;
            var lastName  = author;
            var firstName = "";
            var index     = author.IndexOf(',');

            if (index > 0)
            {
                lastName = author.Substring(0, index);
                if (index + 2 < author.Length)
                {
                    firstName = author.Substring(index + 2);
                    firstName = firstName.Replace(",", string.Empty);
                }
            }

            importedProject.Authors.Add(new Author(firstName, lastName));
        }
Exemplo n.º 2
0
        public void Process(dataFieldType dataField, ImportedProject importedProject)
        {
            var genreSubfield = dataField.subfield.FirstOrDefault(x => x.code == GenreCode);

            if (genreSubfield != null)
            {
                importedProject.LiteraryGenres.Add(genreSubfield.Value);
            }
        }
Exemplo n.º 3
0
        public void Process(dataFieldType dataField, ImportedProject importedProject)
        {
            var keywordSubfield = dataField.subfield.FirstOrDefault(x => x.code == KeywordCode);

            if (keywordSubfield != null)
            {
                importedProject.Keywords.Add(keywordSubfield.Value);
            }
        }
Exemplo n.º 4
0
        public void Process(dataFieldType dataField, ImportedProject importedProject)
        {
            var publishInfo = dataField.subfield.FirstOrDefault(x => x.code == PublishInfoCode);

            if (publishInfo == null)
            {
                return;
            }

            var index = publishInfo.Value.IndexOfAny(new[] { ':', ',' });

            if (index <= 0)
            {
                return;
            }

            var publishPlace = publishInfo.Value.Substring(0, index);

            importedProject.ProjectMetadata.PublishPlace = publishPlace.RemoveUnnecessaryCharacters();
            var rest = publishInfo.Value.Substring(index);

            if (string.IsNullOrEmpty(rest))
            {
                return;
            }

            rest  = rest.RemoveUnnecessaryCharacters();
            index = rest.LastIndexOf(',');

            if (index > 0)
            {
                var publisherText = rest.Substring(0, index);
                var publishDate   = rest.Substring(index);

                if (!string.IsNullOrEmpty(publisherText) && publisherText.Length > 1)
                {
                    importedProject.ProjectMetadata.PublisherText = publisherText.RemoveUnnecessaryCharacters();
                }

                if (!string.IsNullOrEmpty(publishDate) && publishDate.Length > 1)
                {
                    importedProject.ProjectMetadata.PublishDate = publishDate.RemoveUnnecessaryCharacters();
                }
            }
            else
            {
                if (int.TryParse(rest, out var publishDate))
                {
                    importedProject.ProjectMetadata.PublishDate = publishDate.ToString();
                }
                else
                {
                    importedProject.ProjectMetadata.PublisherText = rest;
                }
            }
        }
Exemplo n.º 5
0
        public void Process(dataFieldType dataField, ImportedProject importedProject)
        {
            var publishPlace = dataField.subfield.FirstOrDefault(x => x.code == PublishPlaceCode);

            importedProject.ProjectMetadata.PublishPlace = publishPlace?.Value.RemoveUnnecessaryCharacters();

            var publisherText = dataField.subfield.FirstOrDefault(x => x.code == PublisherTextCode);

            importedProject.ProjectMetadata.PublisherText = publisherText?.Value.RemoveUnnecessaryCharacters();

            importedProject.ProjectMetadata.PublishDate = dataField.subfield.FirstOrDefault(x => x.code == PublishDateCode)?.Value;
        }
Exemplo n.º 6
0
        public void Process(dataFieldType dataField, ImportedProject importedProject)
        {
            var projectSubfield = dataField.subfield.FirstOrDefault(x => x.code == ProjectNameFirstLineCode);

            if (projectSubfield == null)
            {
                return;
            }

            importedProject.ProjectMetadata.Title = projectSubfield.Value;
            var nameSecondLine = dataField.subfield.FirstOrDefault(x => x.code == ProjectNameSecondLineCode);

            if (nameSecondLine != null)
            {
                importedProject.ProjectMetadata.Title = string.Concat(importedProject.ProjectMetadata.Title, " ", nameSecondLine.Value);
            }

            importedProject.ProjectMetadata.Title = importedProject.ProjectMetadata.Title.RemoveUnnecessaryCharacters();
        }
Exemplo n.º 7
0
        public void Process(dataFieldType dataField, ImportedProject importedProject)
        {
            var dateSubfield = dataField.subfield.FirstOrDefault(x => x.code == NotAfterAndNotBeforeCode);

            if (dateSubfield == null)
            {
                return;
            }

            importedProject.ProjectMetadata.OriginDate = dateSubfield.Value;
            var dates = dateSubfield.Value.Split('-');

            if (int.TryParse(dates[0], out var year) && year > 0)
            {
                importedProject.ProjectMetadata.ManuscriptDescriptionData.NotBefore = new DateTime(year, 1, 1);
            }

            if (dates.Length > 1 && dates[1].Length > 0 && int.TryParse(dates[0], out year) && year > 0)
            {
                importedProject.ProjectMetadata.ManuscriptDescriptionData.NotAfter = new DateTime(year, 1, 1);
            }
        }
Exemplo n.º 8
0
        // Method to check if a single data entry in a form is valid.
        public static bool validateField(dataFieldType type, string input)
        {
            // Test the input passes the Regex.
            string pattern = "";

            regexLookup.TryGetValue(type, out pattern);
            if (!String.IsNullOrEmpty(pattern))
            {
                try
                {
                    Regex regex = new Regex(pattern);
                    Match match = Regex.Match(input, pattern);
                    if (!match.Success)
                    {
                        return(false);
                    }
                }
                catch (Exception e)
                {
                    System.Windows.MessageBox.Show(e.Message.ToString(), "Error");
                }
            }



            // Further validation passed Regex...

            switch (type)
            {
            case dataFieldType.username:
                break;

            case dataFieldType.password:
                break;

            case dataFieldType.title:
                break;

            case dataFieldType.firstname:
                break;

            case dataFieldType.middlename:
                break;

            case dataFieldType.lastname:
                break;

            case dataFieldType.dateOfBirth:
                try
                {
                    DateTime dob = DateTime.Parse(input);
                    if (dob.CompareTo(DateTime.Now.AddYears(-DataDelegate.minimumDriverAgePermitted)) > 0)
                    {
                        return(false);
                    }
                }catch (Exception e)
                {
                    // Not a date. :-(
                }

                break;

            case dataFieldType.houseNo:
                break;

            case dataFieldType.streetname:
                break;

            case dataFieldType.suburb:
                break;

            case dataFieldType.city:
                break;

            case dataFieldType.state:
                break;

            case dataFieldType.postcode:
                // Check the input is a real Australian poscode.
                int pcode;
                int.TryParse(input, out pcode);
                if (stateForPostcode(pcode) == "")
                {
                    return(false);
                }
                break;

            case dataFieldType.phone:
                break;

            case dataFieldType.email:
                break;

            case dataFieldType.drivingLicenseNumber:

                break;

            case dataFieldType.drivingLicenseIssuingCountry:
                break;

            case dataFieldType.drivingLicenseIssueDate:
                try
                {
                    DateTime issueDate = DateTime.Parse(input);
                    if (issueDate.CompareTo(DateTime.Now) > 0)
                    {
                        return(false);
                    }
                }catch (Exception e)
                {
                    // Not a date :-(
                }

                break;

            case dataFieldType.drivingLicenseExpiryDate:
                try
                {
                    DateTime dlExpiryDate = DateTime.Parse(input);
                    if (dlExpiryDate.CompareTo(DateTime.Now) < 0)
                    {
                        return(false);
                    }
                }
                catch (Exception e)
                {
                    // Not a date :-(
                }

                break;

            case dataFieldType.drivingLicenseConvictions:
                if (input != "0")
                {
                    return(false);
                }
                break;

            case dataFieldType.creditCardType:
                break;

            case dataFieldType.creditCardNumber:
                break;

            case dataFieldType.creditCardNameOnCard:
                break;

            case dataFieldType.creditCardExpiryDate:

                try
                {
                    string[] date        = input.Split('/');
                    string   monthString = date[0];
                    string   yearString  = date[1];

                    if ((monthString.Length > 2) || (yearString.Length > 2))
                    {
                        return(false);
                    }
                    int month = int.Parse(monthString);
                    int year  = 2000 + int.Parse(date[1]);

                    DateTime expiryDate = new DateTime(year, month, 1);
                    if (expiryDate.CompareTo(DateTime.Now) < 0)
                    {
                        return(false);
                    }
                }catch (Exception e)
                {
                    return(false);
                }



                break;

            case dataFieldType.creditCardSecurityCode:
                break;

            case dataFieldType.vehicleVIN:
                break;

            case dataFieldType.manufacturer:
                break;

            case dataFieldType.model:
                break;

            case dataFieldType.dailyRate:

                Double test = 0;
                input = input.Trim('$');
                if (!double.TryParse(input, out test))
                {
                    return(false);
                }
                break;

            case dataFieldType.vehicleDetails:
                break;

            case dataFieldType.chassisNumber:
                break;


            case dataFieldType.dateOfFirstRegistration:
                break;


            case dataFieldType.suitableForHire:
                break;

            case dataFieldType.scheduledHireBeginDateTime:
                break;

            case dataFieldType.scheduledHireReturnDateTime:
                break;

            case dataFieldType.actualHireBeginDateTime:
                break;

            case dataFieldType.actualHireResturnDateTime:
                break;

            case dataFieldType.odometerReadingPreHire:
                break;

            case dataFieldType.odometerReadingPostHire:
                break;

            case dataFieldType.totalCharge:
                break;



            default:
                return(false);
            }
            return(true);
        }