public IndexModule(IPbApiClient pbApiClient, IEntryPoint entryPoint, IConnectToBilling billingConnector)
        {
            Get["/"] = parameters =>
            {
                var token = Context.AuthorizationHeaderToken();
                var metaData = pbApiClient.Get<ApiMetaData>(token, "getUserMetaData");

                return Response.AsJson(metaData);
            };

            Post["/action/{action}"] = parameters =>
            {
                var token = Context.AuthorizationHeaderToken();
                var packageResponse = pbApiClient.Get<Package>(token, "package/" + parameters.action);

                var package = Mapper.DynamicMap<IPackage>(packageResponse);
                var vehicle = this.Bind<Vechicle>();
                var request = new LicensePlateNumberRequest(package, new User(), new Context(), vehicle, new AggregationInformation());
                var responses = entryPoint.GetResponsesFromLace(request);

                var packageIdentifier = new PackageIdentifier(packageResponse.Id, new VersionIdentifier(1));
                var requestIdentifier = new RequestIdentifier(Guid.NewGuid(), SystemIdentifier.CreateApi());
                var userIdentifier = new UserIdentifier(((IEntity)Context.CurrentUser).Id);
                var transactionContext = new TransactionContext(Guid.NewGuid(), userIdentifier, requestIdentifier);
                var createTransaction = new CreateTransaction(packageIdentifier, transactionContext);
                billingConnector.CreateTransaction(createTransaction);

                return Response.AsJson(responses.First().Response);
            };
        }
 public Transaction(Guid id, DateTime date, PackageIdentifier package, RequestIdentifier request, UserIdentifier user, StateIdentifier state, ContractIdentifier contract, AccountIdentifier account)
 {
     Id = id;
     Date = date;
     Package = package;
     Request = request;
     User = user;
     State = state;
     Contract = contract;
     Account = account;
 }
 public BillTransactionMessage(PackageIdentifier packageIdentifier, UserIdentifier userIdentifier,
     RequestIdentifier requestIdentifier,
     DateTime transactionDate, Guid transactionId, StateIdentifier state, ContractIdentifier contract, AccountIdentifier account)
 {
     PackageIdentifier = packageIdentifier;
     UserIdentifier = userIdentifier;
     RequestIdentifier = requestIdentifier;
     TransactionDate = transactionDate;
     TransactionId = transactionId;
     State = state;
     Contract = contract;
     Account = account;
 }
 public CreateTransactionBuilder WithPackageIdentifier(PackageIdentifier package)
 {
     this.package = package;
     return this;
 }
 protected bool Equals(PackageIdentifier other)
 {
     return Id.Equals(other.Id) && Equals(Version, other.Version);
 }
Exemplo n.º 6
0
 public Request CreateTransaction(Guid packageId, long packageVersion, DateTime date, Guid userId,
     Guid contractId,
     string system, long contractVersion, DataProviderResponseState state, string accountNumber, double packageCostPrice, double packageRecommendedPrice, DataProviderNoRecordState billNoRecords)
 {
     DataProvider = new DataProviderIdentifier(DataProviderCommandSource.EntryPoint, DataProviderAction.Response, state, billNoRecords);
     Date = date;
     Connection = new ConnectionTypeIdentifier();
     Payload = new PayloadIdentifier();
     CommandType = CommandType.Accounting;
     State = new StateIdentifier((int) state, state.ToString());
     RequestContext = new SearchRequestIndentifier();
     Package = new PackageIdentifier(packageId, new VersionIdentifier(packageVersion), packageCostPrice, packageRecommendedPrice);
     return this;
 }
 public CreateTransaction(PackageIdentifier packageIdentifier, TransactionContext context)
 {
     PackageIdentifier = packageIdentifier;
     Context = context;
 }
 public InvoiceTransaction(Guid id, DateTime date, PackageIdentifier package, RequestIdentifier request, UserIdentifier user, StateIdentifier state, ContractIdentifier contract, AccountIdentifier account)
     : base(id, date, package, request, user, state, contract, account)
 {
 }