public ExhibitsPage AddMedia(MediaDataModel mediaDataModel, out bool isEnabled)
        {
            WaitForElementDisplayed(_driver, _mediaLink);
            _mediaLink.Click();
            WaitForElementDisplayed(_driver, _addMediaLink);
            _addMediaLink.Click();
            _driver.SwitchTo().Frame(0);
            WaitForElementDisplayed(_driver, _saveButton);


            TypeInto(_mediaNumber, mediaDataModel.MediaNumber);
            TypeInto(_mediaDescription, mediaDataModel.Description);
            TypeInto(_mediaEvidencePath, mediaDataModel.EvidencePath);
            SelectFromDropdown(_mediaAcquisitionFormat, mediaDataModel.AcquisitionFormat);

            if (mediaDataModel.AcquisitionFormat == "MobileDeviceUfed")
            {
                WaitForElementDisplayed(_driver, _mediaTimeZone);
                // tells that the dropdown is present.
                SelectFromDropdown(_mediaTimeZone, mediaDataModel.TimeZone);
            }

            _driver.SwitchTo().DefaultContent();
            //DO NOT remove this sleep, unless there is a way now to wait for a new media to appear on Exhibits list in other way.
            System.Threading.Thread.Sleep(500);
            isEnabled = true;
            return(new ExhibitsPage(_driver));
        }
        public int InsertMedia(MediaDataModel mediaDataModel)
        {
            const string insertMediaQuery = @"DECLARE @MediaId int;
                                    EXEC spInsertMedia @MediaId output, @MediaNumber, @Description, @EvidencePath, 1, 1;
                                    select @MediaId as MediaId";

            var parameters = new List <SqlParameter>
            {
                new SqlParameter("@MediaNumber", mediaDataModel.MediaNumber),
                new SqlParameter("@Description", mediaDataModel.Description),
                new SqlParameter("@EvidencePath", mediaDataModel.EvidencePath)
            };

            try
            {
                using (var conn = new SqlConnection(ConnectionString))
                {
                    return(conn.SelectColumn <int>(insertMediaQuery, "MediaId", parameters).First());
                }
            }
            catch (Exception e)
            {
                Console.Error.WriteLine("InsertMedia failed [media number = {0}] : {1}", mediaDataModel.MediaNumber, e.Message);
                throw;
            }
        }
        public static void PrepareDbData(MediaDataModel mediaDataModel, AcquisitionFormatType type)
        {
            mediaDataModel.EvidencePath = Path.GetFullPath(_settings["EvidencePath"].Value);
            var details = new ExhibitHelper().PrepareDbData(mediaDataModel.EvidencePath, type);

            _caseId    = details.CaseId;
            _exhibitId = details.ExhibitId;
            _mediaId   = details.MediaId;
        }
        public void AddMediaDetailsAndSave(MediaDataModel mediaDataModel)
        {
            _driver.SwitchTo().Frame(0);
            var action = new Actions(_driver);

            action.MoveToElement(_saveButton).Build().Perform();
            action.Click(_saveButton).Build().Perform();
            _driver.SwitchTo().DefaultContent();
            //_saveButton.Click();
        }
        public ExhibitHelperModel PrepareDbData(string evidencePath, AcquisitionFormatType type)
        {
            var exhibitDataModel = new ExhibitDataModel().GetDefault();
            var caseDataModel    = new CaseDataModel().GetDefault();
            var mediaDataModel   = new MediaDataModel().GetDefault();

            caseDataModel.SiteId = new SiteTable(Config.GetConnectionString(DataStore.Central)).GetSiteId();

            var caseId = Case.InsertCase(caseDataModel.PoliceFileNumber,
                                         caseDataModel.EclCaseNumber,
                                         caseDataModel.Description,
                                         caseDataModel.OfficerInChargeId,
                                         caseDataModel.DistrictId,
                                         caseDataModel.SiteId,
                                         caseDataModel.OffenceTypeId,
                                         caseDataModel.CreatedById);

            var exhibitId = EVE.BLL.Exhibit.CreateExhibit(caseId,
                                                          caseDataModel.CreatedById,
                                                          exhibitDataModel.EclExhibitNumber,
                                                          exhibitDataModel.Description,
                                                          exhibitDataModel.PoliceExhibitNumber);

            mediaDataModel.EvidencePath = Path.GetFullPath(evidencePath);

            var mediaId = Media.InsertMedia(exhibitId,
                                            mediaDataModel.MediaNumber,
                                            mediaDataModel.Description,
                                            mediaDataModel.EvidencePath,
                                            MediaStatus.Defined,
                                            type,
                                            string.Empty);

            return(new ExhibitHelperModel {
                ExhibitId = exhibitId, MediaId = mediaId, CaseId = caseId, CasePoliceNumber = caseDataModel.PoliceFileNumber, EclExhibitNumber = exhibitDataModel.EclExhibitNumber, MediaNumber = mediaDataModel.MediaNumber
            });
        }