public ResponseBase Add(Music music, Model.File WAVFile, Model.File MP3File) { var res = new ResponseBase(); music.CreateDate = DateTime.Now; res.Success = true; if (music.Tags?.FirstOrDefault() != null) { var tgRes = TagService.GetAll(); res.Success = tgRes.Success; if (res.Success) { music.Tags = tgRes.Entities .Where(dbTag => music.Tags.Any(tag => tag.ID == dbTag.ID)) .ToList(); } else { res.Message = tgRes.Message; } } if (music.Artist?.User?.UserName != null) { music.Artist = _usersRep.GetArtistByName(music.Artist.User.UserName)?.Artist; if (music.Artist == null) { res.Success = false; res.Message = "לא נמצא אמן עם שם זה"; } } if (res.Success && WAVFile != null) { WAVFile.UserId = music.Artist.Id; res = FsService.StoreFile(WAVFile); if (res.Success) { music.WAVFile = (res as EntityResponse <Model.File>).Entity; music.WAVFileID = music.WAVFile.FileId; } } if (res.Success && MP3File != null) { MP3File.UserId = music.Artist.Id; res = FsService.StoreFile(MP3File); if (res.Success) { music.MP3File = (res as EntityResponse <Model.File>).Entity; music.MP3FileID = music.MP3File.FileId; } } if (res.Success) { if (music.MusicLength == TimeSpan.Zero) { res.Success = false; res.Message = "יש להזין אורך יצירה"; } } if (res.Success) { // update async artist report by updating his pdf file _pdfService.ArtistAddMusicAsync(DateTime.Now, music.HebrewName, music.MusicComposer, music.MusicPerformer, music.Exceptions, music.MusicWriter, music.Artist.Id, WebConf.FSBaseRoute); res = base.Add(music); } return(res); }
public ResponseBase Update(Music musicData, int musicId, Model.File WAVFile, Model.File MP3File) { ResponseBase res = this.GetByID(musicId); if (res.Success) { var dbMusic = (res as EntityResponse <Music>).Entity; dbMusic.UpdateDate = DateTime.Now; dbMusic.BPM = musicData.BPM; dbMusic.Comment = musicData.Comment; dbMusic.Copyrights = musicData.Copyrights; dbMusic.CostLevel = musicData.CostLevel; dbMusic.EnglishName = musicData.EnglishName; dbMusic.Exceptions = musicData.Exceptions; dbMusic.HebrewName = musicData.HebrewName; dbMusic.MusicComposer = musicData.MusicComposer; dbMusic.MusicLength = musicData.MusicLength; dbMusic.MusicPerformer = musicData.MusicPerformer; dbMusic.MusicWriter = musicData.MusicWriter; dbMusic.SongText = musicData.SongText; dbMusic.Status = musicData.Status; musicData.Tags = musicData.Tags ?? new List <Tag>(); var addTagList = musicData.Tags .Where(tg => !dbMusic.Tags.Any(dbTg => dbTg.ID == tg.ID)) ?.Select(tg => tg.ID); if (addTagList != null && addTagList.Any()) { res = TagService.GetTagList(addTagList); if (res.Success) { dbMusic.Tags.AddRange((res as EntityAllResponse <Tag>).Entities); } } if (res.Success) { dbMusic.Tags.RemoveAll(tg => !musicData.Tags.Any(x => x.ID == tg.ID)); if (WAVFile != null) { res = FsService.StoreFile(WAVFile); if (res.Success) { if (dbMusic.WAVFile != null) { dbMusic.WAVFile.version = (res as EntityResponse <Model.File>).Entity.version; } else { dbMusic.WAVFile = (res as EntityResponse <Model.File>).Entity; dbMusic.WAVFileID = dbMusic.WAVFile.FileId; } } } } if (res.Success && MP3File != null) { res = FsService.StoreFile(MP3File); if (res.Success) { if (dbMusic.MP3File != null) { dbMusic.MP3File.version = (res as EntityResponse <Model.File>).Entity.version; } else { dbMusic.MP3File = (res as EntityResponse <Model.File>).Entity; dbMusic.MP3FileID = dbMusic.MP3File.FileId; } } } if (res.Success) { res = base.Update(dbMusic); } } return(res); }