示例#1
0
        private bool MusicianExists(RateMusicalProject rateMusicalProject)
        {
            MusicianRepository musicianRepository = new MusicianRepository();
            var retorno = musicianRepository.Get(rateMusicalProject.musician_id);

            return(retorno != null);
        }
示例#2
0
        internal RateMusicalProject GetByUserAndProjectId(int musicalProjectId)
        {
            int userId = Utitilities.GetLoggedUserId();

            RateMusicalProject retorno = _rateContributionBusiness.GetByUserAndProjectId(musicalProjectId, userId);

            return(retorno);
        }
示例#3
0
        private void Validate(RateMusicalProject rateMusicalProject)
        {
            ValidateMusicianId(rateMusicalProject);
            ValidateMusicalProjectId(rateMusicalProject);

            if (rateMusicalProject.rate_value <= 0 || rateMusicalProject.rate_value > 5)
            {
                throw ValidateException("O voto deve ser de 1 a 5!");
            }
        }
示例#4
0
        private void ValidateMusicianId(RateMusicalProject rateMusicalProject)
        {
            if (rateMusicalProject.musician_id == 0)
            {
                throw ValidateException("O músico deve ser selecionado!");
            }

            bool targetIdExists = MusicianExists(rateMusicalProject);

            if (!targetIdExists)
            {
                throw ValidateException("O ID deste usuario é inexistente!");
            }
        }
示例#5
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!");
            }
        }
        public IHttpActionResult Get([FromUri] int id)
        {
            RateMusicalProject      rateMusicalProject = null;
            RateMusicalProjectModel rateMusicianModel  = new RateMusicalProjectModel();

            try
            {
                rateMusicalProject = rateMusicianModel.GetByUserAndProjectId(musicalProjectId: id);
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }

            return(Ok(rateMusicalProject));
        }
        public IHttpActionResult Create([FromBody] RateMusicalProjectModel rate_musical_project)
        {
            RateMusicalProject rateMusicalProject = null;

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

            return(Created("api", rateMusicalProject));
        }
示例#8
0
        public RateMusicalProject Create(RateMusicalProject rateMusicalProject)
        {
            PopulateDefaultProperties(rateMusicalProject);

            Validate(rateMusicalProject);

            RateMusicalProject objExistente = GetByUserAndProjectId(rateMusicalProject.musical_project_id, rateMusicalProject.musician_id);
            RateMusicalProject retorno      = null;

            if (objExistente != null && objExistente.id > 0)
            {
                rateMusicalProject.id = objExistente.id;
                retorno = _rateMusicalProjectRepository.Update(rateMusicalProject);
            }
            else
            {
                retorno = _rateMusicalProjectRepository.Create(rateMusicalProject);
            }

            retorno = _rateMusicalProjectRepository.Create(rateMusicalProject);

            return(retorno);
        }
示例#9
0
 private void PopulateDefaultProperties(RateMusicalProject rateMusicalProject)
 {
     rateMusicalProject.musician_id = Utitilities.GetLoggedUserId();
 }