Esempio n. 1
0
        public ActionResult Logs(MemberAnalysisSearchViewModel searchViewModel)
        {
            AnalysisOrderByViewModel orderBy = new AnalysisOrderByViewModel()
            {
                SortColumn = SortColumn.TotalViewCount,
                SortDesc   = SortDesc.Desc
            };
            bool     IsShowLabelLine = GetCustomLableCookie();
            DateTime SearchStartDate = DateTime.Now.AddMonths(-2);
            DateTime SearchEndDate   = DateTime.Now;

            if (!string.IsNullOrEmpty(searchViewModel.SearchStartDate))
            {
                SearchStartDate = DateTime.Parse(searchViewModel.SearchStartDate);
            }
            if (!string.IsNullOrEmpty(searchViewModel.SearchEndDate))
            {
                SearchEndDate = DateTime.Parse(searchViewModel.SearchEndDate);
            }
            if (searchViewModel != null && searchViewModel.IsShowCustomLableLine.HasValue)
            {
                IsShowLabelLine = searchViewModel.IsShowCustomLableLine.Value;
            }
            ViewBag.UploadUrl = uploadUrl;
            List <ViewModels.MemberAnalysisDailyLogViewModel>   dailyLogList = Models.DataAccess.MemberShipLoginLogsDAO.GetMemberLoginStatistics(SearchStartDate, SearchEndDate);
            List <ViewModels.MemberAnalysisMonthlyLogViewModel> monthLogList = Models.DataAccess.MemberShipLoginLogsDAO.GetMonthMemberLoginStatistics(SearchStartDate, SearchEndDate);
            MemberAnalysisLogViewModel logModel = new MemberAnalysisLogViewModel();

            logModel.SearchStartDate = SearchStartDate;
            logModel.SearchEndDate   = SearchEndDate;
            logModel.LogDailyList    = dailyLogList;
            logModel.LogMonthList    = monthLogList;
            List <MemberAnalysisLogCustomLabelLineViewModel> LabelLineList = new List <MemberAnalysisLogCustomLabelLineViewModel>();
            var EnabledLabelLineModels = Models.DataAccess.MemberShipLogStatisticLabelDAO.GetShowLabelLine(SearchStartDate, SearchEndDate);

            if (EnabledLabelLineModels != null && EnabledLabelLineModels.Count() > 0)
            {
                foreach (MemberShipLogStatisticLabelModels model in EnabledLabelLineModels)
                {
                    LabelLineList.Add(new ViewModels.MemberAnalysisLogCustomLabelLineViewModel()
                    {
                        Title      = model.Title,
                        LabelDate  = model.LabelDate.ToString("MM/dd"),
                        LabelColor = model.LabelColor
                    });
                }
            }
            logModel.LabelLineList = LabelLineList;
            SetCustomLableCookie(IsShowLabelLine);
            logModel.IsShowCustomLableLine = IsShowLabelLine;
            return(View(logModel));
        }
