public static string GetUserId()
        {
            if (HttpContext.Current.User.Identity.IsAuthenticated == true)
            {
                BayiPuanContext db   = new BayiPuanContext();
                var             user = db.Users.AsNoTracking().FirstOrDefault(x => x.UserName == HttpContext.Current.User.Identity.Name);
                return(user.UserId.ToString());
            }

            return(null);
        }
Esempio n. 2
0
        public static List <T> Select <T>(string sql, params object[] args)
        {
            //try
            //{
            using (var db = new BayiPuanContext())
            {
                return(db.Database.SqlQuery <T>(sql, args).ToList());
            }

            //}
            //catch (Exception e)
            //{
            //	// throw new ApplicationException(sql);
            //	return null;
            //}
        }
        // GET: ReportViewer
        public ActionResult Index(int reportId, string filterColumns = null)
        {
            var table       = new DataTable();
            var reportKey   = _queryableRepository.Table.AsNoTracking().FirstOrDefault(x => x.ReportId == reportId);
            var getUserId   = _userService.UniqueUserName(User.Identity.Name);
            var roleControl = _userService.GetUserRoles(getUserId).Select(u => u.RoleName).ToArray();


            foreach (var role in roleControl)
            {
                var accessControl = reportKey.ReportAuthorization.Split(',');
                for (int i = 0; i < accessControl.Length; i++)
                {
                    if (accessControl[i] == role)
                    {
                        if (!string.IsNullOrEmpty(filterColumns))
                        {
                            foreach (var filterType in filterColumns.Split('|'))
                            {
                                if (filterType.Contains("KeyString"))
                                {
                                    var keyst = filterType.Replace("KeyString:", "");
                                    TempData["html"] += (keyst + " <input value=\"\" class=\"w3-input\" id=\"" + filterType.Replace("KeyString:", "") + "\" name=\"" + filterType.Replace("KeyString:", "") + "\" type=\"text \" ><br/>");
                                }
                                else if (filterType.Contains("KeyInt"))
                                {
                                    var keyint = filterType.Replace("KeyInt:", "");
                                    TempData["html"] += (keyint + "<input value=\"\" class=\"w3-input\" id=\"" + filterType.Replace("KeyInt:", "") + "\" name=\"" + filterType.Replace("KeyInt:", "") + "\" type=\"text \" ><br/>");
                                }
                                else if (filterType.Contains("KeyBetween"))
                                {
                                    TempData["html"] += ("Başlangıç:<input type=\"datetime-local\" id=\"" + filterType.Replace("KeyBetween:", "") + "sdt" + "\" class=\"w3-input\" name=\"" + filterType.Replace("KeyBetween:", "") + "sdt" + "\"  style=\"width:30%\" />Bitiş:<input type=\"datetime-local\" id=\"" + filterType.Replace("KeyBetween:", "") + "edt" + "\" class=\"w3-input\" name=\"" + filterType.Replace("KeyBetween:", "") + "edt" + "\"  style=\"width:30%\" /><br/>");
                                }
                                else if (filterType.Contains("KeyLookup"))
                                {
                                    var lookup          = filterType.Replace("KeyLookup:", "");
                                    var Id              = "";
                                    var Text            = "";
                                    var ActualTableName = "";
                                    Text            = lookup.Split(',')[0].ToString();
                                    Id              = lookup.Split(',')[1].ToString();
                                    ActualTableName = lookup.Split(',')[2].ToString();
                                    Id              = Id.Split('.')[1].ToString();
                                    var result = Tools.Select <ListItem>($"select {Text} [Text], {Id} [Id] from {ActualTableName}");
                                    TempData["html"] += (Text + $"<select id=\"{Id}\" name=\"{Id}\" class=\"w3-input\" required>");
                                    TempData["html"] += ($"<option value=\"\">Seçiniz</option>");
                                    foreach (var optionItem in result)
                                    {
                                        TempData["html"] += ($"<option value=\"{optionItem.Id}\">{optionItem.Text}</option>");
                                    }
                                    TempData["html"] += ("<select><br/>");
                                }
                                else if (filterType.Contains("KeyMaster"))
                                {
                                    var lookup          = filterType.Replace("KeyMaster:", "");
                                    var Id              = "";
                                    var Text            = "";
                                    var ActualTableName = "";
                                    var MasterKey       = "";
                                    foreach (var lookupItem in lookup.Split(','))
                                    {
                                        Text            = lookup.Split(',')[0].ToString();
                                        Id              = lookup.Split(',')[1].ToString();
                                        ActualTableName = lookup.Split(',')[2].ToString();
                                        MasterKey       = lookup.Split(',')[3].ToString();
                                    }
                                    TempData["html"] += (Text + $"<select required class=\"w3-input\" dataid=\"{Id}\" dataentity=\"{ActualTableName}\" dataname=\"{Text}\" dataparent=\"{MasterKey}\" id=\"{Id.Split('.')[1].ToString()}\" name=\"{Id.Split('.')[1].ToString()}\"  tabindex=\"-1\" aria-hidden=\"true\">");
                                    TempData["html"] += ("<select><br/>");
                                }
                            }
                            return(View(table));
                        }
                        else
                        {
                            using (var dbx = new BayiPuanContext())
                            {
                                ViewData["ReportTitle"] = reportKey?.ReportTitle;
                                var cmd = dbx.Database.Connection.CreateCommand();
                                var sql = reportKey?.ReportSql;
                                cmd.CommandText = sql;
                                cmd.Connection.Open();
                                table.Load(cmd.ExecuteReader());
                                return(View(table));
                            }
                        }
                    }
                }
            }
            ErrorNotification("Bu Raporu Görüntülemek İçin Yetkiniz Yok!!!");
            return(RedirectToAction("GN_ReportIndex", "GN_Report"));
        }
        public ActionResult FilterIndex(FormCollection form, int reportId, string filterColumns = null)
        {
            var table     = new DataTable();
            var reportKey = _queryableRepository.Table.AsNoTracking().FirstOrDefault(x => x.ReportId == reportId);
            var sb        = new StringBuilder(reportKey?.ReportSql);
            var keys      = Request.Form.AllKeys;

            if (filterColumns != null)
            {
                sb.Append(" WHERE 1=1 AND ");
                foreach (var filterType in filterColumns.Split('|'))
                {
                    if (filterType.Contains("KeyString"))
                    {
                        var keyString         = filterType.Replace("KeyString:", "");
                        var requestFormString = form[keyString];
                        if (requestFormString != "")
                        {
                            sb.Append(keyString);
                            sb.Append(" = '" + requestFormString.Replace(",", "") + "'");
                            sb.Append(" AND ");
                        }
                    }
                    else if (filterType.Contains("KeyInt"))
                    {
                        var intString      = filterType.Replace("KeyInt:", "");
                        var requestFormInt = form[intString];
                        if (requestFormInt != "")
                        {
                            sb.Append(intString);
                            sb.Append(" = " + requestFormInt.Replace(",", "") + "");
                            sb.Append(" AND ");
                        }
                    }
                    else if (filterType.Contains("KeyBetween"))
                    {
                        var betweenString = filterType.Replace("KeyBetween:", "");

                        var requestFormBetweensdt = form[betweenString + "sdt"];
                        var requestFormBetweenedt = form[betweenString + "edt"];
                        if (requestFormBetweensdt != "" && requestFormBetweenedt != "")
                        {
                            sb.Append(betweenString);
                            var sdt = requestFormBetweensdt.Replace(",", "");
                            var edt = requestFormBetweenedt.Replace(",", "");
                            sb.Append(" BETWEEN '" + sdt.Replace("T", " ") + "' AND '" + edt.Replace("T", " ") + "' ");
                            sb.Append(" AND ");
                        }
                    }
                    else if (filterType.Contains("KeyLookup"))
                    {
                        var LookupString   = filterType.Replace("KeyLookup:", "");
                        var requestFormInt = "";
                        requestFormInt = LookupString.Split(',')[1].ToString();
                        if (requestFormInt != "")
                        {
                            if (sb.ToString().Contains("JOIN") == true || sb.ToString().Contains("join"))
                            {
                                sb.Append(requestFormInt);
                                requestFormInt = requestFormInt.Split('.')[1].ToString();
                                requestFormInt = form[requestFormInt];
                                sb.Append(" = " + requestFormInt.Replace(",", "") + "");
                                sb.Append(" AND ");
                            }
                            else
                            {
                                requestFormInt = requestFormInt.Split('.')[1].ToString();
                                sb.Append(requestFormInt);
                                requestFormInt = form[requestFormInt];
                                sb.Append(" = " + requestFormInt.Replace(",", "") + "");
                                sb.Append(" AND ");
                            }
                        }
                    }
                    else if (filterType.Contains("KeyMaster"))
                    {
                        var LookupString   = filterType.Replace("KeyMaster:", "");
                        var requestFormInt = "";
                        requestFormInt = LookupString.Split(',')[1].ToString();

                        if (requestFormInt != "" || requestFormInt != null)
                        {
                            if (sb.ToString().Contains("JOIN") == true || sb.ToString().Contains("join"))
                            {
                                sb.Append(requestFormInt);
                                requestFormInt = requestFormInt.Split('.')[1].ToString();
                                requestFormInt = form[requestFormInt];
                                sb.Append(" = " + requestFormInt.Replace(",", "") + "");
                                sb.Append(" AND ");
                            }
                            else
                            {
                                requestFormInt = requestFormInt.Split('.')[1].ToString();
                                sb.Append(requestFormInt);
                                requestFormInt = form[requestFormInt];
                                sb.Append(" = " + requestFormInt.Replace(",", "") + "");
                                sb.Append(" AND ");
                            }
                        }
                    }
                    else if (filterType.Contains("KeyExtra"))
                    {
                        var keyExtra = filterType.Replace("KeyExtra:", "");
                        sb.Append(keyExtra);
                        sb.Append(" AND ");
                    }
                    if (filterType.Contains("KeyAfterWhere"))
                    {
                        var cuteAnd = sb.ToString().Substring(0, sb.Length - 4);
                        sb = new StringBuilder(cuteAnd.ToString());
                        var keyAfterWhere = filterType.Replace("KeyAfterWhere:", "");
                        sb.Append(keyAfterWhere);
                        using (var dbx = new BayiPuanContext())
                        {
                            ViewData["ReportTitle"] = reportKey?.ReportTitle;
                            var cmd = dbx.Database.Connection.CreateCommand();
                            var sql = sb.ToString();
                            cmd.CommandText = sql.ToString();
                            cmd.Connection.Open();
                            table.Load(cmd.ExecuteReader());
                            return(View(table));
                        }
                    }
                }
                using (var dbx = new BayiPuanContext())
                {
                    ViewData["ReportTitle"] = reportKey?.ReportTitle;
                    var cmd = dbx.Database.Connection.CreateCommand();
                    var sql = sb.ToString().Substring(0, sb.Length - 4);
                    cmd.CommandText = sql.ToString();
                    cmd.Connection.Open();
                    table.Load(cmd.ExecuteReader());
                    return(View(table));
                }
            }
            else
            {
                using (var dbx = new BayiPuanContext())
                {
                    ViewData["ReportTitle"] = reportKey?.ReportTitle;
                    var cmd = dbx.Database.Connection.CreateCommand();
                    var sql = reportKey?.ReportSql;
                    cmd.CommandText = sql;
                    cmd.Connection.Open();
                    table.Load(cmd.ExecuteReader());
                    return(View(table));
                }
            }
        }
