Esempio n. 1
0
        void DrawTile(Map map, Layer layer, Camera2D camera, Vector2 position, string selectedTileName)
        {
            if (!string.IsNullOrEmpty(selectedTileName))
            {
                var point = new Vector2((int)((camera.Position.X + position.X) / 32), (int)((camera.Position.Y + position.Y) / 32));

                if (layer.Tiles.ContainsKey(point))
                {
                    layer.Tiles.Remove(point);
                }

                layer.Tiles.Add(point, TileRepository.GetTile(selectedTileName));

                /*UndoService.Current[map].AddChange(new DelegateChange(null, new Action(() =>
                 * {
                 *  layer.Tiles.Remove(point);
                 * }), new Action(() =>
                 * {
                 *  layer.Tiles.Add(point, TileRepository.GetTile(selectedTileName));
                 * }), selectedTileName), "Draw a tile");*/

                /*MainForm.MapPanel.AddShadowForObject(Texture2D.FromStream(MainForm.MapPanel.GraphicsDevice, TileRepository.GetTile(selectedTileName).Texture),
                 *  point);*/

                base.OnMouseMove(map, layer, camera, position, selectedTileName);
            }
        }
Esempio n. 2
0
        void RefreshListView()
        {
            var query = TileRepository.GetTiles(textBox1.Text).AsQueryable();

            if (comboBox1.SelectedItem != null)
            {
                query = query.Where(p => p.Name.Split('/')[0] == comboBox1.SelectedItem.ToString());
            }
            else if (!string.IsNullOrWhiteSpace(comboBox1.SelectedText))
            {
                query = query.Where(p => p.Name.Split('/')[0].IndexOf(comboBox1.SelectedText, StringComparison.OrdinalIgnoreCase) >= 0);
            }

            new Thread(new ThreadStart(() =>
            {
                this.Invoke((MethodInvoker)(() =>
                {
                    tilesListView.Clear();
                    imageList1.Images.Clear();

                    foreach (var tile in query.ToList())
                    {
                        imageList1.Images.Add(tile.Name, Image.FromStream(tile.Texture));
                        tilesListView.Items.Add(Path.GetFileNameWithoutExtension(tile.Name), tile.Name);
                    }
                }));
            })).Start();
        }
        private string LoadTeamTiles()
        {
            var    teamGuid  = Request.Params["SiteGUID"].ToString();
            string userAlias = Session["UserName"].ToString();
            // tile data
            JavaScriptSerializer jss = new JavaScriptSerializer();

            // 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);
                ReportRepository         reportRepository    = new ReportRepository(context);

                int                  teamId   = teamService.GetAllTeamSites().First(_ => _.TeamGuid == Guid.Parse(teamGuid)).Id.Value;
                TileServices         tService = new TileServices(repository, tRepository, reportRepository, null, null, null, tileQueryRepository);
                List <TileViewModel> tiles    = tService.GetCustomerizeTilesWithCountByTeamId(teamId, userAlias, true, teamGuid).Select(_ => _.ToTileViewModel()).ToList <TileViewModel>();

                return(jss.Serialize(tiles));
            }
        }
Esempio n. 4
0
        public ActionResult Index()
        {
            var repos = new TileRepository();

            ViewData["tiles"] = repos.GetTiles();
            return(View());
        }
Esempio n. 5
0
    public static void Generate(string map, Transform container, TileRepository tileRepository, float tileOffset, MapifyLayout layout)
    {
        var localPositionCalculator = new LocalPositionCalculator(tileOffset, layout);
        var iterator = new MapIterator(map.SplitOnNewline(), localPositionCalculator);

        new LevelPopulator(iterator, tileRepository, container).Populate();
    }
Esempio n. 6
0
    public void TestGetTileTypeCount()
    {
        // TODO: Add your test code here
        TileRepository repository = new TileRepository(config);

        Assert.That(repository.GetTileTypeCount(), Is.EqualTo(2));
    }
