示例#1
0
        public ResponseBase ConfirmNewMusic(Music music, Model.File WAVUpload,
                                            Model.File MP3Upload, ConfirmTypeAction confirmAction, string DeclineReason)
        {
            ResponseBase res = new ResponseBase();

            try
            {
                // delete from confirmation table
                Confirmation conf = ((ConfirmationRepository)this._rep)
                                    .GetByEntityId(music.ID.ToString());

                if (conf != null)
                {
                    this._rep.Delete(conf);

                    switch (confirmAction)
                    {
                    case ConfirmTypeAction.Ok:
                        music.Status = MusicActiveStatus.Public;

                        // update async artist report by updating his pdf file
                        _pdfService.ArtistAddMusicAsync(DateTime.Now, music.HebrewName,
                                                        music.MusicComposer, music.MusicPerformer, music.Exceptions, music.MusicWriter,
                                                        music.ArtistID, WebConf.FSBaseRoute);
                        break;

                    case ConfirmTypeAction.Decline:
                        _emailService.DeclineNewUpdateMusic(music.Artist.User.Email, DeclineReason, music.HebrewName);
                        break;

                    case ConfirmTypeAction.Block:
                        music.Status = MusicActiveStatus.Blocked;
                        break;
                    }

                    var resUpDateOK = _MusicSrv.Update(music, music.ID, WAVUpload, MP3Upload);
                    this._uow.Commit();
                    res.Success = true;
                }
                else
                {
                    res.Message = "לא הצלחנו לאתר נתונים";
                    res.Success = false;
                }
            }
            catch (Exception e)
            {
                res.Message = e.Message;
                res.Success = false;
            }

            return(res);
        }
示例#2
0
        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);
        }