コード例 #1
0
        /// <summary>
        /// Busca uma imagem por ID
        /// </summary>
        /// <param name="idIncident"></param>
        /// <param name="idIncidentImage"></param>
        /// <param name="fullImage"></param>
        /// <returns></returns>
        public IncidentAssessmentImage FindImage(int idIncident, int idIncidentImage, bool fullImage = false)
        {
            try
            {
                var @param = new
                {
                    idIncident = idIncident,
                    idIncidentAssessmentImage = idIncidentImage,
                    FullImage = fullImage
                };

                IncidentAssessmentImage _incidentAssessmentImage = this.Conexao
                                                                   .QueryFirstOrDefault <IncidentAssessmentImage>(
                    @"SELECT 
		                                                            Name, 
		                                                            MimeType,
                                                                    case when @fullimage = 1 then [Image] Else null END as [Image],
                                                                    Thumbnail
                                                            FROM IncidentAssessmentImage WITH(NOLOCK)
                                                            WHERE IdIncidentAssessment = @idIncident AND
                                                                  IdIncidentAssessmentImage = @IdIncidentAssessmentImage
                                                            ",
                    param: param,
                    transaction: this.Transacao);


                return(_incidentAssessmentImage);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #2
0
        /// <summary>
        /// Adicionar Imagem ao Incidente
        /// </summary>
        /// <param name="incidentAssessment"></param>
        /// <param name="inicidentImage"></param>
        /// <returns></returns>
        public bool AddImage(string incidentKey, IncidentAssessmentImage inicidentImage)
        {
            bool returnAdd = false;

            try
            {
                //Cria um novo Incident
                IncidentAssessment incidentAssessment = new IncidentAssessment(incidentKey);

                //Busca o incident na base
                incidentAssessment = this._workRepository.IncidentAssessmentRepository.Find(incidentAssessment.Id);

                //se não encontrar o incident retorna false
                if (incidentAssessment == null)
                {
                    return(false);
                }

                if (incidentAssessment.Status != StatusIncidentAssessment.Finalized)
                {
                    //generate thumbanail from image stream
                    if (inicidentImage.Image.Length > 0)
                    {
                        inicidentImage.Thumbnail = GetJpegThumbnail(inicidentImage.Image, 200, 200);
                    }

                    //cria uma transacao
                    this._workRepository.BeginTransaction();

                    //adiciona a imagem
                    returnAdd = this._workRepository.IncidentAssessmentRepository.AddImage(incidentAssessment, inicidentImage);

                    //add history
                    this.CreateHistory(incidentAssessment, this.LogHistoryUser, TypeOperation.AddImage, this._workRepository);

                    //Rollback na transacao
                    this._workRepository.Commit();
                }
            }
            catch (Exception ex)
            {
                //rollback na transacao
                this._workRepository.RollBack();

                throw ex;
            }

            return(returnAdd);
        }
コード例 #3
0
        /// <summary>
        /// Recupera a image adicionada por ID
        /// </summary>
        /// <param name="idIncident"></param>
        /// <param name="idIncidentImage"></param>
        /// <returns></returns>
        public IncidentAssessmentImage GetImage(string key, int idIncidentImage)
        {
            try
            {
                IncidentAssessment IncidentAssessment = new IncidentAssessment(key);

                //Recupera a imagem
                var image = this._workRepository.IncidentAssessmentRepository.FindImage(IncidentAssessment.Id, idIncidentImage, true);

                //Objeto de retorno
                return(image ?? (image = new IncidentAssessmentImage()));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #4
0
        /// <summary>
        /// Adiciona uma image
        /// </summary>
        /// <param name="incidentAssessment"></param>
        /// <param name="inicidentImage"></param>
        /// <returns></returns>
        public bool AddImage(IncidentAssessment incidentAssessment, IncidentAssessmentImage inicidentImage)
        {
            try
            {
                var param = new DynamicParameters();
                param.Add("@IdIncidentAssessment", incidentAssessment.Id, DbType.Int32, ParameterDirection.Input);
                param.Add("@Name", inicidentImage?.Name, DbType.String, ParameterDirection.Input, 200);
                param.Add("@MimeType", inicidentImage?.MimeType, DbType.String, ParameterDirection.Input, 50);
                param.Add("@Image", inicidentImage?.Image, DbType.Binary, ParameterDirection.Input);
                param.Add("@Thumbnail", inicidentImage?.Thumbnail, DbType.Binary, ParameterDirection.Input);

                string sqlStatement = @"INSERT INTO IncidentAssessmentImage 
                                            (IdIncidentAssessment, Name, MimeType, Image, Thumbnail)                                           
                                        VALUES 
                                            (@IdIncidentAssessment, @Name, @MimeType, @Image, @Thumbnail) ";

                return(this.Conexao.Execute(sqlStatement, param: param, transaction: this.Transacao) > 0);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #5
0
        public async Task <IHttpActionResult> AddIncidentAssessmentImage([FromUri, Required(AllowEmptyStrings = false)] string key, [FromBody] SendImage image)
        {
            byte[] ImageBinaryContent;


            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            else if (image == null)
            {
                return(BadRequest(""));
            }


            if (image.File.InputStream.CanSeek)
            {
                image.File.InputStream.Seek(0, SeekOrigin.Begin);
            }

            using (var br = new BinaryReader(image.File.InputStream))
            {
                ImageBinaryContent = br.ReadBytes(image.File.ContentLength);
            }

            IncidentAssessmentImage incidentImage = new IncidentAssessmentImage()
            {
                MimeType = image.File.ContentType,
                Name     = image.File.FileName,
                Image    = ImageBinaryContent
            };

            bool result = await Task.Run(() => this._incidentAssessmentService.AddImage(key, incidentImage));

            return(Ok(result));
        }