I need a program to be written which imports a XML files into an Microsoft SQL server 2012 (Express) DB.
The program needs to be written in C# with .NET 4.0 or 4.5.
The XML files contains holidays and they need to be inserted into multiple tables. Database schema is provided on request. XML files are found on a web address (available on request).
This is whats needs to be done.
There are 2 types of files.
1. Seeder file, this file contains the whole feed of all items.
2. Update File, this file contains all alterations to the master database from a specific time stamp.
Per record found in the XML the following needs to be done:
Check type of record, (Update/Delete/Insert) if type cannot be found handle as a Update/Insert
Check if Accommodation is found in Accommodation, table, if not insert, if found update
Check if country is found in country table, if not insert
Check if region is found in country table, if not insert
Check if city is found in city table, if not insert
Check if tour operator is found in tourOperator table, if not insert
Check if category is found in Category table, if not insert
Check if subcategory is found in SubCategory table, if not insert
Check if trip is found in Trip table , if not insert, if found update with new values from XML and other tables
Find trip in Trip table, if found delete
Not every XML record contains the same fields. If fields are found they need to be inserted, if not they need to be left empty.
Inserts/Updates per table as shown in the DB schema.
The program needs to be written in C# with .NET 4.0 or 4.5 and well documented.
Delivery will be the source code for this written/available in Visual Studio 2010.
The code should be written Object oriented and in such a way that it can be extended later on.
Before the final payment the code will be audited and should be shown working/delivered.
It looks to be an interesting job. However, the XML link may please be provided to analyse it in more detail. It should also be conveyed whether the program needs to be a windows service or a desktop application?