Esempio n. 7
0
        public ActionResult SignalAll()
        {
            var repos = new TileRepository();

            foreach (var tile in repos.GetTiles())
            {
                tile.Signal.FireChanged();
            }

            return(RedirectToAction("index"));
        }
Esempio n. 8
0
    public TilesStack(TileRepository tr)
    {
        stack = new Stack <Tile>();

        for (int type = 0; type < tr.GetTileTypeCount(); type++)
        {
            for (int i = 0; i < tr.GetTileCount(type); i++)
            {
                stack.Push(tr.GetTile(type));
            }
        }
    }
Esempio n. 9
0
    public Game(int numPlayers, TileRepository tileRepository)
    {
        this.numPlayers = numPlayers;
        playersHands    = new Tile[numPlayers];
        stations        = LoadStations();
        points          = new int[numPlayers];

        this.tileRepository = tileRepository;
        InitialHandDraw();

        grid      = new Tile[Driver.Instance.BoardSize, Driver.Instance.BoardSize];
        boardSize = Driver.Instance.BoardSize;
    }
Esempio n. 10
0
        public override void OnMouseClick(Map map, Layer layer, Camera2D camera, Vector2 position, string selectedTileName)
        {
            if (!string.IsNullOrEmpty(selectedTileName))
            {
                var orginal = new Vector2((int)((camera.Position.X + position.X) / 32), (int)((camera.Position.Y + position.Y) / 32));

                Tile target = null;
                layer.Tiles.TryGetValue(orginal, out target);


                FloodFill(layer, orginal, orginal, target, TileRepository.GetTile(selectedTileName));
            }
        }
Esempio n. 11
0
    public Game(string tilesConfig, string scheduleConfig, int numOfPlayers)
    {
        Width             = 8;
        Height            = 8;
        this.NumOfPlayers = numOfPlayers;
        this.Stations     = new Station[32];

        board = new Tile[Width, Height];
        TileRepository tileRepository = new TileRepository(tilesConfig);

        stack = new TilesStack(tileRepository);
        LoadScheduleConfig(scheduleConfig);
    }
Esempio n. 12
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Minesweeper.Game.GameEngine"/> class.
        /// </summary>
        /// <param name="tableSize">Table size.</param>
        /// <param name="mines">Mines.</param>
        public GameController(int tableSize, int mines)
        {
            tileRepository = new TileRepository();
            TableSize      = tableSize;

            Alive      = true;
            MinesCount = mines;
            FlagsLimit = mines;

            GenerateTable();

            IsRunning = true;
            GLib.Timeout.Add(1000, new GLib.TimeoutHandler(TimerTick));
        }
Esempio n. 13
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SlidingPuzzle.Controllers.GameController"/> class.
        /// </summary>
        /// <param name="tableSize">Table size.</param>
        public GameController(int tableSize)
        {
            GameInfo = new GameInfo
            {
                TableSize = tableSize,
                IsRunning = true
            };

            repository = new TileRepository();
            random     = new Random();

            InitializeTable();
            ShuffleTable();

            GLib.Timeout.Add(1000, new GLib.TimeoutHandler(OnGameTimerTick));
        }
Esempio n. 14
0
        private static void InitRepository(string directoryPath)
        {
            var directory = new DirectoryInfo(directoryPath);

            if (!directory.Exists)
            {
                Console.WriteLine($"Directory \"{directoryPath}\" does not exists");
                return;
            }

            Console.WriteLine($"Initializing \"{directoryPath}\"");

            var repository = new TileRepository(directory);

            repository.InitRepository(true);
        }
Esempio n. 15
0
        public ActionResult Scramble(int id)
        {
            var repos = new TileRepository();
            var tile  = repos.GetTile(id);

            var random     = new Random();
            var characters = tile.Text
                             .ToCharArray()
                             .Select(ch => new { ch, order = random.NextDouble() })
                             .OrderBy(x => x.order)
                             .Select(x => x.ch);

            repos.ChangeTile(id, new string(characters.ToArray()));

            return(RedirectToAction("index"));
        }
