public ActionResult Connection() { if (Session["LoginDtl"] != null) { tblUser loginDtl = (tblUser)Session["LoginDtl"]; } if (Session["LinkToken"] != null) { ViewBag.LinkToken = Session["LinkToken"]; } else { LinkTokenResponse linkResponse = null; linkResponse = helper.GetLinkToken(); if (linkResponse != null) { ViewBag.LinkToken = linkResponse.LinkToken; Session["LinkToken"] = linkResponse.LinkToken; } } using (PlaidEntities DB = new PlaidEntities()) { List <tblInstance> Instances = DB.tblInstances.Select(x => x).ToList <tblInstance>(); return(View(Instances)); } }
public tblUser GetLoginDtlPlaidDB(tblUser obj) { tblUser loginDtl; using (PlaidEntities DB = new PlaidEntities()) { loginDtl = DB.tblUsers.Where(x => x.LoginId == obj.LoginId && x.Password == obj.Password).FirstOrDefault(); } return(loginDtl); }
public String AddToPlaidDB(tblUser obj) { using (PlaidEntities DB = new PlaidEntities()) { DB.tblUsers.Add(new tblUser { LoginId = obj.LoginId, Password = obj.Password, FName = "", LName = "" }); DB.SaveChanges(); } return("Success"); }
public ActionResult Login(tblUser loginDtl) { using (PlaidEntities DB = new PlaidEntities()) { loginDtl = DB.tblUsers.Where(x => x.LoginId == loginDtl.LoginId && x.Password == loginDtl.Password).FirstOrDefault(); if (loginDtl != null) { Session["LoginDtl"] = loginDtl; return(RedirectToAction("Connection")); } } return(View()); }
public ActionResult Connection() { tblUser loginDtl = null; if (Session["LoginDtl"] != null) { loginDtl = (tblUser)Session["LoginDtl"]; } if (Session["LinkToken"] != null) { ViewBag.LinkToken = Session["LinkToken"]; } else { LinkTokenResponse linkResponse = null; linkResponse = helper.GetLinkToken(); if (linkResponse != null) { ViewBag.LinkToken = linkResponse.LinkToken; Session["LinkToken"] = linkResponse.LinkToken; } } using (PlaidEntities DB = new PlaidEntities()) { var instanceCollection = DB.tblInstances.Where(item => item.UserId == loginDtl.Id).Select(instance => new { instance.ConnectionId, instance.InstanceId, instance.InstanceName, AccessToken = instance.AccessToken.Trim() }).AsEnumerable().Select(x => new { ConnectionId = x.ConnectionId, InstanceId = x.InstanceId, InstanceName = x.InstanceName, AccessToken = Base64Decode(x.AccessToken.ToString()) }); if (instanceCollection?.Count() > 0) { int index = 0; Task <KeyValuePair <string, List <HoldingDisplay> > >[] concurrentTasks = new Task <KeyValuePair <string, List <HoldingDisplay> > > [instanceCollection.Count()]; foreach (var instance in instanceCollection) { concurrentTasks[index] = Task.Run(() => GetHoldingResponse(instance.AccessToken)); index++; if (index == instanceCollection.Count()) { break; } } try { Task.WaitAll(concurrentTasks); if (concurrentTasks != null) { ConcurrentDictionary <string, List <HoldingDisplay> > allThreadSafeHoldings = new ConcurrentDictionary <string, List <HoldingDisplay> >(); Parallel.ForEach(concurrentTasks, (task) => { if (task != null && task.IsCompleted && !task.IsFaulted && !task.IsCanceled && task.Status == TaskStatus.RanToCompletion) { KeyValuePair <string, List <HoldingDisplay> > keyValuePair = task.Result; allThreadSafeHoldings.TryAdd(keyValuePair.Key, keyValuePair.Value); } }); if (allThreadSafeHoldings?.Count > 0) { List <HoldingDisplayExt> allHoldings = (from eachKeyValuePair in allThreadSafeHoldings where eachKeyValuePair.Value?.Count > 0 from value in eachKeyValuePair.Value select new HoldingDisplayExt(value) { ConnectionId = instanceCollection.First(o => o.AccessToken.Equals(eachKeyValuePair.Key)).ConnectionId, InstanceId = instanceCollection.First(o => o.AccessToken.Equals(eachKeyValuePair.Key)).InstanceId, InstanceName = instanceCollection.First(o => o.AccessToken.Equals(eachKeyValuePair.Key)).InstanceName, }) .ToList(); ViewBag.ClientId = ClientId; ViewBag.Secret = Secret; ViewBag.ApiUrl = ApiUrl; ViewBag.LinkToken = Session["LinkToken"]; ViewBag.InstanceCollection = instanceCollection; return(View("holding", allHoldings)); //return View("holding", allHoldings.OrderByDescending(o => o.ConnectionId)); } else { TempData["error"] = "Error occurred to process all holding data simultaneously."; return(View("holding", null)); } } else { TempData["error"] = "Error occurred to get all holding data simultaneously."; return(View("holding", null)); } } catch (System.AggregateException agEx) { if (agEx.InnerExceptions?.Count > 0) { TempData["error"] = agEx.Flatten().Message; } return(View("holding", null)); } catch (System.Exception ex) { TempData["error"] = ex.Message; return(View("holding", null)); } } else { TempData["error"] = "No instance(s) found in DB."; return(View("holding", null)); } } }
public ActionResult Connection(string ConnectionDtl, string Action) { if (Session["LinkToken"] != null) { ViewBag.LinkToken = Session["LinkToken"]; } if (!string.IsNullOrEmpty(Action) && Session["LoginDtl"] != null) { ActionClass obj = JsonConvert.DeserializeObject <ActionClass>(Action); if (obj.Action.Equals("Go")) { using (PlaidEntities DB = new PlaidEntities()) { string AccessToken = DB.tblInstances.Where(x => x.ConnectionId == obj.Id).Select(x => x.AccessToken).FirstOrDefault().ToString(); Session["AccessToken"] = Base64Decode(AccessToken.Trim()); return(RedirectToAction("Holding")); } } else if (obj.Action.Equals("Delete")) { using (PlaidEntities DB = new PlaidEntities()) { tblInstance RemoveInstances = DB.tblInstances.Where(x => x.ConnectionId == obj.Id).Select(x => x).FirstOrDefault(); if (RemoveInstances != null) { DB.tblInstances.Remove(RemoveInstances); DB.SaveChanges(); } List <tblInstance> Instances = DB.tblInstances.Select(x => x).ToList <tblInstance>(); return(View(Instances)); } } else if (obj.Action.Equals("Save")) { using (PlaidEntities DB = new PlaidEntities()) { var result = DB.tblInstances.SingleOrDefault(b => b.ConnectionId == obj.Id); if (result != null) { result.InstanceName = obj.InstanceName; DB.SaveChanges(); } //List<tblInstance> Instances = DB.tblInstances.Select(x => x).ToList<tblInstance>(); //return View(Instances); RedirectToAction("Connection"); } } else if (obj.Action.Equals("Cancel")) { return(View()); } else { return(View()); } } else if (!string.IsNullOrEmpty(ConnectionDtl) && Session["LoginDtl"] != null) { tblInstance obj = JsonConvert.DeserializeObject <tblInstance>(ConnectionDtl); PublicTokenExchangeResponse publicTokenEx = helper.GetAccessToken(obj.PublicToken.Trim()); if (string.IsNullOrEmpty(publicTokenEx.ErrorCode)) { tblUser loginDtl = (tblUser)Session["LoginDtl"]; obj.UserId = loginDtl.Id; obj.AccessToken = Base64Encode(publicTokenEx.AccessToken.Trim()); obj.PublicToken = Base64Encode(obj.PublicToken.Trim()); using (PlaidEntities DB = new PlaidEntities()) { DB.tblInstances.Add(obj); DB.SaveChanges(); } } } return(RedirectToAction("Connection")); //using (PlaidEntities DB = new PlaidEntities()) //{ // List<tblInstance> Instances = DB.tblInstances.Select(x => x).ToList<tblInstance>(); // return View(Instances); //} }