示例#1
0
        public JsonResult Accounts()
        {
            var oEsi = new FreeAgentServiceInfo();

            var freeagents = this.customer
                             .CustomerMarketPlaces
                             .Where(mp => mp.Marketplace.InternalId == oEsi.InternalId)
                             .Select(FreeAgentAccountModel.ToModel)
                             .ToList();

            return(Json(freeagents, JsonRequestBehavior.AllowGet));
        }         // Accounts
示例#2
0
        }         // FreeAgentCallback

        private FreeAgentAccountModel SaveFreeAgentTrn(AccessTokenContainer accessTokenContainer, string approvalToken)
        {
            FreeAgentAccountModel oResult = null;

            Transactional.Execute(() => {
                var oEsi = new FreeAgentServiceInfo();

                int marketPlaceId = this.mpTypesRepo
                                    .GetAll()
                                    .First(a => a.InternalId == oEsi.InternalId)
                                    .Id;

                log.Info("Fetching company data for customer {0}...", this.customer.Name);
                FreeAgentCompany freeAgentCompany = null;

                try {
                    freeAgentCompany = this.connector.GetCompany(accessTokenContainer.access_token);
                } catch (Exception ex) {
                    log.Error(ex, "Error getting FreeAgent's company. Will use customer mail as the account display name.");
                }                 // try

                var securityData = new FreeAgentSecurityInfo {
                    ApprovalToken = approvalToken,
                    AccessToken   = accessTokenContainer.access_token,
                    ExpiresIn     = accessTokenContainer.expires_in,
                    TokenType     = accessTokenContainer.token_type,
                    RefreshToken  = accessTokenContainer.refresh_token,
                    MarketplaceId = marketPlaceId,
                    Name          = freeAgentCompany != null ? freeAgentCompany.name : this.customer.Name,
                    ValidUntil    = DateTime.UtcNow.AddSeconds(accessTokenContainer.expires_in - 60)
                };

                var freeAgentDatabaseMarketPlace = new FreeAgentDatabaseMarketPlace();

                log.Info("Saving marketplace data...");
                var marketPlace = this.dbHelper.SaveOrUpdateCustomerMarketplace(
                    securityData.Name,
                    freeAgentDatabaseMarketPlace,
                    securityData,
                    this.customer
                    );

                oResult = FreeAgentAccountModel.ToModel(marketPlace);
            });

            return(oResult);
        }         // SaveFreeAgentTrn