示例#1
0
        /// <summary>
        /// GetEntitlements Asynchronous call back method
        /// </summary>
        /// <param name="sender">Rest handler class</param>
        /// <param name="eventArgs">callback event arguments</param>
        private void GetEntitlementsAsyncCompleted(object sender, AsyncCallCompletedEventArgs eventArgs)
        {
            EntitlementCallCompletedEventArgs <Intuit.Ipp.Data.EntitlementsResponse> entitlementCallCompletedEventArgs = new EntitlementCallCompletedEventArgs <EntitlementsResponse>();

            if (eventArgs.Error == null)
            {
                try
                {
                    IEntitySerializer    responseSerializer = CoreHelper.GetSerializer(this.serviceContext, false);
                    EntitlementsResponse restResponse       = (EntitlementsResponse)responseSerializer.Deserialize <EntitlementsResponse>(eventArgs.Result);
                    entitlementCallCompletedEventArgs.EntitlementsResponse = restResponse;
                    this.serviceContext.IppConfiguration.Logger.CustomLogger.Log(Diagnostics.TraceLevel.Info, "Finished Executing event GetEntitlementsAsync in AyncService object.");

                    // change Response Serialization Format back to Config value
                    serviceContext.IppConfiguration.Message.Response.SerializationFormat = orginialSerializationFormat;

                    this.OnGetEntilementAsyncCompleted(this, entitlementCallCompletedEventArgs);
                }
                catch (SystemException systemException)
                {
                    IdsException idsException = new IdsException(systemException.Message);
                    this.serviceContext.IppConfiguration.Logger.CustomLogger.Log(TraceLevel.Error, idsException.ToString());
                    entitlementCallCompletedEventArgs.Error = idsException;
                    this.OnGetEntilementAsyncCompleted(this, entitlementCallCompletedEventArgs);
                }
            }
            else
            {
                entitlementCallCompletedEventArgs.Error = eventArgs.Error;
                this.OnGetEntilementAsyncCompleted(this, entitlementCallCompletedEventArgs);
            }
        }
示例#2
0
        /// <summary>
        /// call back method for asynchronously Executing a Report
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="eventArgs">The <see cref="Intuit.Ipp.Core.AsyncCallCompletedEventArgs"/> instance containing the event data.</param>
        private void ExecuteReportAsynCompleted(object sender, AsyncCallCompletedEventArgs eventArgs)
        {
            ReportCallCompletedEventArgs <Report> reportCallCompletedEventArgs = new ReportCallCompletedEventArgs <Report>();

            if (eventArgs.Error == null)
            {
                try
                {
                    IEntitySerializer responseSerializer = CoreHelper.GetSerializer(this.serviceContext, false);
                    string            response           = eventArgs.Result;
                    if (!response.StartsWith("{\"Report\":"))
                    {
                        response = "{\"Report\":" + response + "}";
                    }
                    IntuitResponse restResponse = (IntuitResponse)responseSerializer.Deserialize <IntuitResponse>(response);
                    reportCallCompletedEventArgs.Report = restResponse.AnyIntuitObject as Report;
                    this.serviceContext.IppConfiguration.Logger.CustomLogger.Log(Diagnostics.TraceLevel.Info, "Finished Executing event Execute ReportAsynCompleted in AsyncService object.");
                    this.OnExecuteReportAsyncCompleted(this, reportCallCompletedEventArgs);
                }
                catch (SystemException systemException)
                {
                    IdsException idsException = CreateIdsException(systemException);
                    this.serviceContext.IppConfiguration.Logger.CustomLogger.Log(TraceLevel.Error, idsException.ToString());
                    reportCallCompletedEventArgs.Error = idsException;
                    this.OnExecuteReportAsyncCompleted(this, reportCallCompletedEventArgs);
                }
            }
            else
            {
                reportCallCompletedEventArgs.Error = eventArgs.Error;
                this.OnExecuteReportAsyncCompleted(this, reportCallCompletedEventArgs);
            }
        }
示例#3
0
        /// <summary>
        /// call back method for asynchronously Executing a Report
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="eventArgs">The <see cref="Intuit.Ipp.Core.AsyncCallCompletedEventArgs"/> instance containing the event data.</param>
        private void AddTaxCodeAsyncCompleted(object sender, AsyncCallCompletedEventArgs eventArgs)
        {
            GlobalTaxServiceCallCompletedEventArgs <Intuit.Ipp.Data.TaxService> taxServiceCallCompletedEventArgs = new GlobalTaxServiceCallCompletedEventArgs <Intuit.Ipp.Data.TaxService>();

            if (eventArgs.Error == null)
            {
                try
                {
                    IEntitySerializer responseSerializer = CoreHelper.GetSerializer(this.serviceContext, false);
                    IntuitResponse    restResponse       = (IntuitResponse)responseSerializer.Deserialize <IntuitResponse>(eventArgs.Result);
                    taxServiceCallCompletedEventArgs.TaxService = restResponse.AnyIntuitObject as Intuit.Ipp.Data.TaxService;
                    this.serviceContext.IppConfiguration.Logger.CustomLogger.Log(Diagnostics.TraceLevel.Info, "Finished Executing event AddTaxCodeAsyncCompleted in AyncService object.");
                    this.OnAddTaxCodeAsyncCompleted(this, taxServiceCallCompletedEventArgs);
                }
                catch (SystemException systemException)
                {
                    IdsException idsException = CreateIdsException(systemException);
                    this.serviceContext.IppConfiguration.Logger.CustomLogger.Log(TraceLevel.Error, idsException.ToString());
                    taxServiceCallCompletedEventArgs.Error = idsException;
                    this.OnAddTaxCodeAsyncCompleted(this, taxServiceCallCompletedEventArgs);
                }
            }
            else
            {
                taxServiceCallCompletedEventArgs.Error = eventArgs.Error;
                this.OnAddTaxCodeAsyncCompleted(this, taxServiceCallCompletedEventArgs);
            }
        }
