예제 #1
0
        public void Create_sp(CharacterDashboardLayout model, string UserId, int old_CharacterDashboardLayoutId)
        {
            string consString = _configuration.GetSection("ConnectionStrings").GetSection("DefaultConnection").Value;

            using (SqlConnection con = new SqlConnection(consString))
            {
                using (SqlCommand cmd = new SqlCommand("Character_DuplicateLayout_And_Page"))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Connection  = con;
                    cmd.Parameters.AddWithValue("@CharacterLayoutID", model.CharacterDashboardLayoutId);
                    cmd.Parameters.AddWithValue("@OldCharacterDashboardLayoutId", old_CharacterDashboardLayoutId);
                    cmd.Parameters.AddWithValue("@CharacterId", model.CharacterId);
                    cmd.Parameters.AddWithValue("@UserId", UserId);
                    cmd.Parameters.AddWithValue("@IsDuplicatingLayout", true);
                    con.Open();
                    try
                    {
                        var a = cmd.ExecuteNonQuery();
                    }
                    catch (Exception ex)
                    {
                        con.Close();
                        throw ex;
                    }
                    con.Close();
                    //return true;
                }
            }
        }
예제 #2
0
        public async Task <List <CharacterDashboardLayout> > GetByCharacterId(int characterId, int page = -1, int pageSize = -1)
        {
            List <CharacterDashboardLayout> CharacterDashboardLayouts = null;

            if (page > 0 && pageSize > 0)
            {
                CharacterDashboardLayouts = _context.CharacterDashboardLayouts
                                            .Include(d => d.CharacterDashboardPages)
                                            .Where(x => x.CharacterId == characterId && x.IsDeleted != true).OrderBy(x => x.SortOrder).Skip(pageSize * (page - 1)).Take(pageSize).ToList();
            }
            else
            {
                CharacterDashboardLayouts = _context.CharacterDashboardLayouts
                                            .Include(d => d.CharacterDashboardPages)
                                            .Where(x => x.CharacterId == characterId && x.IsDeleted != true).OrderBy(x => x.SortOrder).ToList();
            }

            if (CharacterDashboardLayouts == null)
            {
                return(CharacterDashboardLayouts);
            }

            foreach (CharacterDashboardLayout cdl in CharacterDashboardLayouts)
            {
                cdl.CharacterDashboardPages = cdl.CharacterDashboardPages.Where(p => p.IsDeleted != true).OrderBy(x => x.SortOrder).ToList();
            }
            CharacterDashboardLayout _characterDashboardLayout = GetSharedLayoutByCharacterId(characterId);

            if (_characterDashboardLayout != null)
            {
                CharacterDashboardLayouts.Add(_characterDashboardLayout);
            }

            return(CharacterDashboardLayouts);
        }
예제 #3
0
 public async Task <CharacterDashboardLayout> Create(CharacterDashboardLayout item)
 {
     //item.IsDefaultComputer = false;
     //item.IsDefaultTablet = false;
     //item.IsDefaultMobile = false;
     return(await _repo.Add(item));
 }
예제 #4
0
        private void RemoveDefaultComputerDeviceFromOtherLayouts(CharacterDashboardLayout CDL)
        {
            var layouts = _context.CharacterDashboardLayouts.Where(x => x.CharacterDashboardLayoutId != CDL.CharacterDashboardLayoutId && x.CharacterId == CDL.CharacterId && x.IsDeleted != true).ToList();

            foreach (var item in layouts)
            {
                item.IsDefaultComputer = false;
            }
            _context.SaveChanges();
        }
예제 #5
0
        public CharacterDashboardLayout GetById(int?id)
        {
            CharacterDashboardLayout CharacterDashboardLayout = _context.CharacterDashboardLayouts
                                                                .Include(d => d.CharacterDashboardPages)
                                                                .Where(x => x.CharacterDashboardLayoutId == id && x.IsDeleted != true).SingleOrDefault();

            if (CharacterDashboardLayout == null)
            {
                return(CharacterDashboardLayout);
            }
            CharacterDashboardLayout.CharacterDashboardPages = CharacterDashboardLayout.CharacterDashboardPages.Where(p => p.IsDeleted != true).OrderBy(x => x.SortOrder).ToList();

            return(CharacterDashboardLayout);
        }