Esempio n. 2
0
        public void ExportToXLS(long ID, string Type, AnalysisSearchViewModel searchViewModel)
        {
            DateTime SearchStartDate = DateTime.Now.AddDays(-14);
            DateTime SearchEndDate   = DateTime.Now;
            string   SelectMembers   = "";

            if (!string.IsNullOrEmpty(searchViewModel.SearchStartDate))
            {
                SearchStartDate = DateTime.Parse(searchViewModel.SearchStartDate);
            }
            if (!string.IsNullOrEmpty(searchViewModel.SearchEndDate))
            {
                SearchEndDate = DateTime.Parse(searchViewModel.SearchEndDate);
            }
            int totalRecord = 0;
            AnalysisOrderByViewModel orderBy = new AnalysisOrderByViewModel()
            {
                SortColumn = SortColumn.TotalViewCount,
                SortDesc   = SortDesc.Desc
            };

            if (!string.IsNullOrEmpty(Request.QueryString["OrderColumn"]))
            {
                try
                {
                    SortColumn sortColumn = (SortColumn)int.Parse(Request.QueryString["OrderColumn"]);
                    orderBy.SortColumn = sortColumn;
                }
                catch
                {
                    return;
                }
            }
            if (!string.IsNullOrEmpty(Request.QueryString["OrderSort"]))
            {
                try
                {
                    SortDesc sortDesc = (SortDesc)int.Parse(Request.QueryString["OrderSort"]);
                    orderBy.SortDesc = sortDesc;
                }
                catch
                {
                    return;
                }
            }
            long siteId = 1;

            var       StatisticConditionModel = Models.DataAccess.StatisticConditionDAO.GetItem(ID);
            DataTable pageLogTable            = new DataTable();

            if (string.IsNullOrEmpty(Type) || Type == "main")
            {
                pageLogTable = Models.DataAccess.StatisticConditionDAO.GetStatistionDetailTable(siteId, StatisticConditionModel, SearchStartDate, SearchEndDate, orderBy, 99999, 1, out totalRecord);
            }
            else if (Type == "user")
            {
                pageLogTable = Models.DataAccess.StatisticConditionDAO.GetStatistionUserDetailTable(siteId, StatisticConditionModel, SearchStartDate, SearchEndDate, orderBy, 99999, 1, out totalRecord);
            }
            else if (Type == "member")
            {
                pageLogTable = Models.DataAccess.StatisticConditionDAO.GetStatistionMemberDetailTable(siteId, StatisticConditionModel, SearchStartDate, SearchEndDate, orderBy, 99999, 1, out totalRecord);
            }

            if (pageLogTable != null)
            {
                pageLogTable.Columns.Add("裝置");
                pageLogTable.Columns.Add("目標網址");
                foreach (DataRow pageRow in pageLogTable.Rows)
                {
                    pageRow["裝置"]   = WorkV3.Areas.Backend.ViewModels.AnalysisPageLogViewModel.GetOSNumber(pageRow["UserAgent"].ToString());
                    pageRow["目標網址"] = Url.Action("Index", "Home", new { SiteSN = pageRow["SiteSN"].ToString(), PageSN = pageRow["SN"].ToString(), area = string.Empty });
                }
                string[] removeColumns = "MenuTitle,No,SN,SiteID,SiteSN,ID,PagesNo,Lang,Browser,UserAgent,SiteID1,MemberID,IPNum,ReferrerUrlPageNo,Photo,ROWSTAT".Split(',');
                foreach (string removeColumn in removeColumns)
                {
                    if (pageLogTable.Columns.Contains(removeColumn))
                    {
                        pageLogTable.Columns.Remove(removeColumn);
                    }
                }
                pageLogTable.Columns["ReferrerUrl"].ColumnName      = "來源網址";
                pageLogTable.Columns["ReferrerUrlTitle"].ColumnName = "來源網址名稱";
                pageLogTable.Columns["Title"].ColumnName            = "目標網址名稱";
                pageLogTable.Columns["StaySeconds"].ColumnName      = "停留秒數";
                pageLogTable.Columns["MemberInfo"].ColumnName       = "會員姓名 / 帳號";
                pageLogTable.Columns["Name"].ColumnName             = "創建者";
                pageLogTable.Columns["AddTime"].ColumnName          = "進入時間";
                pageLogTable.Columns["來源網址"].SetOrdinal(0);
                pageLogTable.Columns["來源網址名稱"].SetOrdinal(1);
                pageLogTable.Columns["目標網址"].SetOrdinal(2);
                pageLogTable.Columns["目標網址名稱"].SetOrdinal(3);
                pageLogTable.Columns["創建者"].SetOrdinal(4);
                pageLogTable.Columns["進入時間"].SetOrdinal(5);
                pageLogTable.Columns["停留秒數"].SetOrdinal(6);
                pageLogTable.Columns["SessionID"].SetOrdinal(7);
                pageLogTable.Columns["裝置"].SetOrdinal(8);
                pageLogTable.Columns["會員姓名 / 帳號"].SetOrdinal(9);
                pageLogTable.Columns["IP"].SetOrdinal(10);
                string sheetName = string.Format("條件{2}-{0}~{1}比較分析表",
                                                 SearchStartDate.ToString("yyyyMMdd"), SearchEndDate.ToString("yyyyMMdd"), StatisticConditionModel.Title);
                WorkLib.uXls.DTExpExcel(pageLogTable, string.Format("{0}", sheetName), sheetName);
            }
        }
