public IActionResult Swing(NSEInsiderResponse request)
 {
     try
     {
         NSEInsider response = RestServiceUtils.MakeGetRestCallByTimeOut <NSEInsider>(URLConstants.NSEInsiderAPI, "https://www.nseindia.com/", 2, request.Cookie);
         if (response.IsNull())
         {
             return(View(new NSEInsiderResponse()
             {
                 ErrorMessage = CommonError.FailedToFetchData
             }));
         }
         if (!response.data.HasRecords())
         {
             return(View(new NSEInsiderResponse()
             {
                 ErrorMessage = CommonError.FailedToFetchData
             }));
         }
         List <StockData> filteredData = response.data.Where(x => x.acqMode == "Market Purchase" && (x.personCategory == "Promoter Group" || x.personCategory == "Promoters"))
                                         .GroupBy(r => r.symbol)
                                         .Select(a => new StockData()
         {
             Symbol = a.Key, Value = a.Sum(b => long.Parse(b.secVal))
         })
                                         .Where(p => p.Value > long.Parse("10000000")).OrderByDescending(x => x.Value)
                                         .ToList();
         TempData["Cookie"]  = request.Cookie;
         TempData["Symbols"] = string.Join(",", filteredData.Select(x => x.Symbol).ToList());
         if (filteredData.HasRecords())
         {
             return(View(new NSEInsiderResponse()
             {
                 IsSuccess = true, Stocks = filteredData, Cookie = request.Cookie, Symbols = string.Join(",", filteredData.Select(x => x.Symbol).ToList())
             }));
         }
         return(View(new NSEInsiderResponse()
         {
             ErrorMessage = CommonError.NoRecordsFound
         }));
     }
     catch (Exception)
     {
         return(View(new NSEInsiderResponse()
         {
             IsCookieRequired = true, ErrorMessage = CommonError.CookieExpired
         }));
     }
 }
        public CorpDetailResp GetCorpInfo(string symbol, string cookie)
        {
            CorpDetailResp resp = new CorpDetailResp();

            try
            {
                CorpInfo response = RestServiceUtils.MakeGetRestCallByTimeOut <CorpInfo>(string.Format(URLConstants.NSEGetCorpDetail, symbol), "https://www.nseindia.com/", 1, cookie);
                long     p        = default(long);
                resp.mfSold          = response.corporate.sastRegulations_29.HasRecords() && response.corporate.sastRegulations_29.Where(x => DateTime.Parse(x.timestamp) > DateTime.Now.AddMonths(-5)).HasRecords() ? response.corporate.sastRegulations_29.Where(x => DateTime.Parse(x.timestamp) > DateTime.Now.AddMonths(-5)).Any(y => long.TryParse(y.noOfShareSale, out p)) : default(bool);
                resp.pledged         = response.corporate.pledgedetails.HasRecords() ? decimal.Parse(response.corporate.pledgedetails.First().per3) > default(decimal) : default(bool);
                resp.PromoterDetails = response.corporate.shareholdingPatterns.data.HasRecords() ?response.corporate.shareholdingPatterns.data.First().ToJson() : string.Empty;
                resp.IsNotEligible   = resp.mfSold || resp.pledged;
                return(resp.IsNotEligible ? null : resp);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Ejemplo n.º 3
0
        protected async Task <IActionResult> GetEmptyActionResult(Func <Task> action)
        {
            try
            {
                await action();

                return(ApiOk());
            }
            catch (ApiException ex)
            {
                ///Logger.Error(ex);
                return(RestServiceUtils.CreateErrorResult(ControllerContext.Request, ex));
            }
            catch (Exception ex)
            {
                ///Logger.Error(ex);
                return(RestServiceUtils.CreateErrorResult(ControllerContext.Request, ex));
            }
        }
Ejemplo n.º 4
0
        protected async Task <IActionResult> GetActionResult <T>(Func <Task <T> > action)
        {
            try
            {
                T result = await action().ConfigureAwait(false);

                return(ApiOk(result));
            }
            catch (ApiException ex)
            {
                ///Logger.Error(ex);
                return(RestServiceUtils.CreateErrorResult(ControllerContext.Request, ex));
            }
            catch (Exception ex)
            {
                ///Logger.Error(ex);
                return(RestServiceUtils.CreateErrorResult(ControllerContext.Request, ex));
            }
        }
        public long GetAveragePrice(string symbol, string cookie)
        {
            StockData stock = null;

            try
            {
                NSEInsider response = RestServiceUtils.MakeGetRestCallByTimeOut <NSEInsider>(string.Format(URLConstants.NSEInsiderCorporateAPI, symbol), "https://www.nseindia.com/", 1, cookie);
                if (response.IsNotNull())
                {
                    var filteredData = response.data.Where(x => x.symbol == symbol && x.acqMode == "Market Purchase" && (x.personCategory == "Promoter Group" || x.personCategory == "Promoters") && DateTime.Parse(x.acqfromDt) > DateTime.Now.AddMonths(-3));
                    stock = filteredData.GroupBy(r => r.symbol)
                            .Select(a => new StockData()
                    {
                        Symbol = a.Key, Value = a.Sum(b => long.Parse(b.secVal)), AveragePrice = a.Sum(b => long.Parse(b.secVal)) / a.Sum(b => long.Parse(b.secAcq))
                    })
                            .FirstOrDefault();
                }
                return(stock.AveragePrice);
            }
            catch (Exception)
            {
                return(-1);
            }
        }