Esempio n. 16
0
        public ActionResult ResetAll()
        {
            var repos    = new TileRepository();
            var tileData = "the quick brown fox jumped over the sleepy dog"
                           .Split(' ')
                           .Select((text, index) => new { text, index });

            foreach (var data in tileData)
            {
                if (repos.GetTile(data.index).Text != data.text)
                {
                    repos.ChangeTile(data.index, data.text);
                }
            }

            return(RedirectToAction("index"));
        }
Esempio n. 17
0
        private string UploadNewArticle()
        {
            int newAddedReportId     = -1;
            JavaScriptSerializer jss = new JavaScriptSerializer();
            var paramDes             = jss.Deserialize <AppReport>(Request.Params["articleData"]);

            using (MainDBUnitWorkContext context = new MainDBUnitWorkContext())
            {
                ReportRepository   repository     = new ReportRepository(context);
                UserRepository     uRepository    = new UserRepository(context);
                TeamRepository     tRepository    = new TeamRepository(context);
                CategoryRepository cRepository    = new CategoryRepository(context);
                TeamTagRepository  tagRepository  = new TeamTagRepository(context);
                TileRepository     tileRepository = new TileRepository(context);
                EditReportService  service        = new EditReportService(repository, uRepository, tRepository, cRepository, tagRepository, tileRepository);
                newAddedReportId = service.AddReport(paramDes);
            }
            return("{\"id\":\"" + newAddedReportId + "\"}");
        }
Esempio n. 18
0
        public Form1()
        {
            InitializeComponent();

            p  = new Player(res.Player, gw);
            p2 = new Enemy(res.Player, gw)
            {
                Location = new DecimalPoint(3050, 3150)
            };
            gw.Player    = p;
            p.Location.X = 3000;
            p.Location.Y = 3000;

            p2.TargetSpeed    = 6;
            p2.Angle          = 180;
            p2.MotionBehavior = new CircleMotionBehavior(p2, gw, p.Location);
            Tile grass = new Tile(res.Grass, 0);

            grass.IsSolid = false;
            Tile rock = new Tile(res.Rock, 1);

            rock.IsSolid = true;
            Tile Brick = new Tile(res.BrickWall, 2);

            rock.IsSolid = true;
            Tile grassstone = new Tile(res.FloorsMedieval, 3);

            rock.IsSolid = false;
            TileRepository.Add(grass);
            TileRepository.Add(rock);
            TileRepository.Add(Brick);
            TileRepository.Add(grassstone);

            game      = new Game(this.CreateGraphics(), gw, this.Size);
            this.Size = Game.Size;
            gw.GameObjects.Add(p);
            gw.GameObjects.Add(p2);

            t = new Thread(Run);
            t.Start();
        }
Esempio n. 19
0
        private string GetAdminReportFromCurrentTeamSite()
        {
            string tileID   = Request["TileID"];
            string teamGuid = Request["SiteGUID"];
            string userName = Session["UserName"] == null ? "" : Session["UserName"].ToString();

            using (MainDBUnitWorkContext context = new MainDBUnitWorkContext())
            {
                ReportRepository   repository     = new ReportRepository(context);
                UserRepository     uRepository    = new UserRepository(context);
                TeamRepository     tRepository    = new TeamRepository(context);
                CategoryRepository cRepository    = new CategoryRepository(context);
                TeamTagRepository  tagRepository  = new TeamTagRepository(context);
                TileRepository     tileRepository = new TileRepository(context);
                EditReportService  service        = new EditReportService(repository, uRepository, tRepository, cRepository, tagRepository, tileRepository);
                var reports = service.GetAllReportsOfTeamSite(userName, teamGuid, true, global::Application.MainBoundedContect.Enums.SortField.ReportTitle,
                                                              global::Application.MainBoundedContect.Enums.SortOrder.ASC);

                JavaScriptSerializer jss = new JavaScriptSerializer();
                return(jss.Serialize(reports));
            }
        }
