/// <summary>
        /// Search the pictures
        /// </summary>
        /// <param name="serviceOrderId">Service order identifier</param>
        /// <param name="inspectionReportItemId">Id of inspection report</param>
        /// <param name="rowSize">Row size</param>
        /// <returns>Picture results</returns>
        public static List<RowPictureCollection> SearchPicturesInspectionReport(Guid serviceOrderId, int rowSize, Guid inspectionReportItemId)
        {
            List<RowPictureCollection> result = new List<RowPictureCollection>();

            using (VestalisEntities ctx = new VestalisEntities())
            {

                //Get the pictures in a specific page
                var tempResult = (from picture in ctx.Pictures
                                  where picture.ServiceOrderId == serviceOrderId && picture.IsDeleted == false
                                  && picture.InspectionReportItemId == inspectionReportItemId
                                  orderby picture.CreationDate
                                  select new { picture.PictureId, picture.PictureFile }).ToList();

                //if exists data, the system makes the pagination
                if (tempResult != null)
                {
                    int rowsCount = (int)Math.Ceiling((double)tempResult.Count / (double)rowSize);

                    for (int i = 0; i < rowsCount; i++)
                    {
                        int currentIndex = i * rowSize;
                        RowPictureCollection currentRow = new RowPictureCollection();
                        currentRow.RowIdentifier = i + 1;
                        //set the paginated colletion
                        foreach (var tempPicture in tempResult.Skip(currentIndex).Take(rowSize))
                        {
                            PictureSearchModelItem pictureSearchModelItem = new PictureSearchModelItem();
                            pictureSearchModelItem.PictureId = tempPicture.PictureId;
                            Image pictureImage = ByteArrayToImage(tempPicture.PictureFile);
                            pictureSearchModelItem.SizeHeight = pictureImage.Height;
                            pictureSearchModelItem.SizeWidth = pictureImage.Width;
                            currentRow.PictureCollection.Add(pictureSearchModelItem);
                        }
                        result.Add(currentRow);
                    }

                }
            }

            return result;
        }
        /// <summary>
        /// Search the pictures for showing in the inspection report grid
        /// </summary>
        /// <param name="serviceOrderId">Service order id</param>
        /// <param name="inspectionReportItemId">Inspection report id</param>
        /// <returns>PictureGridModel</returns>
        public static PictureGridModel SearchPictureGridInspectionReport(Guid serviceOrderId, Guid inspectionReportItemId)
        {
            PictureGridModel result = new PictureGridModel();

            using (VestalisEntities context = new VestalisEntities())
            {
                //Retrieve the total number of pictures
                result.PictureCount = context.Pictures.Where(data => data.ServiceOrderId == serviceOrderId
                    && data.InspectionReportItemId == inspectionReportItemId && data.IsDeleted == false).Count();

                //Get the pictures in a specific page
                var tempResult = (from picture in context.Pictures
                                  where picture.ServiceOrderId == serviceOrderId && picture.IsDeleted == false
                                  && picture.InspectionReportItemId == inspectionReportItemId
                                  orderby picture.CreationDate
                                  select new { picture.PictureId, picture.PictureFile }).Take(3).ToList();

                //if exists data, the system makes the pagination
                if (tempResult != null)
                {
                    //set the paginated colletion
                    foreach (var tempPicture in tempResult)
                    {
                        PictureSearchModelItem pictureSearchModelItem = new PictureSearchModelItem();
                        pictureSearchModelItem.PictureId = tempPicture.PictureId;
                        Image pictureImage = ByteArrayToImage(tempPicture.PictureFile);
                        pictureSearchModelItem.SizeHeight = pictureImage.Height;
                        pictureSearchModelItem.SizeWidth = pictureImage.Width;
                        result.PictureList.Add(pictureSearchModelItem);
                    }
                }
            }

            return result;
        }