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)); }
public void Process(dataFieldType dataField, ImportedProject importedProject) { var genreSubfield = dataField.subfield.FirstOrDefault(x => x.code == GenreCode); if (genreSubfield != null) { importedProject.LiteraryGenres.Add(genreSubfield.Value); } }
public void Process(dataFieldType dataField, ImportedProject importedProject) { var keywordSubfield = dataField.subfield.FirstOrDefault(x => x.code == KeywordCode); if (keywordSubfield != null) { importedProject.Keywords.Add(keywordSubfield.Value); } }
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; } } }
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; }
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(); }
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); } }
// 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); }