Ejemplo n.º 1
0
        public bool Create(string name)
        {
            bool created = false;

            using (var model = new ShcDataModel())
            {
                var squads = model.Squads;
                var squad  = squads.SingleOrDefault(x => x.Name == name);
                if (squad == null)
                {
                    squad = new Squad {
                        Name = name, Description = ""
                    };
                    squads.Add(squad);
                    model.SaveChanges();

                    created = true;

                    squad = squads.SingleOrDefault(x => x.Name == name);
                    Squad = squad;
                    var admins = model.SquadAdmins;
                    admins.Add(new SquadAdmin {
                        Squad = squad.Id, Adminhash = Adminhash, Id = 0
                    });
                    model.SaveChanges();
                }
            }
            return(created);
        }
Ejemplo n.º 2
0
        public void AddItem(int itemId)
        {
            using (var model = new ShcDataModel())
            {
                model.SquadItems.Add(new SquadItem {
                    Item = itemId, Squad = Squad.Id
                });
                model.SaveChanges();

                var userItems = model.UserItems;
                var item      = model.SquadItems.Single(x => x.Item == itemId && x.Squad == Squad.Id);
                var items     = userItems.Where(x => x.Squad == Squad.Id)
                                .Select(u => u.Userhash)
                                .Distinct().ToList();

                if (!items.Contains(Userhash))
                {
                    items.Add(Userhash);
                }

                foreach (var i in items)
                {
                    var userItem = new UserItem {
                        Item = itemId, Squad = Squad.Id, Userhash = i, Value = ItemValue.None
                    };
                    userItems.Add(userItem);
                }
                model.SaveChanges();
            }
        }
Ejemplo n.º 3
0
        public void Join(int id)
        {
            using (var model = new ShcDataModel())
            {
                var memberShip = model.SquadMembers.SingleOrDefault(v => v.Squad == id && v.Userhash == Userhash);

                if (memberShip == null)
                {
                    memberShip = new SquadMember()
                    {
                        Squad = id, Userhash = Userhash
                    };
                    model.SquadMembers.Add(memberShip);

                    model.SaveChanges();
                }

                var squadItems = model.SquadItems.Where(sqi => sqi.Squad == id).Select(x => x.Item);
                var useritems  = model.UserItems.Where(ui => ui.Userhash == Userhash && ui.Squad == id).Select(x => x.Item);
                var join       = squadItems.Except(useritems);
                foreach (var item in join)
                {
                    model.UserItems.Add(new UserItem {
                        Userhash = Userhash, Item = item, Squad = id, Value = ItemValue.None
                    });
                }

                model.SaveChanges();
            }
        }
Ejemplo n.º 4
0
 public List <UserItem> GetSquadData(int squadId)
 {
     using (var model = new ShcDataModel())
     {
         return(model.UserItems.Where(t => t.Squad == squadId && t.Value > ItemValue.None).ToList());
     }
 }
Ejemplo n.º 5
0
        public ItemData SetUserValue(int itemid, ItemValue value, int squadid)
        {
            ItemData itemData = null;

            using (var model = new ShcDataModel())
            {
                var item = model.UserItems.SingleOrDefault(x => x.Userhash == Userhash && x.Item == itemid && x.Squad == squadid);
                if (item == null)
                {
                    item = new UserItem {
                        Userhash = Userhash, Item = itemid, Squad = squadid, Value = value
                    };
                    model.UserItems.Add(item);
                }
                else
                {
                    item.Value = value;
                }
                model.SaveChanges();
                var titem = model.Items.FirstOrDefault(x => x.Id == itemid);
                itemData = new ItemData(titem, value, model.UserItems.Where(x => x.Squad == squadid && x.Item == itemid && x.Value > ItemValue.None));

                return(itemData);
            }
        }
Ejemplo n.º 6
0
 public AdminModel(string name, int squadid) : this(name)
 {
     using (var model = new ShcDataModel())
     {
         Squad = model.Squads.Where(x => x.Id == squadid).FirstOrDefault();
     }
     CheckAdmin();
 }
Ejemplo n.º 7
0
 public void Leave(int id)
 {
     using (var model = new ShcDataModel())
     {
         model.UserItems.RemoveRange(model.UserItems.Where(x => x.Squad == id));
         model.SquadMembers.RemoveRange(model.SquadMembers.Where(x => x.Squad == id && x.Userhash == Userhash));
         model.SaveChanges();
     }
 }
Ejemplo n.º 8
0
 private void CheckAdmin()
 {
     using (var model = new ShcDataModel())
     {
         if (!model.SquadAdmins.Where(x => x.Squad == Squad.Id && x.Adminhash == Adminhash).Any())
         {
             throw new UnauthorizedAccessException("You are not the administrator for this squad!");
         }
     }
 }
Ejemplo n.º 9
0
        public void AddToSquadGroup(string userName)
        {
            ViewerModel vm = new ViewerModel(userName);

            using (var model = new ShcDataModel())
            {
                foreach (var user in model.SquadMembers.Where(x => x.Userhash == vm.Userhash))
                {
                    Groups.Add(Context.ConnectionId, user.Squad.ToString());
                }
            }
        }
Ejemplo n.º 10
0
 public void DeleteSquad()
 {
     using (var model = new ShcDataModel())
     {
         model.UserItems.RemoveRange(model.UserItems.Where(x => x.Squad == Squad.Id));
         model.SquadAdmins.RemoveRange(model.SquadAdmins.Where(x => x.Squad == Squad.Id));
         model.Squads.RemoveRange(model.Squads.Where(x => x.Id == Squad.Id));
         model.SquadMembers.RemoveRange(model.SquadMembers.Where(x => x.Id == Squad.Id));
         model.SquadItems.RemoveRange(model.SquadItems.Where(x => x.Id == Squad.Id));
         model.SaveChanges();
     }
 }
Ejemplo n.º 11
0
 public List <UserData> GetUserData()
 {
     using (var model = new ShcDataModel())
     {
         var squad = model.Squads;;
         var items = model.Items;
         return(model.UserItems.Where(x => x.Userhash == Userhash)
                .Join(squad, x => x.Squad, y => y.Id, (UserItem, Squad) => new { UserItem, Squad })
                .Join(items, x => x.UserItem.Item, y => y.Id, (UserItemSquad, Item) => new UserData(UserItemSquad.UserItem, UserItemSquad.Squad, Item))
                .ToList());
     }
 }
Ejemplo n.º 12
0
        public void RemoveItem(int itemId)
        {
            using (var model = new ShcDataModel())
            {
                var t    = model.SquadItems;
                var item = t.Where(x => x.Squad == Squad.Id && x.Item == itemId);
                if (!item.Any())
                {
                    return;
                }

                var userItems = model.UserItems;
                userItems.RemoveRange(userItems.Where(x => x.Squad == Squad.Id && x.Item == itemId));

                t.RemoveRange(item);
                model.SaveChanges();
            }
        }