Esempio n. 20
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            this.KeyPreview = true;

            tilesListView.MultiSelect = false;
            textBox1.Width            = tilesListView.Width - textBox1.Location.X;
            comboBox1.Width           = tilesListView.Width - comboBox1.Location.X;

            MapPanel = mapPanel1;

            mapPanel1.Map        = new Map();
            mapPanel1.ActiveTool = _tools[drawToolButton];

            mapPanel1.Map.Layers.Add(new Layer()
            {
                Name  = "Base",
                Order = 0
            });

            mapPanel1.Krpyton.Lights = mapPanel1.Map.Lights;
            // mapPanel1.Krpyton.Hulls = mapPanel1.Map.Shadows;

            mapPanel1.ActiveLayer = mapPanel1.Map.Layers[0];

            UndoService.Current[mapPanel1.Map].UndoStackChanged += new EventHandler(MainForm_UndoStackChanged);
            UndoService.Current[mapPanel1.Map].RedoStackChanged += new EventHandler(MainForm_RedoStackChanged);


            var directory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Objects");

            TileRepository.Load(directory);

            foreach (var category in Directory.GetDirectories(directory))
            {
                this.comboBox1.Items.Add(Path.GetFileNameWithoutExtension(category));
            }
        }
Esempio n. 21
0
        private string GetAdminTileFilterInfo(string userName, string teamGuid, bool isAdmin)
        {
            JavaScriptSerializer jss = new JavaScriptSerializer();
            // TileManager tm = new TileManager();

            TileFilterListViewModel filterViewModel = new TileFilterListViewModel();

            using (MainDBUnitWorkContext context = new MainDBUnitWorkContext())
            {
                ICategoryRepository _categoryRepository = new CategoryRepository(context);
                ITagRepository      _tagRepository      = new TeamTagRepository(context);
                ITileRepository     _tileRepository     = new TileRepository(context);
                ITeamRepository     _teamRepository     = new TeamRepository(context);
                IReportRepository   _reportRepository   = new ReportRepository(context);
                IUserRepository     _userRepository     = new UserRepository(context);

                TileServices tileService = new TileServices(_tileRepository, _teamRepository, _reportRepository, _userRepository, _tagRepository, _categoryRepository, null);

                //Owner
                IEnumerable <UserLoginApp> userList = tileService.GetOwnerList(userName, teamGuid, isAdmin);
                filterViewModel.Owner = userList.OrderBy(_ => _.UserName).Distinct <UserLoginApp>(new UserComparer());


                //Category
                IEnumerable <AppCategory> categoryList = tileService.GetCategoryList();
                filterViewModel.SubCategory = categoryList.OrderBy(_ => _.CategoryName).Distinct <AppCategory>(new CategoryComparer());


                //Tag
                IEnumerable <AppTeamTag> tagList = tileService.GetTagListByTeam(teamGuid).Distinct <AppTeamTag>(new TagComparer());
                filterViewModel.Tag = tagList;
            }



            return(jss.Serialize(filterViewModel));
        }
Esempio n. 22
0
        private string GetArticlesByTagId()
        {
            int    tagId             = int.Parse(Request.QueryString["tagid"]);
            string teamId            = Request.QueryString["teamid"];
            JavaScriptSerializer jss = new JavaScriptSerializer();

            string userAlias = Session["UserName"] == null?"Test":Session["UserName"].ToString();

            using (MainDBUnitWorkContext context = new MainDBUnitWorkContext())
            {
                ReportRepository   repository     = new ReportRepository(context);
                UserRepository     uRepository    = new UserRepository(context);
                TeamRepository     tRepository    = new TeamRepository(context);
                CategoryRepository cRepository    = new CategoryRepository(context);
                TeamTagRepository  tagRepository  = new TeamTagRepository(context);
                TileRepository     tileRepository = new TileRepository(context);
                EditReportService  service        = new EditReportService(repository, uRepository, tRepository, cRepository, tagRepository, tileRepository);

                var services = service.GetReportsOfTeamSiteByTagId(userAlias, teamId, true, tagId, global::Application.MainBoundedContect.Enums.SortField.ReportTitle, global::Application.MainBoundedContect.Enums.SortOrder.ASC);

                var otherReports = services.Select(report1 => new ReportItem()
                {
                    ID                = report1.Id.Value,
                    TagName           = report1.Tags.FirstOrDefault(_ => _.Id.Value == tagId).Title,
                    ReportDescription = report1.Description,
                    ReportName        = report1.Title,
                    ReprotStatus      = report1.Status.Name,
                    ReportFeaturePics = report1.Images,
                    ReportOwners      = report1.Owners.Select(_ => new UserLoginApp {
                        Sex = _.Sex, Id = _.Id, UserEmail = _.UserEmail, UserName = _.UserName, UserPhoto = _.UserPhoto
                    }).ToList <UserLoginApp>()
                });

                return(jss.Serialize(otherReports));
            }
        }
