private void worker_DoWork_XML(object sender, DoWorkEventArgs e) { try { Total = _selectedItems.Length; foreach (XElement node in _selectedItems) { //exit if the user cancels if (_isCancelationPending == true) { return; } Movie movie = new Movie(); movie.Title = Util.GetElementValue(node, "TitreVF"); movie.OriginalTitle = Util.GetElementValue(node, "TitreVO"); int intValue; if (int.TryParse(Util.GetElementValue(node, "Duree"), out intValue) == true) { movie.Runtime = intValue; } if (int.TryParse(Util.GetElementValue(node, "Note"), out intValue) == true) { movie.MyRating = intValue; } movie.Description = Util.GetElementValue(node, "Synopsis"); movie.Comments = Util.GetElementValue(node, "Commentaires"); movie.FileFormat = MovieServices.GetFormat(Util.GetElementValue(node, "Support")); movie.FilePath = Util.GetElementValue(node, "MediaChemin"); movie.Media = MediaServices.Get("None", true); DateTime dateValue; if (DateTime.TryParse(Util.GetElementValue(node, "EntreeDate"), out dateValue) == true) { movie.AddedDate = dateValue; } if (Util.GetElementValue(node, "FilmVu") == "OUI") { movie.Watched = true; } #region Types string allType = Util.GetElementValue(node, "Genre"); string[] types = allType.Split('/'); foreach (string type in types) { MovieServices.AddTypes(type, movie); } #endregion #region Artist string allArtist = Util.GetElementValue(node, "Acteurs"); string[] artists = allArtist.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); foreach (string artist in artists) { string fullName = artist.Trim(); if (string.IsNullOrWhiteSpace(fullName) == false) { bool isNew; Artist newArtist = ArtistServices.Get(fullName, out isNew); ArtistServices.SaveArtist(newArtist, movie); } } #endregion #region Director string allDirector = Util.GetElementValue(node, "Realisateurs"); string[] directors = allDirector.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); foreach (string director in directors) { string fullName = director.Trim(); if (string.IsNullOrWhiteSpace(fullName) == false) { bool isNew; Artist newArtist = ArtistServices.Get(fullName, out isNew); ArtistServices.AddDirector(new[] { newArtist }, movie); } } #endregion #region Audio string allAudio = Util.GetElementValue(node, "Audio"); string[] audios = allAudio.Split(','); List <Audio> audioList = new List <Audio>(); foreach (string audio in audios) { string cleanAudio = audio.Trim(); if (string.IsNullOrWhiteSpace(cleanAudio) == false) { string[] detailAudio = cleanAudio.Split(' '); audioList.Add(MovieServices.GetMovieAudio(detailAudio[0], detailAudio[1])); } } AudioServices.Add(audioList, movie); #endregion #region Sub string allSubs = Util.GetElementValue(node, "SousTitres"); string[] subs = allSubs.Split(','); SubTitleServices.Add(subs, movie); #endregion #region Link LinksServices.AddLinks(Util.GetElementValue(node, "BAChemin"), movie, true); #endregion Dal.GetInstance.AddMovie(movie); _intAddedItem++; Current++; } } catch (Exception ex) { Util.LogException(ex); } }