Exemple #1
0
        public async Task <IActionResult> AddTabacoToWorkStock(AddTabacoToWorkStock details)
        {
            //добавить вылезающие ошибки при вводе некоректной инфи
            AppUser user = await userManager.FindByNameAsync(User.Identity.Name);

            Company      companyUser  = userCompanyRepository.CompanyToUser(user.Id);
            CompanyStock companyStock = companyStockRepository.DisplayCompanyStock(companyUser)
                                        .Where(p => p.Id == details.SelectedCompanyStock).FirstOrDefault();

            if (companyStock.TabacoCount > details.CountTabacoPack)
            {
                companyStock.TabacoCount -= details.CountTabacoPack;
                companyStockRepository.EditCompanyStock(companyStock);
                workStockRepository.AddWorkStock(new WorkStock
                {
                    Company           = companyStock.Company,
                    NameTabaco        = companyStock.TabacoName,
                    TabacoWeigh       = details.TabacoWeigth,
                    Data              = DateTime.Now,
                    HookahMaster      = User.Identity.Name,
                    CountTabacoPack   = details.CountTabacoPack,
                    BundleTabacoWeigh = companyStock.TabacoBundleWeigh
                });
            }
            return(RedirectToAction("ShowWorkStock", "Display"));
        }
Exemple #2
0
        public async Task <IActionResult> EditWorkStock(EditWorkStockView details)
        {
            AppUser user = await userManager.FindByNameAsync(User.Identity.Name);

            Company   companyUser = userCompanyRepository.CompanyToUser(user.Id);
            WorkStock workStock   = workStockRepository.DisplayWorkStock(companyUser).Where(p => p.Id == details.SelectedWorkStock).
                                    FirstOrDefault();
            Tabaco       tabaco       = tabacosRepository.Tabacos.Where(x => x.Id == details.TabacoId).FirstOrDefault();
            CompanyStock companyStock = companyStockRepository.DisplayCompanyStock(companyUser)
                                        .Where(p => string.Equals(p.TabacoName, workStock.NameTabaco) && p.TabacoBundleWeigh == workStock.BundleTabacoWeigh)
                                        .FirstOrDefault();
            CompanyStock newCompanyStock = companyStockRepository.DisplayCompanyStock(companyUser).Where(p =>
                                                                                                         string.Equals(p.TabacoName, tabaco.Name) && p.TabacoBundleWeigh == tabaco.NominalWeigth).FirstOrDefault();

            if (workStock != null && companyStock != null && newCompanyStock != null)
            {
                workStockRepository.DeleteWorkStock(workStock);
                workStockRepository.AddWorkStock(new WorkStock
                {
                    Company           = companyUser,
                    NameTabaco        = tabaco.Name,
                    BundleTabacoWeigh = tabaco.NominalWeigth,
                    CountTabacoPack   = details.CountTabacoPack,
                    TabacoWeigh       = details.TabacoWeigth,
                    Data         = DateTime.Now,
                    HookahMaster = User.Identity.Name
                });
                companyStock.TabacoCount = companyStock.TabacoCount + workStock.CountTabacoPack;
                companyStockRepository.EditCompanyStock(companyStock);
                newCompanyStock.TabacoCount -= details.CountTabacoPack;
                companyStockRepository.EditCompanyStock(newCompanyStock);
            }
            return(RedirectToAction("ShowWorkStock", "Display"));
        }
        public static void Execute()
        {
            using (var client = new HttpClient())
            {
                var    gaResponse = client.GetAsync(GlobalConfig.TickerURL);
                var    response   = gaResponse.Result.Content.ReadAsStringAsync();
                string result     = response.Result;
                var    rows       = result.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)
                                    .Skip(1)
                                    .ToList();

                var companies = new List <CompanyStock>();
                foreach (var row in rows)
                {
                    //Console.WriteLine(row);
                    var columns      = Utilities.SplitCSV(row);
                    var companyStock = new CompanyStock()
                    {
                        CompanyName = columns[0],
                        StockCode   = (columns[1].Split(':')[0] ?? string.Empty).Replace("\"", ""),
                        Market      = columns[1].Split(':')[1],
                        ISINCode    = columns[2],
                        HPShortName = columns[3],
                    };
                    companies.Add(companyStock);
                }
                var stockCodes = companies.Select(c => c.StockCode).ToList();
                CreateStockCodeSheet(stockCodes);
            }
        }