Esempio n. 23
0
        private string GetReports()
        {
            string userName = Session["UserName"] == null ? "" : Session["UserName"].ToString();
            string output;
            string siteType = Request["siteType"];
            string teamGuid = Request["SiteGuid"];

            JavaScriptSerializer jss = new JavaScriptSerializer();
            var paramDes             = jss.Deserialize <WebApplication1.Models.QueryParameterViewModel>(Request["queryParam"]);

            int tileId = int.Parse(paramDes.TileId);


            // Get the reports from the reports list
            using (MainDBUnitWorkContext context = new MainDBUnitWorkContext())
            {
                ReportRepository         rep       = new ReportRepository(context);
                TileRepository           tileRep   = new TileRepository(context);
                TileQueryLogicRepository tileQuery = new TileQueryLogicRepository(context);
                TileServices             tService  = new TileServices(tileRep, null, null, null, null, null, tileQuery);

                var tile = tService.GetTileById(tileId);

                EditReportService editReport = new EditReportService(rep, null, null, null, null, tileRep, tileQuery);


                #region Get ReportFilter
                ReportFilter filer = new ReportFilter();
                foreach (WebApplication1.Models.FilterModel vm in paramDes.FilterEntityList)
                {
                    switch (vm.FilterType)
                    {
                    case "Tag":
                        filer.TagsIdCollection = (from fl in vm.FilterItemList select int.Parse(fl.Value)).ToList();
                        break;

                    case "Owner":
                        filer.OwnerIdCollection = (from fl in vm.FilterItemList select fl.Value).ToList();
                        break;

                    case "Sub Category":
                        filer.SubCategoryIdCollection = (from fl in vm.FilterItemList select int.Parse(fl.Value)).ToList();
                        break;

                    default:
                        break;
                    }
                }
                #endregion


                // TO-DO: Team admin is set to true
                var reports = editReport.GetReportsByTeamWithReportsRequire(teamGuid,
                                                                            tileId, filer, true, userName, paramDes.CurrentPage,
                                                                            paramDes.PageSize,
                                                                            SortField.ReportTitle, (paramDes.SortAscending ? SortOrder.ASC : SortOrder.DESC)).ToArray();


                ReportListModel rptList = GetReportList(reports, Convert.ToInt32(paramDes.TileId));

                output = jss.Serialize(rptList);
                return(output);
            }
        }
Esempio n. 24
0
 // Use this for initialization
 void Awake()
 {
     tileRepository = new TileRepository();
 }
