Beispiel #1
0
        public MusicalProject Get(int id)
        {
            MusicalProjectRepository musicalProjectRepository = new MusicalProjectRepository();
            MusicalProject           retorno = musicalProjectRepository.Get(id);

            return(retorno);
        }
Beispiel #2
0
        internal MusicalProject Get(int id)
        {
            MusicalProjectBusiness musicalProjectBusiness = new MusicalProjectBusiness();
            MusicalProject         retorno = musicalProjectBusiness.Get(id);

            return(retorno);
        }
Beispiel #3
0
        public MusicalProject Create(MusicalProject musicalProject)
        {
            musicalProject.created_at = DateTime.Now;
            PopulateDefaultProperties(musicalProject);

            Validate(musicalProject);

            MusicalProjectRepository musicalProjectRepository = new MusicalProjectRepository();
            var retorno = musicalProjectRepository.Create(musicalProject);

            return(retorno);
        }
Beispiel #4
0
        private void ValidateMusicalProjectId(RateMusicalProject rateMusicalProject)
        {
            if (rateMusicalProject.musical_project_id == 0)
            {
                throw ValidateException("Id do projeto está inválido!");
            }

            MusicalProject musicalProject = GetMusicalProjectById(rateMusicalProject.musical_project_id);

            if (rateMusicalProject.musician_id == musicalProject.owner_id)
            {
                throw ValidateException("Você não pode votar em seu proprio projeto musical!");
            }
        }
Beispiel #5
0
        public IHttpActionResult Get([FromUri] int id)
        {
            MusicalProject project = null;

            try
            {
                MusicalProjectModel model = new MusicalProjectModel();
                project = model.Get(id);
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }

            return(Ok(project));
        }
Beispiel #6
0
        public IHttpActionResult Create([FromBody] MusicalProjectModel musical_project)
        {
            MusicalProject musicalProject = null;

            try
            {
                musicalProject = musical_project.Create();
            }
            catch (ValidateException ex)
            {
                return(UnprocessableEntity(ex.Message));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }

            return(Created("api", musicalProject));
        }
Beispiel #7
0
        private void Validate(MusicalProject musicalProject)
        {
            if (string.IsNullOrEmpty(musicalProject.name))
            {
                throw ValidateException("Insira o nome do seu projeto!");
            }

            if (musicalProject.name.Length > 100)
            {
                throw ValidateException("O tamanho máximo do nome é 100 caracteres!");
            }

            bool genderExiste = VerifyIfGenreExists(musicalProject.musical_genre_id);

            if (musicalProject.musical_genre_id == 0 || !genderExiste)
            {
                throw ValidateException("Este genero musical não existe!");
            }

            bool musicianOwnerExiste = VerifyIfMusicianExists(musicalProject.owner_id);

            if (!musicianOwnerExiste)
            {
                throw ValidateException("O código do músico está errado, entre em contato!");
            }

            if (musicalProject.created_at == null)
            {
                throw ValidateException("Data de criação deve ser preenchida!");
            }

            if (musicalProject.updated_at == null)
            {
                throw ValidateException("Data de atualização deve ser preenchida!");
            }
        }
Beispiel #8
0
 private void PopulateDefaultProperties(MusicalProject musicalProject)
 {
     musicalProject.owner_id   = Utitilities.GetLoggedUserId();
     musicalProject.updated_at = DateTime.Now;
 }
Beispiel #9
0
        internal Contribution Create()
        {
            Mock();

            Contribution retorno = null;

            using (AudioHelper audioHelper = new AudioHelper())
            {
                FileHandling(audioHelper);

                MusicalProjectRepository musicalProjectRepository = new MusicalProjectRepository();
                MusicalProject           musicalProject           = musicalProjectRepository.Get(musical_project_id);

                MusicalProjectInstrumentBusiness musicalProjectInstrumentBusiness = new MusicalProjectInstrumentBusiness();
                MusicalProjectInstrument         musicalProjectInstrument         = new MusicalProjectInstrument
                {
                    instrument_id      = instrument_id,
                    is_base_instrument = base_instrument,
                    musical_project_id = musical_project_id
                };

                var projectInstruments = musicalProjectInstrumentBusiness.GetByMusicalProject(musical_project_id);
                musicalProjectInstrument = projectInstruments.Where(p => p.instrument_id == instrument_id).FirstOrDefault();

                if (projectInstruments is null || musicalProjectInstrument == null)
                {
                    musicalProjectInstrument = musicalProjectInstrumentBusiness.Create(musicalProjectInstrument);
                }

                timing           = song.TotalTime.ToString(@"hh\:mm\:ss");
                musician_id      = Utitilities.GetLoggedUserId();
                musical_genre_id = musicalProject.musical_genre_id;
                musical_project_instrument_id = musicalProjectInstrument.id;

                if (base_instrument)
                {
                    status_id = eContributionStatus.Approved;
                    type_id   = eContributionType.PrivateContribution;
                }
                else
                {
                    status_id = eContributionStatus.WaitingForApproval;
                    type_id   = contribution_type_id;
                }

                ContributionBusiness contributionBusiness = new ContributionBusiness();

                var contributions    = contributionBusiness.GetByMusicalProjectId(musical_project_id);
                var userContribution = contributions.Where(c => c.musician_id == musician_id && c.musical_project_instrument_id == musical_project_instrument_id).FirstOrDefault();

                if (userContribution != null)
                {
                    throw new ValidateException("You have already contribuited to this insturment on this project");
                }

                retorno = contributionBusiness.Create(this);

                string keyName = string.Format("{0}{1}", retorno.id.ToString(), song.Extension);

                string audioPath = GetAudioPath();

                string baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
                string folderSave    = Path.Combine(baseDirectory, "UploadedAudios");

                musicalProjectInstrumentBusiness.SaveAudio(audioPath, folderSave, retorno.id);

                //audioHelper.UploadToAmazon(keyName);
            }

            return(retorno);
        }