Esempio n. 5
0
        // GET: ChartDemo
        public ActionResult Index()
        {
            var table = new DataTable();
            var dt    = @"select FirstName +' '+ LastName UserName,sum(AmountOfSales) Count from Users u  
inner join Sales s on  s.UserId=u.UserId 
Where s.IsApproved=1
group by FirstName,LastName order by Count desc";

            using (var dbx = new BayiPuanContext())
            {
                var cmd = dbx.Database.Connection.CreateCommand();
                var sql = dt;
                cmd.CommandText = sql;
                cmd.Connection.Open();
                table.Load(cmd.ExecuteReader());
                DataSet ds = new DataSet();
                ds.Tables.Add(table);

                DotNet.Highcharts.Highcharts chart = new DotNet.Highcharts.Highcharts("chart")
                                                     .InitChart(new Chart
                {
                    DefaultSeriesType = ChartTypes.Column
                })

                                                     .SetTitle(new Title
                {
                    Text = "Satış Raporu"
                })
                                                     .SetXAxis(new XAxis
                {
                    //Categories = new[] { "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık" }
                    Categories = table.AsEnumerable().Select(r => r.Field <string>("UserName").ToString()).ToArray()
                })
                                                     .SetYAxis(new YAxis
                {
                    Title = new YAxisTitle {
                        Text = "Satılan Ürün Miktarı"
                    },
                    PlotLines = new[]
                    {
                        new YAxisPlotLines
                        {
                            Value = 0,
                            Width = 1,
                            Color = ColorTranslator.FromHtml("#808080")
                        }
                    }
                })
                                                     .SetSeries(
                    new Series[] {
                    new Series
                    {
                        Name = "Satılan", Data = new Data(
                            table.AsEnumerable().Select(r => r.Field <int>("Count")).Cast <object>().ToArray()
                            )
                    }
                }
                    );
                ViewData["chart"] = chart.ToHtmlString();
                return(View());
            }
        }