Esempio n. 25
0
        private string GetArticlesByID()
        {
            JavaScriptSerializer jss = new JavaScriptSerializer();
            var    paramDes          = jss.Deserialize <QueryParameterReport>(Request.Params["queryParam"]);
            int    id       = paramDes.articleid;
            string teamGuid = paramDes.teamguid;

            string userAlias = Session["UserName"] == null ? "Test" : Session["UserName"].ToString();

            using (MainDBUnitWorkContext context = new MainDBUnitWorkContext())
            {
                ReportRepository   repository     = new ReportRepository(context);
                UserRepository     uRepository    = new UserRepository(context);
                TeamRepository     tRepository    = new TeamRepository(context);
                CategoryRepository cRepository    = new CategoryRepository(context);
                TeamTagRepository  tagRepository  = new TeamTagRepository(context);
                TileRepository     tileRepository = new TileRepository(context);
                EditReportService  service        = new EditReportService(repository, uRepository, tRepository, cRepository, tagRepository, tileRepository);

                // This report
                var report = service.GetReportById(id);

                var category = report.Categories.Select(_ => _.Id.GetValueOrDefault()).ToList <int>();

                // Other reports
                var otherReportsTemp = service.
                                       GetReportsOfTeamSiteByCategory(userAlias, teamGuid, true, category, global::Application.MainBoundedContect.Enums.SortField.ReportTitle, global::Application.MainBoundedContect.Enums.SortOrder.ASC).Where(_ => _.Id.Value != id).ToList <AppReport>();

                // Assemble the reports information
                var thisReport = new ReportItem()
                {
                    ReportTags        = report.Tags,
                    ID                = report.Id.Value,
                    ReportFeaturePics = report.Images,
                    ReportDescription = report.Description,
                    ReprotContent     = report.Content,
                    ReportName        = report.Title,
                    ReprotStatus      = report.Status.Name,
                    ReportOwners      = report.Owners.Select(_ => new UserLoginApp {
                        Id = _.Id, UserEmail = _.UserEmail, UserName = _.UserName
                    }).ToList <UserLoginApp>()
                };

                var otherReports = otherReportsTemp.Select(report1 => new ReportItem()
                {
                    ID = report1.Id.Value,
                    ReportDescription = report1.Description,
                    ReportName        = report1.Title,
                    ReprotStatus      = report1.Status.Name,
                    ReportOwners      = report1.Owners.Select(_ => new UserLoginApp {
                        Id = _.Id, UserEmail = _.UserEmail, UserName = _.UserName
                    }).ToList <UserLoginApp>()
                });

                QueryParameterReportSearch reports = new QueryParameterReportSearch()
                {
                    ThisReport = thisReport, OtherReports = otherReports == null ? null : otherReports.ToList <ReportItem>()
                };

                // Return the search result
                return(jss.Serialize(reports));
            }
        }
Esempio n. 26
0
 public MapTileController(IConfiguration config)
 {
     _config         = config;
     _tileRepository = Create();
 }
        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);
            }
        }
        private void SetAppTitleLogic(string logicString, AppTile appTile)
        {
            using (MainDBUnitWorkContext context = new MainDBUnitWorkContext())
            {
                TileRepository   repository        = new TileRepository(context);
                ReportRepository _reportRepository = new ReportRepository(context);

                if (!string.IsNullOrEmpty(logicString))
                {
                    EditReportService reportService = new EditReportService(null, null, null, null, null, null);

                    switch (appTile.logicType)
                    {
                    case LogicType.Static:
                        appTile.BasicLogic = null;
                        break;

                    case LogicType.Selected:
                        List <int> cataIDList = logicString.Split(',').Select(_ => Convert.ToInt32(_)).ToList();
                        appTile.BasicLogic = (new ReportDataId()).In(cataIDList);
                        break;

                    case LogicType.Filtered:
                        ReportFilter filer = new ReportFilter();

                        JavaScriptSerializer jss = new JavaScriptSerializer();

                        #region Deserialize
                        TileFilterListViewModel vm = new TileFilterListViewModel();
                        if (!String.IsNullOrEmpty(logicString))
                        {
                            vm = jss.Deserialize <TileFilterListViewModel>(logicString);
                        }

                        #endregion

                        #region Get ReportFilter
                        filer.OwnerIdCollection = (from o in vm.Owner select o.Id).ToList();
                        //filer.CatalogTypeIdCollection = (from c in vm.CatelogType select c.Id).ToList();
                        filer.TagsIdCollection        = (from t in vm.Tag select t.Id.Value).ToList();
                        filer.SubCategoryIdCollection = (from c in vm.SubCategory select c.Id.Value).ToList();
                        #endregion

                        appTile.BasicLogic = reportService.GenerateLogicByFilter(filer);
                        break;

                    case LogicType.Tagged:
                        List <int> tagIds = logicString.Split(',').Select(i => int.Parse(i.Trim())).ToList();
                        appTile.BasicLogic = (new TagId()).In(tagIds);
                        break;

                    case LogicType.AllReports:
                        appTile.BasicLogic = null;
                        break;
                    }
                }
                else
                {
                    appTile.BasicLogic = null;
                }
            }
        }
