public string ToSQLInsert() { return(string.Format("INSERT INTO `{0}` (`artist_id`, `name`, `creation_date`, `official_site`, `reviewer_id`, `countries`, `similar_artists_nodes`, `additionnal_similar_artists_names`, `sorting_weight`) VALUES ('{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}');" , SQLTableName, Id, Name.ToCamelCase().GetSafeMySQL(), CreationDate.ToUnixTimeStamp(), OfficialUrl, Reviewer.Id , Countries.Aggregate(string.Empty, (seed, entry) => seed + "|" + entry.CountryName.ToCamelCase().GetSafeMySQL()).Trim('|') , SimilarArtists.Aggregate(string.Empty, (seed, entry) => seed + "|" + entry.Id).Trim('|') , RawSimilarArtists.Aggregate(string.Empty, (seed, entry) => seed + "|" + entry.ToCamelCase().GetSafeMySQL()).Trim('|') , SortWeight)); }
public void UpdateInfos(IList <Country> countries, string officialUrl, DateTime lastUpdate, Reviewer reviewer, IList <string> similarArtists) { #region parameters validation if (reviewer == null) { throw new ArgumentException("Artist update : 'reviewer' cannot be null nor empty"); } if (lastUpdate == DateTime.MinValue) { throw new ArgumentException("Artist update : 'lastUpdate' must be a valid date"); } #endregion //if older version than the current one, return without doing anything if (lastUpdate < LastUpdate) { return; } foreach (var country in countries) { if (!Countries.Contains(country)) { Countries.Add(country); } } LastUpdate = lastUpdate; Reviewer = reviewer; if (!string.IsNullOrEmpty(officialUrl)) { OfficialUrl = officialUrl; } //Add new similar artists, avoiding duplicates foreach (var similarArtist in similarArtists) { if (!RawSimilarArtists.Contains(similarArtist) && similarArtist != Name) { RawSimilarArtists.Add(similarArtist); } } }