Example #1
0
 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));
 }
Example #2
0
        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);
                }
            }
        }