Esempio n. 29
0
        private string GetFilter()
        {
            string sitetype = Request["sitetype"];

            string siteGUID = Request["SiteGuid"];

            string searchWords = Request["SearchWords"];


            int tileId = int.Parse(Request["tileId"]);

            //if (tileId == 0)
            //{
            //    TileManager tm = new TileManager();
            //    if (sitetype.ToLower() == "selfservice")
            //    {
            //        tileId = SystemDefinedTile.SelfService_AllBIModels.SystemDefinedTileId;
            //    }
            //    else
            //    {
            //        tileId = SystemDefinedTile.MyReports_AllReports.SystemDefinedTileId;
            //    }
            //}


            string logonUser = Session["UserName"] == null ? "" : Session["UserName"].ToString();

            bool isCurrentSiteAdmin = logonUser == "" ? false : service.GetUserAdminTeams(logonUser).Count() > 0;

            using (MainDBUnitWorkContext context = new MainDBUnitWorkContext())
            {
                IReportRepository         report_repository     = new ReportRepository(context);
                IUserRepository           user_repository       = new UserRepository(context);
                ITeamRepository           team_repository       = new TeamRepository(context);
                ICategoryRepository       category_repository   = new CategoryRepository(context);
                ITagRepository            tag_repository        = new TeamTagRepository(context);
                ITileRepository           tile_repository       = new TileRepository(context);
                ITileQueryLogicRepository tile_query_repository = new TileQueryLogicRepository(context);

                EditReportService sa = new EditReportService(report_repository, user_repository, team_repository, category_repository, tag_repository, tile_repository, tile_query_repository);

                FilterListViewModel filterList = new FilterListViewModel();

                #region query filter data
                int DataCount = 0;
                ICollection <Statistics> ls = null;
                switch (sitetype.ToLower())
                {
                case "teamsite":
                    ls = sa.GetTeamSiteReportsStatistics(tileId, logonUser, siteGUID, isCurrentSiteAdmin);
                    break;

                case "reportcatalog":
                    break;

                //case "myreport":
                //    ls = sa.GetMyReportsStatistics(tileId, logonUser, teamSiteGuidUnderControl);
                //    break;
                //case "selfservice":
                //    ls = sa.GetSelfServiceStatistics(tileId, logonUser, teamSiteGuidUnderControl);
                //    break;
                //case "searchreport":
                //    ls = sa.GetSearchReportsStatistics(logonUser, teamSiteGuidUnderControl, searchWords, out DataCount);
                //    break;
                default:
                    break;
                }
                #endregion

                filterList.DataCount = DataCount;

                #region Get Statistics business moel
                foreach (Statistics l in ls)
                {
                    FilterEntityViewModel filterEty = new FilterEntityViewModel();
                    filterEty.FilterType = l.Name;

                    foreach (AttributeValue attr in l.Values)
                    {
                        Application.MainBoundedContect.ViewModel.Filters.FilterItem item = new Application.MainBoundedContect.ViewModel.Filters.FilterItem();
                        item.Name = attr.Name;
                        if (l.Name == "Owner")
                        {
                            item.Value = attr.GUID.ToString();
                        }
                        else
                        {
                            item.Value = attr.Value.ToString();
                        }
                        item.Count       = attr.Count;
                        item.ParentValue = attr.ParentValue;
                        filterEty.FilterItemList.Add(item);
                    }

                    if (!filterEty.FilterType.Equals("Category"))
                    {
                        filterEty.FilterItemList.OrderByDescending(c => c.Count).ThenBy(n => n.Value);
                    }

                    filterList.FilterList.Add(filterEty);
                }

                JavaScriptSerializer jss = new JavaScriptSerializer();
                #endregion

                return(jss.Serialize(filterList));
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            JavaScriptSerializer jss = new JavaScriptSerializer();

            using (MainDBUnitWorkContext context = new MainDBUnitWorkContext())
            {
                TeamTagRepository tagRepository = new TeamTagRepository(context);

                TeamRepository       teamRepository   = new TeamRepository(context);
                TeamStatusRepository statusRepository = new TeamStatusRepository(context);
                ITileRepository      tileRepository   = new TileRepository(context);
                IReportRepository    reportRepository = new ReportRepository();
                TeamAdminService     tService         = new TeamAdminService(tagRepository, teamRepository, statusRepository, tileRepository, reportRepository);
                var  teamGuid = Request.Params["SiteGUID"].ToString();
                Guid guid     = Guid.Parse(teamGuid);
                int  teamId   = teamRepository.GetFiltered(_ => _.TeamGuid == guid).FirstOrDefault().Id;

                var UserName = Session["UserName"];

                if (Request["queryType"] == "getreportstatus")
                {
                    // If current user is an admin.
                    var team = teamRepository.GetAll().FirstOrDefault(_ => _.Id == teamId);
                    if (UserName == null)
                    {
                        Response.Redirect("../MyAccounts/NoLoginPage.aspx");
                    }
                    else
                    {
                        List <AppStatus> status = new List <AppStatus>();

                        bool isAdmin = team.TeamOwners.FirstOrDefault(_ => _.UserName == UserName.ToString().Trim()) != null;
                        if (isAdmin)
                        {
                            status = tService.GetStatusByRole(1).ToList <AppStatus>();
                        }
                        else
                        {
                            status = tService.GetStatusByRole(0).ToList <AppStatus>();
                        }
                        string r = jss.Serialize(status);
                        Response.Write(r);
                    }
                }
                if (Request["queryType"] == "getsitetags")
                {
                    var tags = tService.GetTagsByTeamId(Guid.Parse(teamGuid));

                    Response.Write(jss.Serialize(tags));
                }
                if (Request["queryType"] == "updatetags")
                {
                    List <AppTeamTag> tags = new List <AppTeamTag>();
                    tags = jss.Deserialize <List <AppTeamTag> >(Request.Params["TagData"]);

                    List <AppTeamTag> tagsUpdate = new List <AppTeamTag>();

                    var originalTags = tService.GetTagsByTeamId(Guid.Parse(teamGuid));
                    foreach (var item in originalTags)
                    {
                        if (!tags.Any(_ => _.Id == item.Id))
                        {
                            AppTeamTag appTag = tService.GetTagById(item.Id.Value);

                            appTag.Status = tagStatus.Delete;
                            tagsUpdate.Add(appTag);
                        }
                    }

                    foreach (var para in tags)
                    {
                        if (para.Id < 0)
                        {
                            AppTeamTag appTag = new AppTeamTag();
                            appTag.Title    = para.Title;
                            appTag.TeamGuid = teamGuid;
                            appTag.Status   = tagStatus.Add;
                            appTag.TeamId   = teamId;
                            tagsUpdate.Add(appTag);
                        }
                        else
                        {
                            AppTeamTag appTag = tService.GetTagById(para.Id.Value);
                            if (appTag == null)
                            {
                                continue;
                            }
                            appTag.Status   = tagStatus.Modify;
                            appTag.TeamGuid = teamGuid;
                            appTag.Title    = para.Title;
                            appTag.TeamId   = teamId;

                            tagsUpdate.Add(appTag);
                        }
                    }

                    tService.ModifyTags(tagsUpdate);
                    var tags_after = tService.GetTagsByTeamId(Guid.Parse(teamGuid));
                    Response.Write(jss.Serialize(tags_after));
                }
            }
        }