示例#4
0
        /// <summary>
        /// Deserializes an entity from serialization data.
        /// </summary>
        /// <typeparam name="TEntity">The type of the entity.</typeparam>
        /// <typeparam name="TSerializationData">The type of the serialization data, usually a byte array or a string.</typeparam>
        /// <param name="serializer">The serializer which to deserialize the entity.</param>
        /// <param name="content">The serialized data for the entity.</param>
        /// <returns>The object deserialized from the byte array.</returns>
        /// <exception cref="ArgumentNullException">Parameter <paramref name="serializer"/> is null.</exception>
        public static TEntity Deserialize <TEntity, TSerializationData>(this IEntitySerializer <TEntity, TSerializationData> serializer, TSerializationData content)
        {
            if (serializer == null)
            {
                throw new ArgumentNullException(nameof(serializer));
            }

            return(serializer.Deserialize(content, typeof(TEntity)));
        }
示例#5
0
        public IQueryable <T> All()
        {
            // create a list to hold the documents.
            var  documentList = new List <T>();
            long count        = 1;

            using (var _dataIndexFile = new BlobIndexFile(_dataIndexFilePath, DiskBufferSizes.Larger, DiskBufferSizes.Default))
            {
                using (var _fileStreamReader = new FileStream(_dataFilePath,
                                                              FileMode.OpenOrCreate,
                                                              FileAccess.Read, FileShare.Write,
                                                              (int)DiskBufferSizes.Default,
                                                              FileOptions.SequentialScan))
                {
                    using (var _binaryReader = new BinaryReader(_fileStreamReader))
                    {
                        var dataIndex = _dataIndexFile.GetBlobIndex(count);
                        while (dataIndex != null)
                        {
                            // load the data from the pointer specified in the data index.
                            // locate the data in the data store file.
                            _binaryReader.BaseStream.Position = dataIndex.Pointer;
                            var dataBytes = _binaryReader.ReadBytes(dataIndex.RecordLength);

                            // parse bytes into an entity and then return
                            var entity = _serializer.Deserialize <T>(dataBytes);
                            documentList.Add(entity);

                            count++;
                            dataIndex = _dataIndexFile.GetBlobIndex(count);
                        }
                    }
                }
            }

            return(documentList.AsQueryable <T>());
        }
示例#6
0
        /// <summary>
        /// call back method for asynchronous batch execution.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="eventArgs">The <see cref="Intuit.Ipp.Core.AsyncCallCompletedEventArgs"/> instance containing the event data.</param>
        private void BatchAsyncompleted(object sender, AsyncCallCompletedEventArgs eventArgs)
        {
            BatchExecutionCompletedEventArgs batchCompletedEventArgs = new BatchExecutionCompletedEventArgs();

            try
            {
                if (eventArgs.Error == null)
                {
                    try
                    {
                        IEntitySerializer responseSerializer = CoreHelper.GetSerializer(this.serviceContext, false);
                        IntuitResponse    restResponse       = (IntuitResponse)responseSerializer.Deserialize <IntuitResponse>(eventArgs.Result);
                        foreach (object obj in restResponse.AnyIntuitObjects)
                        {
                            BatchItemResponse batchItemResponse = obj as BatchItemResponse;
                            this.batchResponses.Add(batchItemResponse);

                            // process batch item
                            this.intuitBatchItemResponses.Add(ProcessBatchItemResponse(batchItemResponse));
                        }

                        batchCompletedEventArgs.Batch = this;
                        this.OnBatchExecuteAsyncCompleted(this, batchCompletedEventArgs);
                    }
                    catch (SystemException systemException)
                    {
                        IdsException idsException = new IdsException("Batch execution failed", systemException);
                        this.serviceContext.IppConfiguration.Logger.CustomLogger.Log(TraceLevel.Error, idsException.ToString());
                        batchCompletedEventArgs.Error = idsException;
                        this.OnBatchExecuteAsyncCompleted(this, batchCompletedEventArgs);
                    }
                }
                else
                {
                    batchCompletedEventArgs.Error = eventArgs.Error;
                    this.OnBatchExecuteAsyncCompleted(this, batchCompletedEventArgs);
                }
            }
            catch (Exception e)
            {
                IdsException idsException = new IdsException("Batch execution failed", e);
                this.serviceContext.IppConfiguration.Logger.CustomLogger.Log(TraceLevel.Error, idsException.ToString());
                batchCompletedEventArgs.Error = idsException;
                this.OnBatchExecuteAsyncCompleted(this, batchCompletedEventArgs);
            }
        }
示例#7
0
        /// <inheritdoc />
        public async Task <Cigar> Load(Guid id)
        {
            DynamicParameters parameters = new DynamicParameters();

            parameters.Add("@Id", id, DbType.Guid, ParameterDirection.Input);

            EntityState entityState = await _client.ExecuteInManagedConnectionAsync(connection =>
                                                                                    connection.QuerySingleOrDefaultAsync <EntityState>(
                                                                                        "[Catalog].[Cigars_GetSingle]",
                                                                                        parameters,
                                                                                        commandType: CommandType.StoredProcedure)
                                                                                    );

            if (entityState == null)
            {
                return(null);
            }

            CigarState cigarState
                = _serializer.Deserialize <CigarState>(entityState.SerializedContent);

            return(Cigar.Load(cigarState));
        }