예제 #6
0
        public async Task <CharacterDashboardLayout> Update(CharacterDashboardLayout item)
        {
            var CharacterDashboardLayout = await _repo.Get(item.CharacterDashboardLayoutId);

            if (CharacterDashboardLayout == null)
            {
                return(CharacterDashboardLayout);
            }

            CharacterDashboardLayout.Name              = item.Name;
            CharacterDashboardLayout.DefaultPageId     = item.DefaultPageId;
            CharacterDashboardLayout.LayoutHeight      = item.LayoutHeight;
            CharacterDashboardLayout.LayoutWidth       = item.LayoutWidth;
            CharacterDashboardLayout.IsDefaultComputer = item.IsDefaultComputer;
            CharacterDashboardLayout.IsDefaultTablet   = item.IsDefaultTablet;
            CharacterDashboardLayout.IsDefaultMobile   = item.IsDefaultMobile;

            try
            {
                await _repo.Update(CharacterDashboardLayout);

                ///////////////////////////////////////////////
                if (CharacterDashboardLayout.IsDefaultComputer)
                {
                    RemoveDefaultComputerDeviceFromOtherLayouts(CharacterDashboardLayout);
                }
                if (CharacterDashboardLayout.IsDefaultTablet)
                {
                    RemoveDefaultTabletDeviceFromOtherLayouts(CharacterDashboardLayout);
                }
                if (CharacterDashboardLayout.IsDefaultMobile)
                {
                    RemoveDefaultMobileDeviceFromOtherLayouts(CharacterDashboardLayout);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(CharacterDashboardLayout);
        }
예제 #7
0
 public void UpdateDefaultLayout(int layoutId, int characterID = 0)
 {
     try
     {
         CharacterDashboardLayout layout = null;
         var allLayouts = new List <CharacterDashboardLayout> ();
         if (layoutId == -1)
         {
             layout     = new CharacterDashboardLayout();
             allLayouts = _context.CharacterDashboardLayouts
                          .Where(x => x.CharacterId == characterID && x.IsDeleted != true).OrderBy(x => x.SortOrder).ToList();
         }
         else
         {
             layout = _context.CharacterDashboardLayouts.Where(x => x.CharacterDashboardLayoutId == layoutId).FirstOrDefault();
             if (layout != null)
             {
                 allLayouts = _context.CharacterDashboardLayouts
                              .Where(x => x.CharacterId == layout.CharacterId && x.IsDeleted != true).OrderBy(x => x.SortOrder).ToList();
             }
         }
         if (layout != null)
         {
             foreach (var _layout in allLayouts)
             {
                 _layout.IsDefaultLayout = false;
             }
             layout.IsDefaultLayout = true;
             _context.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #8
0
        public CharacterDashboardLayout GetSharedLayoutByCharacterId(int characterId)
        {
            CharacterDashboardLayout sharedCharacterDashboardLayouts = new CharacterDashboardLayout();
            int?rulesetId = _context.Characters.Where(x => x.CharacterId == characterId).Select(x => x.RuleSetId).FirstOrDefault();

            List <RulesetDashboardLayout> ruleSetDashboardLayout = new List <RulesetDashboardLayout>();

            ruleSetDashboardLayout = _context.RulesetDashboardLayouts
                                     .Include(d => d.RulesetDashboardPages)
                                     .Where(x => x.RulesetId == rulesetId && x.IsSharedLayout == true && x.IsDeleted != true).ToList();
            if (ruleSetDashboardLayout.Count == 0 && _context.PlayerInvites.Where(x => x.PlayerCharacterID == characterId).Any())
            {
                //in case dashboard has no layout & page create shared layout
                var _layout = _rulesetDashboardLayoutService.Create(
                    new RulesetDashboardLayout()
                {
                    Name            = Const.SharedLayoutName,
                    SortOrder       = 1,
                    LayoutHeight    = 1280,
                    LayoutWidth     = 768,
                    RulesetId       = rulesetId,
                    IsSharedLayout  = true,
                    IsDefaultLayout = false
                }).Result;


                var _RulesetDashboardPage = _rulesetDashboardPageService.Create(new RulesetDashboardPage()
                {
                    RulesetDashboardLayoutId = _layout.RulesetDashboardLayoutId,
                    Name            = "Page1",
                    ContainerWidth  = 1280,
                    ContainerHeight = 768,
                    SortOrder       = 1,
                    RulesetId       = rulesetId
                }).Result;
                _layout.DefaultPageId = _RulesetDashboardPage.RulesetDashboardPageId;
                var result = _rulesetDashboardLayoutService.Update(_layout).Result;

                // listLayout = await _rulesetDashboardLayoutService.GetByRulesetId(rulesetId, page, pageSize);

                ruleSetDashboardLayout.Add(result);
            }
            if (ruleSetDashboardLayout.Any())
            {
                sharedCharacterDashboardLayouts = ruleSetDashboardLayout
                                                  .Select(x => new CharacterDashboardLayout()
                {
                    CharacterDashboardLayoutId = -1,
                    CharacterDashboardPages    = ruleSetDashboardLayout.FirstOrDefault().RulesetDashboardPages.Where(p => p.IsDeleted != true).Select(y => new CharacterDashboardPage()
                    {
                        BodyBgColor   = y.BodyBgColor,
                        BodyTextColor = y.BodyTextColor,
                        //Character,
                        CharacterDashboardLayoutId = -1,
                        CharacterDashboardPageId   = y.RulesetDashboardPageId,
                        CharacterId     = characterId,
                        ContainerHeight = y.ContainerHeight,
                        ContainerWidth  = y.ContainerWidth,
                        IsDeleted       = y.IsDeleted,
                        // Layout,
                        Name      = y.Name,
                        SortOrder = y.SortOrder,
                        // Tiles,
                        TitleBgColor   = y.TitleBgColor,
                        TitleTextColor = y.TitleTextColor
                    }).ToList(),
                    CharacterId       = characterId,
                    DefaultPageId     = x.DefaultPageId,
                    IsDefaultComputer = x.IsDefaultComputer,
                    IsDefaultMobile   = x.IsDefaultMobile,
                    IsDefaultLayout   = true,
                    IsDefaultTablet   = x.IsDefaultTablet,
                    IsDeleted         = x.IsDeleted,
                    LayoutHeight      = x.LayoutHeight,
                    LayoutWidth       = x.LayoutWidth,
                    Name      = x.Name,
                    SortOrder = x.SortOrder
                })
                                                  .FirstOrDefault();
                return(sharedCharacterDashboardLayouts);
            }
            return(null);
        }