Beispiel #1
0
        private string GetTempTileReportCount(string teamGuid, string userName)
        {
            string tileData = Request["TileData"];

            if (String.IsNullOrEmpty(tileData))
            {
                return("Querystring:TileData is empty!");
            }
            JavaScriptSerializer jss  = new JavaScriptSerializer();
            TileViewModel        para = jss.Deserialize <TileViewModel>(tileData);

            AppTile appTile = new AppTeamSiteCustomizedTile();

            appTile.logicType = (LogicType)Enum.Parse(typeof(LogicType), para.LogicType);

            SetAppTitleLogic(para.LogicString, appTile);
            using (MainDBUnitWorkContext context = new MainDBUnitWorkContext())
            {
                IReportRepository reportRepository = new ReportRepository(context);

                EditReportService reportService = new EditReportService(reportRepository, null, null, null, null, null);
                int reportCount = reportService.GetTempTilesWithReportCount(teamGuid, userName, appTile);

                return(reportCount.ToString());
            }
        }
Beispiel #2
0
        /// <summary>
        /// Convert a tile type to apptile type
        /// </summary>
        /// <param name="tile"></param>
        /// <returns></returns>
        public static AppTile ToAppTile(this Tile tile)
        {
            AppTile appTile = null;

            #region Initial
            if (tile.Id <= 3)
            {
                if (tile.Id == SystemDefinedTile.MyReports_MySubscriptions.SystemDefinedTileId)
                {
                    appTile = new AppMySubscriptionsTile();
                }
                else if (tile.Id == SystemDefinedTile.MyReports_MyReports.SystemDefinedTileId)
                {
                    appTile = new AppMyReportsTile();
                }
                else if (tile.Id == SystemDefinedTile.MyReports_MySubscriptions.SystemDefinedTileId)
                {
                    appTile = new AppMySubscriptionsTile();
                }
                //else
                //{
                //    throw new Exception(String.Format("DO NOT support the {0}", tile.Id.ToString()));
                //}
            }
            else
            {
                appTile = new AppTeamSiteCustomizedTile();
            }

            #endregion

            appTile.Id                = tile.Id;
            appTile.Title             = tile.Title;
            appTile.IsCustomized      = tile.IsCustomized;
            appTile.Top               = tile.Top;
            appTile.Left              = tile.Left;
            appTile.Width             = tile.Width;
            appTile.Height            = tile.Height;
            appTile.BackgroundColor   = tile.BackgroundColor;
            appTile.Icon              = tile.Icon;
            appTile.BackgroundImage   = tile.BackgroundImage;
            appTile.ImageOverlayColor = tile.ImageOverlayColor;
            appTile.ReportCountStyle  = tile.ReportCountStyle;
            appTile.OwnerTeamSiteId   = tile.OwnerTeamSiteId;
            appTile.Status            = ChangeStatus.Normal;
            appTile.TileType          = (TileType)(tile.TileType);
            appTile.logicType         = (LogicType)tile.LogicStringType;
            return(appTile);
        }
        private void UpdateTileInformation()
        {
            // Update team site dashboard settings

            var tileData = Request.Params["TilesData"];
            var teamGuid = Request.Params["SiteGUID"].ToString();
            // tile data
            JavaScriptSerializer jss          = new JavaScriptSerializer();
            List <TileViewModel> paraTileList = jss.Deserialize <List <TileViewModel> >(tileData);

            // Save the tile data into our database
            using (MainDBUnitWorkContext context = new MainDBUnitWorkContext()) {
                TileRepository repository = new TileRepository(context);

                // Get the team id by its team guid value
                TeamRepository           tRepository         = new TeamRepository(context);
                TeamAppService           teamService         = new TeamAppService(tRepository);
                TileQueryLogicRepository tileQueryRepository = new TileQueryLogicRepository(context);

                int teamId = teamService.GetAllTeamSites().First(_ => _.TeamGuid == Guid.Parse(teamGuid)).Id.Value;
                //validate the data
                if (paraTileList.Count() > 24)
                {
                    throw new ArgumentException("the count of the tile is more than 24");
                }

                foreach (var item in paraTileList)
                {
                    if (item.coordinateX < 0 || item.coordinateX > 7)
                    {
                        throw new ArgumentException("coordinateX must be between 0 and 7");
                    }

                    if (item.coordinateY < 0 || item.coordinateY > 2)
                    {
                        throw new ArgumentException("coordinateY must be between 0 and 2");
                    }

                    if (item.demensionX < 1 || item.demensionX > 8)
                    {
                        throw new ArgumentException("demensionX must be between 1 and 8");
                    }

                    if (item.demensionY < 1 || item.demensionY > 3)
                    {
                        throw new ArgumentException("demensionY must be between 1 and 3");
                    }
                }

                TileServices tService = new TileServices(repository, null, null, null, null, null, tileQueryRepository);

                List <AppTile> tiles = new List <AppTile>();

                List <AppTile> orignalTiles = tService.GetTilesByTeamId(teamId).ToList();

                //tiles will be remove
                foreach (var item in orignalTiles)
                {
                    if (!paraTileList.Any(_ => _.id == item.Id))
                    {
                        if (item.logicType == LogicType.AllReports)
                        {
                            continue;
                        }

                        AppTile appTile = tService.GetTileById(item.Id.Value);

                        appTile.Status = ChangeStatus.Delete;
                        tiles.Add(appTile);
                    }
                }

                foreach (var para in paraTileList)
                {
                    //tiles will be Added
                    if (para.id < 0)
                    {
                        AppTile appTile = new AppTeamSiteCustomizedTile();
                        appTile.TileType          = TileType.TeamSite;
                        appTile.Status            = ChangeStatus.Add;
                        appTile.Title             = para.title;
                        appTile.Top               = para.coordinateY;
                        appTile.Left              = para.coordinateX;
                        appTile.Width             = para.demensionX;
                        appTile.Height            = para.demensionY;
                        appTile.BackgroundColor   = para.backgroundColor;
                        appTile.Icon              = para.icon;
                        appTile.BackgroundImage   = para.backgroundImage;
                        appTile.ImageOverlayColor = para.overlayColor;
                        appTile.ReportCountStyle  = para.shownCount;
                        appTile.OwnerTeamSiteId   = teamId;
                        appTile.IsCustomized      = true;
                        appTile.logicType         = (LogicType)Enum.Parse(typeof(LogicType), para.LogicType);

                        SetAppTitleLogic(para.LogicString, appTile);
                        tiles.Add(appTile);
                    }

                    //tiles will be Updated
                    if (para.id > 0)
                    {
                        AppTile appTile = tService.GetTileById(para.id);

                        if (appTile == null)
                        {
                            continue;
                        }

                        appTile.Status            = ChangeStatus.Change;
                        appTile.Top               = para.coordinateY;
                        appTile.Left              = para.coordinateX;
                        appTile.Width             = para.demensionX;
                        appTile.Height            = para.demensionY;
                        appTile.BackgroundColor   = para.backgroundColor;
                        appTile.Icon              = para.icon;
                        appTile.BackgroundImage   = para.backgroundImage;
                        appTile.ImageOverlayColor = para.overlayColor;
                        appTile.ReportCountStyle  = para.shownCount;
                        appTile.IsCustomized      = true;

                        if (appTile.logicType != LogicType.AllReports)
                        {
                            appTile.Title     = para.title;
                            appTile.logicType = (LogicType)Enum.Parse(typeof(LogicType), para.LogicType);
                            SetAppTitleLogic(para.LogicString, appTile);
                        }

                        tiles.Add(appTile);
                    }
                }

                tService.ModifyTile(tiles);
            }
        }