Esempio n. 6
0
        // GET: UserHome
        public ActionResult Index(int id)
        {
            if (User.Identity.IsAuthenticated == false || GeneralHelpers.GetUserId() != id.ToString())
            {
                return(RedirectToAction("SignOut", "Account"));
            }
            if (GeneralHelpers.GetUserId() == null || GeneralHelpers.GetUserId() == "")
            {
                return(RedirectToAction("SignIn", "Account"));
            }
            var             product  = _productQueryableRepository.Table.AsNoTracking().ToList();
            var             sale     = _saleQueryableRepository.Table.AsNoTracking().ToList();
            var             gift     = _giftQueryableRepository.Table.AsNoTracking().ToList();
            var             buyGift  = _buyQueryableRepository.Table.AsNoTracking().ToList();
            var             user     = _userQueryableRepository.Table.AsNoTracking().ToList();
            List <Campaign> campaign = _campaignQueryableRepository.Table.AsNoTracking().ToList();
            var             score    = _scroreQueryableRepository.Table.AsNoTracking().ToList();
            var             order    = 0;
            var             vm       = new ViewModel
            {
                totalWon = (from s in score

                            select new
                {
                    s.UserId,
                    s.ScoreTotal
                }).Where(p => p.UserId == id)
                           .GroupBy(w => w.UserId)
                           .Select(y => new ProductPoint
                {
                    UserId   = y.Key,
                    SumPoint = y.Sum(x => x.ScoreTotal),
                    //SumPointToMoney = y.Sum(x => x.AmountOfSales * x.Point * x.PointToMoney)
                }).ToList(),

                spentPoint = (from b in buyGift
                              join g in gift on b.GiftId equals g.GiftId
                              select new
                {
                    b.UserId,
                    b.IsApproved,
                    g.GiftPoint
                }).Where(x => x.UserId == id && x.IsApproved == true)
                             .GroupBy(w => w.UserId)
                             .Select(y => new SpentPoint()
                {
                    UserId     = y.Key,
                    SpendPoint = y.Sum(x => x.GiftPoint)
                }).ToList(),

                saleRankings = (from s in sale
                                join u in user on s.UserId equals u.UserId
                                select new
                {
                    u.UserId,
                    u.FirstName,
                    u.LastName,
                    s.AmountOfSales,
                    s.IsApproved
                }).Where(x => x.IsApproved == true).GroupBy(x => new { x.UserId, x.FirstName, x.LastName })
                               .Select(y => new SalesRanking()
                {
                    UserId    = y.Key.UserId,
                    SaleOrder = order + 1,
                    FirstName = y.Key.FirstName,
                    LastName  = y.Key.LastName,
                    SumSale   = y.Sum(x => x.AmountOfSales)
                }).AsEnumerable().OrderByDescending(x => x.SumSale)
            };

            //puan hesaplama Yöntemi
            //Yapılan satış miktarı * Puan
            //a.	Toplam kazanılan puan

            //b.	Harcanan puan
            //c.	Kalan puan
            decimal remaining        = vm.totalWon.Sum(t => t.SumPoint) - vm.spentPoint.Sum(s => s.SpendPoint);
            decimal remainingTomoney = vm.totalWon.Sum(t => t.SumPointToMoney) - vm.spentPoint.Sum(s => s.SumPointToMoney);

            vm.remainingScore        = remaining;
            vm.remainingScoreToMoney = remainingTomoney;

            //d.	Kampanya bilgileri
            vm.CampaignView = campaign;
            //e.	Duyurular
            //f.	Satış sıralamaları Chart
            var table = new DataTable();
            var dt    = @"select Top 10 FirstName +' '+ LastName UserName,sum(AmountOfSales) Count from Users u  
inner join Sales s on  s.UserId=u.UserId 
Where s.IsApproved=1
group by FirstName,LastName order by Count desc";

            using (var dbx = new BayiPuanContext())
            {
                var cmd = dbx.Database.Connection.CreateCommand();
                var sql = dt;
                cmd.CommandText = sql;
                cmd.Connection.Open();
                table.Load(cmd.ExecuteReader());
                DataSet ds = new DataSet();
                ds.Tables.Add(table);
            }
            DotNet.Highcharts.Highcharts chart = new DotNet.Highcharts.Highcharts("chart")
                                                 .InitChart(new Chart
            {
                DefaultSeriesType = ChartTypes.Column,
            })
                                                 .SetTitle(new Title
            {
                Text = "En İyi İlk 10"
            })
                                                 .SetXAxis(new XAxis
            {
                //Categories = new[] { "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık" }
                Categories = table.AsEnumerable().Select(r => r.Field <string>("UserName").ToString()).ToArray()
            })
                                                 .SetYAxis(new YAxis
            {
                Title = new YAxisTitle {
                    Text = "Satılan Ürün Miktarı"
                },
                PlotLines = new[]
                {
                    new YAxisPlotLines
                    {
                        Value = 0,
                        Width = 1,
                        Color = ColorTranslator.FromHtml("#808080")
                    }
                }
            })
                                                 .SetSeries(
                new Series[] {
                new Series
                {
                    Name = "Toplam Ürün Satış Sayıları", Data = new Data(
                        table.AsEnumerable().Select(r => r.Field <int>("Count")).Cast <object>().ToArray()
                        )
                }
            }
                );
            ViewData["chart"] = chart.ToHtmlString();
            return(View(vm));
        }