Esempio n. 3
0
        public ActionResult PageAnalysisDetails(long ID, AnalysisSearchViewModel searchViewModel, int?index)
        {
            long siteId = 1;

            ViewBag.VMemberPath = WorkV3.Golbal.UpdFileInfo.GetVPathBySiteID(1, "Member");
            if (Request.HttpMethod == "GET")
            {
                if (index == null)
                {
                    WorkV3.Common.Utility.ClearSearchValue();
                }
                else
                {
                    AnalysisSearchViewModel prevSearch = WorkV3.Common.Utility.GetSearchValue <AnalysisSearchViewModel>();
                    if (prevSearch != null)
                    {
                        searchViewModel = prevSearch;
                    }
                }
            }
            else if (Request.HttpMethod == "POST")
            {
                WorkV3.Common.Utility.SetSearchValue(searchViewModel);
            }
            AnalysisOrderByViewModel orderBy = new AnalysisOrderByViewModel()
            {
                SortColumn = SortColumn.AddTime,
                SortDesc   = SortDesc.Desc
            };

            if (!string.IsNullOrEmpty(Request.QueryString["OrderColumn"]))
            {
                try
                {
                    SortColumn sortColumn = (SortColumn)int.Parse(Request.QueryString["OrderColumn"]);
                    orderBy.SortColumn = sortColumn;
                }
                catch
                {
                    return(HttpNotFound());
                }
            }
            if (!string.IsNullOrEmpty(Request.QueryString["OrderSort"]))
            {
                try
                {
                    SortDesc sortDesc = (SortDesc)int.Parse(Request.QueryString["OrderSort"]);
                    orderBy.SortDesc = sortDesc;
                }
                catch
                {
                    return(HttpNotFound());
                }
            }
            string qType = "";

            if (!string.IsNullOrEmpty(Request.QueryString["type"]))
            {
                qType = Request.QueryString["type"];
            }
            bool     IsShowLabelLine = GetCustomLableCookie();
            DateTime SearchStartDate = DateTime.Now.AddDays(-14);
            DateTime SearchEndDate   = DateTime.Now;

            WorkV3.Common.DateRange rangeType = DateRange.DoubleWeeks;
            string SelectMembers = "";

            if (!string.IsNullOrEmpty(searchViewModel.SearchStartDate))
            {
                SearchStartDate = DateTime.Parse(searchViewModel.SearchStartDate);
            }
            if (!string.IsNullOrEmpty(searchViewModel.SearchEndDate))
            {
                SearchEndDate = DateTime.Parse(searchViewModel.SearchEndDate);
            }
            if (searchViewModel != null)
            {
                rangeType = searchViewModel.RangeType;
            }
            if (!string.IsNullOrEmpty(searchViewModel.SelectMembers))
            {
                SelectMembers = searchViewModel.SelectMembers;
            }
            if (searchViewModel != null && searchViewModel.IsShowCustomLableLine.HasValue)
            {
                IsShowLabelLine = searchViewModel.IsShowCustomLableLine.Value;
            }
            int        totalRecord = 0;
            Pagination pagination  = new Pagination
            {
                PageIndex = index ?? 1,
                PageSize  = WebInfo.PageSize
            };

            ViewBag.UploadUrl = uploadUrl;

            var StatisticConditionModel = Models.DataAccess.StatisticConditionDAO.GetItem(ID);
            AnalysisPageStatLogViewModel pageLogModel = new AnalysisPageStatLogViewModel();

            //AnalysisPageStatLogViewModel pageLogModel = Models.DataAccess.PagesView_LogDAO.GetWebPageStatLogStatistics(PageID, qType, SearchStartDate, SearchEndDate, orderBy,
            //        pagination.PageSize, pagination.PageIndex, out totalRecord);
            pageLogModel.TotalViewCount = Models.DataAccess.StatisticConditionDAO.GetStatistionValue(siteId, StatisticConditionModel, SearchStartDate, SearchEndDate);
            if (StatisticConditionModel.StatisticType == StatisticType.SummaryViewCount)
            {
                pageLogModel.SessionList = Models.DataAccess.StatisticConditionDAO.GeViewLogs(siteId, SearchStartDate, SearchEndDate, StatisticConditionModel, orderBy,
                                                                                              pagination.PageSize, pagination.PageIndex, out totalRecord);
            }
            if (StatisticConditionModel.StatisticType == StatisticType.MemberViewCount)
            {
                pageLogModel.SessionList = Models.DataAccess.StatisticConditionDAO.GeMemberViewLogs(siteId, SearchStartDate, SearchEndDate, StatisticConditionModel, orderBy,
                                                                                                    pagination.PageSize, pagination.PageIndex, out totalRecord);
            }
            //pageLogModel.LogDailyList = Models.DataAccess.StatisticConditionDAO.GetDailyStatistionValue(siteId, StatisticConditionModel, SearchStartDate, SearchEndDate);
            if (StatisticConditionModel.StatisticType == StatisticType.DailyViewCount)
            {
                pageLogModel.SessionList = Models.DataAccess.StatisticConditionDAO.GetUserViewLogs(siteId, SearchStartDate, SearchEndDate, StatisticConditionModel, orderBy,
                                                                                                   pagination.PageSize, pagination.PageIndex, out totalRecord);
            }
            if (pageLogModel != null && pageLogModel.SessionList != null && pageLogModel.SessionList.Count() > 0)
            {
                foreach (AnalysisPageViewSessionViewModel item in pageLogModel.SessionList)
                {
                    item.Url = Url.Action("Index", "Home", new { SiteSN = item.SiteSN, PageSN = item.SN, area = string.Empty });
                }
            }
            pageLogModel.LogDailyList = Models.DataAccess.StatisticConditionDAO.GetDailyStatistionValue(siteId, StatisticConditionModel, SearchStartDate, SearchEndDate);
            pageLogModel.Title        = StatisticConditionModel.Title;
            List <AnalysisLogCustomLabelLineViewModel> LabelLineList = new List <AnalysisLogCustomLabelLineViewModel>();
            var EnabledLabelLineModels = Models.DataAccess.LogStatisticLabelDAO.GetShowLabelLine(SearchStartDate, SearchEndDate);

            if (EnabledLabelLineModels != null && EnabledLabelLineModels.Count() > 0)
            {
                foreach (LogStatisticLabelModels model in EnabledLabelLineModels)
                {
                    LabelLineList.Add(new ViewModels.AnalysisLogCustomLabelLineViewModel()
                    {
                        Title      = model.Title,
                        LabelDate  = model.LabelDate.ToString("MM/dd"),
                        LabelColor = model.LabelColor
                    });
                }
            }
            pageLogModel.SearchStartDate       = SearchStartDate;
            pageLogModel.SearchEndDate         = SearchEndDate;
            pageLogModel.RangeType             = rangeType;
            pageLogModel.IsShowCustomLableLine = IsShowLabelLine;
            pageLogModel.LabelLineList         = LabelLineList;
            pageLogModel.OrderBy   = orderBy;
            pageLogModel.PageID    = ID.ToString();
            pagination.TotalRecord = totalRecord;
            ViewBag.Pagination     = pagination;
            SetCustomLableCookie(IsShowLabelLine);
            return(View(pageLogModel));
        }