Beispiel #1
0
        }         // Name

        public override void Execute()
        {
            m_oCustomerData.Load();

            Guid       oEkmType    = new EkmDatabaseMarketPlace().InternalId;
            Guid       oYodleeType = new YodleeDatabaseMarketPlace().InternalId;
            VendorInfo oHmrc       = global::Integration.ChannelGrabberConfig.Configuration.GetInstance(Log).Hmrc;

            m_oStra.Execute();

            foreach (LoadCustomerMarketplaceSecurityData.ResultRow oRes in m_oStra.Result)
            {
                if (oRes.InternalID == oEkmType)
                {
                    CheckEkm(oRes);
                }
                else if (oRes.InternalID == oYodleeType && oRes.DisplayName != "ParsedBank")
                {
                    Result.HasYodlee = CurrentValues.Instance.RefreshYodleeEnabled;
                }
                else if (oRes.InternalID == oHmrc.Guid())
                {
                    CheckHmrc(oRes);
                }
            }             // for each result

            Result.IsVatReturnUpToDate = new CheckAllVatReturnPeriods(m_oCustomerData.Id, DB, Log).IsUpToDate();
        }         // Execute
Beispiel #2
0
        public ViewResult YodleeCallback()
        {
            Log.InfoFormat("Got to yodlee's callback with params:{0}", HttpContext.Request.Params);
            foreach (string key in HttpContext.Request.Params.Keys)
            {
                if (key == "oauth_error_code")
                {
                    Log.WarnFormat("Yodlee returned an error. oauth_error_code:{0} oauth_error_problem:{1}", HttpContext.Request.Params["oauth_error_code"], HttpContext.Request.Params["oauth_error_problem"]);
                    if (HttpContext.Request.Params["oauth_error_code"] == "407")
                    {
                        return(View(new { error = "Failure linking account" }));
                    }
                }
            }

            var yodleeAccount = this.yodleeAccountsRepository.Search(this.customer.Id);

            string decryptedPassword = Encrypted.Decrypt(yodleeAccount.Password);
            string displayname;
            long   csId;

            var yodleeMain = new YodleeMain();
            var oEsi       = new YodleeServiceInfo();

            var items = this.customer.CustomerMarketPlaces
                        .Where(mp => mp.Marketplace.InternalId == oEsi.InternalId)
                        .Select(mp => Serialized.Deserialize <YodleeSecurityInfo>(mp.SecurityData).ItemId).ToList();

            long itemId = yodleeMain.GetItemId(yodleeAccount.Username, decryptedPassword, items, out displayname, out csId);

            if (itemId == -1)
            {
                return(View(new { error = "Failure linking account" }));
            }

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

            var securityData = new YodleeSecurityInfo
            {
                ItemId        = itemId,
                Name          = yodleeAccount.Username,
                Password      = yodleeAccount.Password,
                MarketplaceId = marketPlaceId,
                CsId          = csId
            };

            var yodleeDatabaseMarketPlace = new YodleeDatabaseMarketPlace();

            var marketPlace = this.dbHelper.SaveOrUpdateCustomerMarketplace(displayname, yodleeDatabaseMarketPlace, securityData, this.customer);

            Log.InfoFormat("Added or updated yodlee marketplace: {0}", marketPlace.Id);

            this.serviceClient.Instance.UpdateMarketplace(this.context.Customer.Id, marketPlace.Id, true, this.context.UserId);

            return(View(YodleeAccountModel.ToModel(marketPlace, this.yodleeBanksRepository)));
        }
        public JsonResult ParseYodlee(int customerId, int fileId)
        {
            var file         = m_oServiceClient.Instance.GetCompanyFile(_context.UserId, fileId);
            var fileMetaData = _companyFiles.Get(fileId);
            var parser       = new TransactionsParser();
            var parsed       = parser.ParseFile(fileMetaData.FileName, file);

            if (!string.IsNullOrEmpty(parsed.Error))
            {
                return(Json(new { error = parsed.Error }));
            }

            if (parsed.NumOfTransactions == 0)
            {
                return(Json(new { error = "File contains 0 transactions" }));
            }

            var customer = _customers.Get(customerId);
            var yodlee   = new YodleeServiceInfo();
            var yodleeMp = customer.CustomerMarketPlaces.FirstOrDefault(mp => mp.Marketplace.InternalId == yodlee.InternalId && mp.DisplayName == "ParsedBank");

            if (yodleeMp != null)
            {
                var data = Serialized.Deserialize <YodleeSecurityInfo>(yodleeMp.SecurityData);
                data.ItemId           = fileId;
                yodleeMp.SecurityData = new Serialized(data);
                _session.Flush();
                m_oServiceClient.Instance.UpdateMarketplace(customer.Id, yodleeMp.Id, false, _context.UserId);
            }
            else
            {
                int marketPlaceId = _mpTypes.GetAll().First(a => a.InternalId == yodlee.InternalId).Id;

                var securityData = new YodleeSecurityInfo {
                    ItemId        = fileId,
                    Name          = "",
                    Password      = "",
                    MarketplaceId = marketPlaceId,
                    CsId          = 0
                };

                var yodleeDatabaseMarketPlace = new YodleeDatabaseMarketPlace();
                var mp = _helper.SaveOrUpdateCustomerMarketplace("ParsedBank", yodleeDatabaseMarketPlace, securityData, customer);

                m_oServiceClient.Instance.UpdateMarketplace(customer.Id, mp.Id, false, _context.UserId);
            }     // if
            return(Json(new { }));
        }         // ParseYodlee