Exemple #4
0
        public RedirectToRouteResult GetStockPriceByCompanyID(int companyId)
        {
            Company company = db.Companies.Find(companyId);

            if (company.CompanyStocks.Where(x => x.stockTime.Value.Date == DateTime.Now.Date).Any())
            {
                return(RedirectToAction("Index"));
            }
            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri(baseURL + "stock/" + company.companySymbol + "/quote");
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            HttpResponseMessage response = client.GetAsync("").Result;

            if (response.IsSuccessStatusCode)
            {
                string strResponse = response.Content.ReadAsStringAsync().Result;

                string strOpenPrice = "";
                int    index        = strResponse.IndexOf(",\"openTime\"") - 1;
                for (; Char.IsDigit(strResponse[index]) || strResponse[index] == '.'; index--)
                {
                    strOpenPrice = strResponse[index] + strOpenPrice;
                }
                decimal openPrice;
                if (!Decimal.TryParse(strOpenPrice, out openPrice))
                {
                    openPrice = -1;
                }

                CompanyStock stockOpenPrice = new CompanyStock();
                stockOpenPrice.companyId  = companyId;
                stockOpenPrice.stockTime  = DateTime.Now;
                stockOpenPrice.stockPrice = openPrice;
                stockOpenPrice.isOpen     = true;
                db.CompanyStocks.Add(stockOpenPrice);
                db.Entry(stockOpenPrice).State = EntityState.Added;

                db.SaveChanges();
            }
            else
            {
                Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
            }

            client.Dispose();
            return(RedirectToAction("Details", new { id = companyId }));
        }
Exemple #5
0
        public async Task <IActionResult> EditStock(EditStockView det)
        {
            AppUser user = await userManager.FindByNameAsync(User.Identity.Name);

            Company      company      = userCompanyRepository.CompanyToUser(user.Id);
            Tabaco       tabaco       = tabacosRepository.Tabacos.Where(p => p.Id == det.TabacoId).FirstOrDefault();
            CompanyStock companyStock = companyStockRepository.DisplayCompanyStock(company)
                                        .Where(p => p.Id == det.SelectedCompanyStock).FirstOrDefault();

            if (companyStock != null && tabaco != null)
            {
                companyStock.TabacoName        = tabaco.Name;
                companyStock.TabacoBundleWeigh = tabaco.NominalWeigth;
                companyStock.TabacoCount       = det.CountTabacoPack;
                companyStockRepository.EditCompanyStock(companyStock);
            }
            return(RedirectToAction("ShowStock", "Display"));
        }
Exemple #6
0
        public async Task <IActionResult> WriteOff(AddTabacoToWorkStock det)
        {
            AppUser user = await userManager.FindByNameAsync(User.Identity.Name);

            Company      company      = userCompanyRepository.CompanyToUser(user.Id);
            CompanyStock companyStock = companyStockRepository.DisplayCompanyStock(company)
                                        .Where(p => p.Id == det.SelectedCompanyStock).FirstOrDefault();

            workStockRepository.AddWorkStock(new WorkStock
            {
                Company      = company,
                NameTabaco   = companyStock.TabacoName,
                TabacoWeigh  = -det.TabacoWeigth,
                Data         = DateTime.Now,
                HookahMaster = User.Identity.Name
            });
            return(RedirectToAction("ShowWorkStock", "Display"));
        }
Exemple #7
0
        public async Task <IActionResult> RegistCompany(ViewRegistrCompany details)
        {
            Company company = new Company {
                Name = details.CompanyName
            };

            companyRepository.Add(company);

            CompanyStock companyStock = new CompanyStock
            {
                Company           = company,
                TabacoName        = details.TabacoNameSt,
                TabacoBundleWeigh = details.TabacoBundleWeithSt,
                TabacoCount       = details.TabacoCountSt
            };

            companyStockRepository.AddCompStock(companyStock);

            WorkStock workStock = new WorkStock
            {
                Company      = company,
                NameTabaco   = details.WSTabacoName,
                TabacoWeigh  = details.WSTabacoWeigth,
                HookahMaster = User.Identity.Name
            };

            workStockRepository.AddWorkStock(workStock);
            AppUser appUser = await userManager.FindByNameAsync(details.UserName);

            if (appUser != null)
            {
                UserCompany userCompany = new UserCompany {
                    Company = company, UserId = appUser.Id
                };
                userCompanyRepository.AddUserCompany(userCompany);
            }
            return(RedirectToAction("RegisterUser", "Account"));
        }
