Exemplo n.º 1
0
        /// <summary>
        /// Retrieves the person event asynchronous.
        /// </summary>
        /// <param name="dateTime">The date time.</param>
        /// <param name="personId">The person identifier.</param>
        /// <param name="personType">The person type.</param>
        /// <returns>The person events.</returns>
        public async Task<EventHistory> RetrievePersonHistoryAsync(string dateTime, string personId, PersonType personType)
        {
            var workstation = DIContainer.Instance.Resolve<Workstation>();

            ListResult<EventHistory> eventData = new ListResult<EventHistory>();
            var eventHistory = new EventHistory();

            var personTypeId = personType.RetrievePersonTypeId();

            var command = this.Database.GetStoredProcCommand(RetrieveGangwayHistoryByPersonIdStoredProcedure)
                .AddParameter(PersonTypeId, DbType.Int16, personTypeId)
                .AddParameter(PersonIds, DbType.String, personId)
                .AddParameter(ShipIds, DbType.String, workstation.Ship.ShipId)
                .AddParameter(SortColumn1, DbType.String, AddedDate)
                .AddParameter(SortTypeColumn1, DbType.String, DESC)
                .AddParameter(PageNumber, DbType.Int32, OfflineConstants.DefaultPageNumber)
                .AddParameter(PageSize, DbType.Int32, OfflineConstants.DefaultPageSize);

            var list = await this.ExecuteReaderAsync(command, GangwayHistoryMapper.MapGangwayHistory);

            eventHistory.AssignGangwayEvents(PersonEventHistoryMapper.MapPersonHistory(list.Items));
            eventData.Items.Add(eventHistory);
            var data = eventData != null ? eventData.Items.FirstOrDefault() : new EventHistory();
            return await Task.FromResult(data);
        }
        /// <summary>
        /// Uploads photo asynchronous.
        /// </summary>
        /// <param name="personType">The person type.</param>
        /// <param name="photo">The byte array of photo.</param>
        /// <param name="personId">Person Id.</param>
        /// <returns>
        /// Upload media Items.
        /// </returns>
        public async Task<string> UploadPhotosAsync(PersonType personType, byte[] photo, string personId)
        {
            string fileName = string.Format("\\{0}{1}", personId, CommonConstants.ImageFormat);
            var personTypeId = personType.RetrievePersonTypeId();
            var command = this.Database.GetStoredProcCommand(GenerateMediaItemIdStoredProcedure)
                .AddParameter(PersonTypeId, DbType.Int16, personTypeId);
            var mediaAddress = await this.ExecuteReaderAsync(command, PhotoCaptureDataMapper.MapMediaItemAddress);
            var filePath = string.Concat(mediaAddress.Split(',')[1], fileName);
            using (FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate))
            {
                fs.Write(photo, 0, photo.Length);
            }

            if (!string.IsNullOrEmpty(mediaAddress))
            {
                var dbCommand = this.Database.GetStoredProcCommand(UpdatePersonMediaItemStoredProcedure)
                   .AddParameter(PersonTypeId, DbType.Int16, personTypeId)
                   .AddParameter(PersonId, DbType.Int32, personId)
                    .AddParameter(MediaTypeId, DbType.Int16, MediaTypeIdValue)
                   .AddParameter(MediaItemId, DbType.Int32, personId)
                .AddParameter(MediaFileExtension, DbType.String, CommonConstants.ImageFormat);
                await this.ExecuteNonQueryAsync(dbCommand);
            }

            return string.Concat(personId, CommonConstants.Comma, filePath);
        }