Exemple #8
0
        public async Task <IActionResult> AddTabacoToStock(ViewAddTabacoToStockList details)
        {
            AppUser user = await userManager.FindByNameAsync(User.Identity.Name);

            Company             companyUser = userCompanyRepository.CompanyToUser(user.Id);
            List <CompanyStock> data        = new List <CompanyStock>();

            if (details != null)
            {
                foreach (ViewAddTabacoToStock det in details.tabacoToStocks)
                {
                    Tabaco       tabaco         = tabacosRepository.Tabacos.Where(p => p.Id == det.TabacoId).FirstOrDefault();
                    CompanyStock repitCompStock = companyStockRepository.DisplayCompanyStock(companyUser).Where(
                        p => String.Equals(p.TabacoName, tabaco.Name, StringComparison.OrdinalIgnoreCase) &&
                        p.TabacoBundleWeigh == tabaco.NominalWeigth).FirstOrDefault();
                    if (repitCompStock != null)
                    {
                        repitCompStock.TabacoCount += det.TabacoCount;
                        companyStockRepository.EditCompanyStock(repitCompStock);
                    }
                    else
                    {
                        if (tabaco.Name != null)
                        {
                            data.Add(new CompanyStock
                            {
                                TabacoName        = tabaco.Name,
                                TabacoBundleWeigh = tabaco.NominalWeigth,
                                TabacoCount       = det.TabacoCount,
                                Company           = companyUser,
                            });
                        }
                    }
                }
                companyStockRepository.AddCompStocks(data);
            }
            return(RedirectToAction("ShowStock", "Display"));
        }
        /// <summary>
        /// CrossCheck was created to test for duplicate tickers.
        /// </summary>
        public static void CrossCheck()
        {
            List <string> rows = null;

            using (var client = new HttpClient())
            {
                string url        = GlobalConfig.TickerURL;
                var    gaResponse = client.GetAsync(url);
                var    response   = gaResponse.Result.Content.ReadAsStringAsync();
                rows = response.Result.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)
                       .Skip(1)
                       .ToList();
            }

            var companies = new List <CompanyStock>();

            foreach (var row in rows)
            {
                //Console.WriteLine(row);
                var columns      = Utilities.SplitCSV(row);
                var companyStock = new CompanyStock()
                {
                    CompanyName = columns[0],
                    StockCode   = (columns[1].Split(':')[0] ?? string.Empty).Replace("\"", "").ToUpper(),
                    Market      = columns[1].Split(':')[1],
                    ISINCode    = columns[2],
                    HPShortName = columns[3],
                };
                companies.Add(companyStock);
            }

            var stockCodesSGX = companies.Select(c => c.StockCode).ToList();

            rows = null;
            using (var client = new HttpClient())
            {
                string url        = GlobalConfig.XtraTickerURL;
                var    gaResponse = client.GetAsync(url);
                var    response   = gaResponse.Result.Content.ReadAsStringAsync();
                rows = response.Result.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)
                       .Skip(1)
                       .ToList();
            }

            companies = new List <CompanyStock>();
            foreach (var row in rows)
            {
                //Console.WriteLine(row);
                var columns      = Utilities.SplitCSV(row);
                var companyStock = new CompanyStock()
                {
                    CompanyName = columns[2],
                    StockCode   = (columns[1] ?? string.Empty).Replace("\"", "").ToUpper(),
                    Market      = columns[0]
                };
                companies.Add(companyStock);
            }

            foreach (var item in companies)
            {
                if (stockCodesSGX.Contains(item.StockCode))
                {
                    Console.WriteLine(item.StockCode);
                }
            }
        }