Ejemplo n.º 1
0
 public void SaveMetering(IMetering metering)
 {
     using (var dbContextTransaction = _context.Database.BeginTransaction())
     {
         try
         {
             var m = _context.Meterings.Add(Mapper.Map <MeteringDAO>(metering));
             _context.SaveChanges();
             foreach (var met in metering.SensorValues)
             {
                 var sv = _context.SensorValues.Add(new SensorValueDAO()
                 {
                     Value = DAOHelper.ObjectToByteArray(met.Value)
                 });
                 _context.SaveChanges();
                 _context.MeteringSensorRelations.Add(new MeteringSensorValueRelationDAO()
                 {
                     MeteringId    = m.Id,
                     SensorValueId = sv.Id,
                     PropertyName  = met.Key.Name
                 });
                 _context.SaveChanges();
             }
             dbContextTransaction.Commit();
         }
         catch (Exception)
         {
             dbContextTransaction.Rollback();
             throw;
         }
     }
 }
        public void GetNodes_ReturnsNodesFromDatabase()
        {
            _dbContext.Nodes.Add(new Node {
                IpOrHostname = "1.1.1.1"
            });
            _dbContext.Nodes.Add(new Node {
                IpOrHostname = "2.2.2.2"
            });
            _dbContext.SaveChanges();

            IEnumerable <Node> nodes = _dal.GetNodes();

            nodes.Select(x => x.IpOrHostname).Should().BeEquivalentTo("1.1.1.1", "2.2.2.2");
        }
Ejemplo n.º 3
0
        public static Phone GivePhone(Player sender, Player target)
        {
            if (!sender.AccountData.HavePerm("admin.cmds.give.phone"))
            {
                throw new Exception("Vous n'avez pas les permissions pour cela.");
            }

            Phone phone = PhoneHelper.CreatePhone();

            if (PhoneHelper.GetDefaultPhone(target.ActiveCharacter) == null)
            {
                phone.DefaultPhone = true;
            }

            try
            {
                InventoryHelper.AddItemToCharacter(target.ActiveCharacter, phone);

                ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;
                dbContext.SaveChanges();
                return(phone);
            }
            catch
            {
                PhoneHelper.DeletePhone(phone);
                throw new Exception("Le téléphone n'a pas pu être ajouté à l'utilisateur.");
            }
        }
Ejemplo n.º 4
0
        private static void Lend(Player sender, Player target, int vehicle)
        {
            try
            {
                Vehicle veh = CmdHelper.GetCurrentVehicleOrID(sender, vehicle);

                if (!Helper.IsOwner(sender, veh))
                {
                    throw new Exception("Vous n'êtes pas propriétaire de ce véhicule.");
                }

                if (veh.Data.Borrowers.Select(b => b.Borrower).Any(b => b == target.ActiveCharacter))
                {
                    throw new Exception("Vous prêtez déjà votre véhicule à ce joueur.");
                }

                Helper.BorrowVehicle(veh, target);
                Chat.InfoChat(sender, "Vous avez prêté votre véhicule " + Constants.Chat.HIGHLIGHT +
                              VehicleModelInfo.ForVehicle(veh).Name + Color.White
                              + " à " + Constants.Chat.HIGHLIGHT + target.Name + Color.White + ".");

                ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;
                dbContext.SaveChanges();
            }
            catch (Exception e)
            {
                Chat.ErrorChat(sender, e.Message);
            }
        }
Ejemplo n.º 5
0
        public static void PutItemOnGround(Player player)
        {
            if (player.ActiveCharacter.ItemInHand == null)
            {
                throw new Exception("Aucun objet en main.");
            }
            if (player.ActiveCharacter.ItemInHand.ModelId == -1)
            {
                throw new Exception("Cet objet n'est pas posable.");
            }
            Item item = player.ActiveCharacter.ItemInHand;

            if (item is Gun)
            {
                player.SetArmedWeapon(((Gun)item).idWeapon);
                item.Quantity = player.WeaponAmmo;
            }
            Vector3 position = new Vector3(player.Position.X, player.Position.Y, player.Position.Z - 0.9);
            Vector3 rotation = new Vector3();

            if (item is Gun)
            {
                rotation = new Vector3(90, 0, 0);
            }
            else
            {
                rotation = new Vector3(0, 0, 0);
            }
            item.SpawnLocation = new SpawnLocation(position, rotation, player.Interior, player.VirtualWorld);
            item.DynamicObject = new DynamicObject(item.ModelId, item.SpawnLocation.Position, item.SpawnLocation.Rotation, item.SpawnLocation.VirtualWorld, item.SpawnLocation.Interior);
            ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;

            dbContext.SaveChanges();
        }
Ejemplo n.º 6
0
        public static short AddPerm(PermissionSet permSet, string permname)
        {
            ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;

            dbContext.PermissionSets.Attach(permSet);

            if (!dbContext.Permissions.Any(p => p.Name == permname))
            {
                return(1);
            }

            if (permSet.PermissionsSetPermission.Select(p => p.Permission).Any(p => p.Name == permname))
            {
                return(2);
            }

            var perm = dbContext.Permissions.Single(p => p.Name == permname);

            if (perm.ChildPermissions == null || perm.ChildPermissions.Count == 0)
            {
                permSet.PermissionsSetPermission.Add(new PermissionSetPermission(permSet, perm));
            }
            else
            {
                AddPerm_Rec(permSet, perm);
            }
            dbContext.SaveChanges();
            return(0);
        }
Ejemplo n.º 7
0
        public static void DeleteItem(Item item)
        {
            ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;

            dbContext.Items.Remove(item);
            dbContext.SaveChanges();
        }
Ejemplo n.º 8
0
        public static short RemovePerm(PermissionSet permSet, string permname)
        {
            ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;

            dbContext.PermissionSets.Attach(permSet);

            if (!dbContext.Permissions.Any(p => p.Name == permname))
            {
                return(1);
            }

            var perm = dbContext.Permissions.Single(p => p.Name == permname);

            if (perm.ChildPermissions == null || perm.ChildPermissions.Count == 0)
            {
                if (!permSet.PermissionsSetPermission.Select(p => p.Permission).Any(p => p.Name == permname))
                {
                    return(2);
                }
                var permSetPerm = dbContext.PermissionSetPermissions.Where(p => p.PermissionId == perm.Id && p.PermissionSetId == permSet.Id).SingleOrDefault();
                permSet.PermissionsSetPermission.Remove(permSetPerm);
            }
            else
            {
                RemovePerm_Rec(permSet, perm, dbContext);
            }
            dbContext.SaveChanges();
            return(0);
        }
Ejemplo n.º 9
0
        public void Show()
        {
            if (charCreationMenu != null)
            {
                charCreationMenu.GetMenu().Ended += (sender, e) =>
                {
                    if (!(e.Data.ContainsKey("name") && e.Data.ContainsKey("age") && e.Data.ContainsKey("sex")))
                    {
                        charCreationMenu.Show(player);
                        return;
                    }

                    ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;

                    dbContext.Accounts.Attach(player.AccountData);

                    SpawnLocation chrSpawn = new SpawnLocation();
                    chrSpawn.Interior     = 0;
                    chrSpawn.VirtualWorld = 0;
                    chrSpawn.X            = 1762.1357f;
                    chrSpawn.Y            = -1862.8958f;
                    chrSpawn.Z            = 13.5757f;
                    chrSpawn.RotX         = 0f;
                    chrSpawn.RotY         = 0f;
                    chrSpawn.RotZ         = 269.4686f;

                    Inventory inv = new Inventory();
                    inv.MaxSpace = Constants.CHARACTER_INVENTORY_SIZE;

                    Character chr = new Character();
                    chr.Account       = player.AccountData;
                    chr.Name          = (string)e.Data["name"];
                    chr.Age           = (uint)e.Data["age"];
                    chr.Sex           = (Character.CharSex)e.Data["sex"];
                    chr.Skin          = 26;
                    chr.SpawnLocation = chrSpawn;
                    chr.Inventory     = inv;
                    chr.PermsSet      = new PermissionSet();
                    chr.GroupOwner    = new List <Group>();
                    chr.GroupRanks    = new List <GroupRank>();
                    chr.BuildingOwner = new List <Building>();

                    player.ActiveCharacter = chr;

                    dbContext.Add(chr);
                    dbContext.SaveChanges();

                    player.SpawnCharacter();
                };
                charCreationMenu.Show(player);
                return;
            }

            charList.Show(player);
        }
Ejemplo n.º 10
0
        public static void SaveGunInHand(Player player)
        {
            if (!(player.ActiveCharacter.ItemInHand is Gun))
            {
                throw new Exception("L'objet en main n'est pas une arme");
            }
            player.ActiveCharacter.ItemInHand.Quantity = player.WeaponAmmo;
            ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;

            dbContext.SaveChanges();
        }
Ejemplo n.º 11
0
        public static void DeletePhone(Phone phone)
        {
            if (phone == null)
            {
                return;
            }
            ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;

            dbContext.Phones.Remove(phone);
            dbContext.SaveChanges();
        }
Ejemplo n.º 12
0
        public static Item AddItemToCharacter(Character character, Item item)
        {
            ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;

            if (character.Inventory == null)
            {
                throw new InventoryAddingExceptions("Le joueur n'a pas d'inventaire.");
            }
            if (item is Phone)
            {
                if (((Phone)item).DefaultPhone)
                {
                    if (PhoneHelper.GetDefaultPhone(character) != null)
                    {
                        ((Phone)item).DefaultPhone = false;
                    }
                }
            }
            if (character.ItemInHand == null)
            {
                character.ItemInHand = item;
                dbContext.SaveChanges();
                if (item is Gun)
                {
                    Player player = PlayerHelper.SearchCharacter(character);
                    player.GiveWeapon(((Gun)item).idWeapon, ((Gun)item).Quantity);
                }
                return(item);
            }
            else if (character.Inventory.ListItems.Count() < character.Inventory.MaxSpace)
            {
                item.CurrentContainer = character.Inventory;
                character.Inventory.ListItems.Add(item);
                dbContext.SaveChanges();
                return(item);
            }
            else
            {
                throw new InventoryAddingExceptions("L'inventaire est complet et la main n'est pas vide.");
            }
        }
Ejemplo n.º 13
0
        public static void RemoveItemFromPlayerHand(Player player)
        {
            if (player.ActiveCharacter.ItemInHand == null)
            {
                throw new Exception("Aucun objet dans les mains.");
            }
            player.ActiveCharacter.ItemInHand = null;
            player.ResetWeapons();
            ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;

            dbContext.SaveChanges();
        }
Ejemplo n.º 14
0
 public static void RemoveContactFromPhoneBook(String name, Phone phone)
 {
     if (phone.PhoneBook.RemoveAll(x => x.Name == name) > 0)
     {
         ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;
         dbContext.SaveChanges();
         return;
     }
     else
     {
         throw new Exception("Le contact n'a pas été trouvé.");
     }
 }
Ejemplo n.º 15
0
        public static Item RemoveItemFromGround(Player player)
        {
            Item item = GetNearestItemOfCharacter(player.ActiveCharacter);

            ItemIsCloseEnoughOfPlayer(player, item);
            item.SpawnLocation = null;
            item.DynamicObject.Dispose();
            item.DynamicObject = null;
            ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;

            dbContext.SaveChanges();
            return(item);
        }
Ejemplo n.º 16
0
        public static void BorrowVehicle(Vehicle vehicle, Player borrower)
        {
            if (vehicle.Data.Borrowers.Select(b => b.Borrower).Any(b => b == borrower.ActiveCharacter))
            {
                throw new Exception("Ce joueur a déjà emprunté ce véhicule.");
            }

            vehicle.Data.Borrowers.Add(new VehicleDataBorrower(vehicle.Data, borrower.ActiveCharacter));

            ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;

            dbContext.SaveChanges();
        }
Ejemplo n.º 17
0
        public static void AddContactToPhoneBook(ContactPhone contactPhone, Phone phone)
        {
            if (phone.MaxContact >= phone.PhoneBook.Count())
            {
                if (phone.PhoneBook.Any(x => x.Name == contactPhone.Name))
                {
                    throw new Exception("Contact avec le même nom déjà existant.");
                }

                phone.PhoneBook.Add(contactPhone);
                ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;
                dbContext.SaveChanges();
            }
        }
Ejemplo n.º 18
0
        public static void DestroyVehicle(int vehicle)
        {
            ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;

            if (!dbContext.Vehicles.Any(v => v.Id == vehicle))
            {
                throw new Exception("La destruction du véhicule ID " + vehicle + " a échouée.");
            }

            var veh = dbContext.Vehicles.Single(v => v.Id == vehicle);

            dbContext.Vehicles.Remove(veh);
            dbContext.SaveChanges();
        }
Ejemplo n.º 19
0
        public static Item RemoveItemFromCharacter(Character character, Item item)
        {
            ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;

            if (character.Inventory == null)
            {
                throw new InventoryRemovingExceptions("Le joueur n'a pas d'inventaire.");
            }
            if (item == null)
            {
                throw new InventoryRemovingExceptions("Un problème est survenu avec l'objet.");
            }

            if (character.ItemInHand == item)
            {
                if (item is Gun)
                {
                    Player player = PlayerHelper.SearchCharacter(character);
                    player.SetArmedWeapon(((Gun)player.ActiveCharacter.ItemInHand).idWeapon);
                    item.Quantity = player.WeaponAmmo;
                    player.ResetWeapons();
                }
                character.ItemInHand = null;
                dbContext.SaveChanges();
                return(item);
            }
            else if (character.Inventory.ListItems.Remove(item))
            {
                item.CurrentContainer = null;
                dbContext.SaveChanges();
                return(item);
            }
            else
            {
                throw new InventoryRemovingExceptions("L'objet n'existe pas dans l'inventaire ou la main du joueur.");
            }
        }
Ejemplo n.º 20
0
        public static Phone CreatePhone()
        {
            ServerDbContext dbContext    = ((GameMode)GameMode.Instance).DbContext;
            Random          numberRandom = new Random();
            String          number       = null;

            do
            {
                number = numberRandom.Next(10000, 99999).ToString();
            } while (dbContext.Phones.Select(x => x).Where(x => x.Number == number).Any());
            Phone phone = new Phone(number, false, false, null, false, 5);

            dbContext.SaveChanges();
            return(phone);
        }
Ejemplo n.º 21
0
        public static void UnBorrowVehicle(Vehicle vehicle, Player borrower)
        {
            if (!vehicle.Data.Borrowers.Select(b => b.Borrower).Any(b => b == borrower.ActiveCharacter))
            {
                throw new Exception("Ce joueur n'emprunte pas ce véhicule.");
            }

            var vDataBorrower = vehicle.Data.Borrowers.Where(b => b.Borrower == borrower.ActiveCharacter).First();

            vehicle.Data.Borrowers.Remove(vDataBorrower);

            ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;

            dbContext.SaveChanges();
        }
Ejemplo n.º 22
0
        public static void PutItemInPlayerHand(Player player, Item item)
        {
            if (player.ActiveCharacter.ItemInHand != null)
            {
                throw new Exception("Le joueur a déjà un objet en main.");
            }
            item.SpawnLocation                = null;
            item.DynamicObject                = null;
            item.CurrentContainer             = null;
            player.ActiveCharacter.ItemInHand = item;
            if (item is Gun)
            {
                player.GiveWeapon(((Gun)item).idWeapon, item.Quantity);
            }
            ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;

            dbContext.SaveChanges();
        }
Ejemplo n.º 23
0
        public async void SaveCommandLogToDb(string command, string user, string message, DateTime messageTime)
        {
            var _context = new ServerDbContext(new DbContextOptionsBuilder <ServerDbContext>().UseSqlServer(_connectionString).Options);

            var existingMessage = await _context.CommandLogs.Where(c => (c.Message == message) && (c.ChannelModelId == _channel.Id)).ToListAsync();

            if (existingMessage.Count == 0)
            {
                var commandLog = new CommandLogsModel
                {
                    Command        = command,
                    User           = user,
                    Message        = message,
                    MessageTime    = messageTime,
                    ChannelModelId = _channel.Id
                };
                _context.CommandLogs.Add(commandLog);
                _context.SaveChanges();
            }

            _context.Dispose();
        }
Ejemplo n.º 24
0
        private static void Park(Player sender)
        {
            if (!Helper.CommandCheckForVehicle(sender))
            {
                return;
            }

            var vehicle = ((Vehicle)sender.Vehicle);

            if (Helper.IsOwner(sender, vehicle))
            {
                Chat.InfoChat(sender, "Vous avez garé votre véhicule, il réapparaitra désormais ici.");
                vehicle.Data.SpawnLocation.Position =
                    new Vector3(vehicle.Position.X, vehicle.Position.Y, vehicle.Position.Z + 0.5f);
                vehicle.Data.SpawnLocation.RotZ = vehicle.Angle;

                var vData = vehicle.Data;

                ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;
                dbContext.Update(vehicle.Data);
                dbContext.SaveChanges();

                List <BasePlayer> passengers = vehicle.Passengers.ToList();

                vehicle.Dispose();
                vehicle = Helper.CreateFromData(vData);

                sender.PutInVehicle(vehicle);

                for (int i = 1, j = 0; j < passengers.Count() && i <= vehicle.ModelInfo.SeatCount; i++, j++)
                {
                    passengers[j].PutInVehicle(vehicle, i);
                }
            }
            else
            {
                Chat.ErrorChat(sender, "Vous n'êtes pas propriétaire de ce véhicule.");
            }
        }
Ejemplo n.º 25
0
        public static Vehicle CreateVehicle(Character owner, VehicleModel model, Vector3 position, float rotation, VehicleColor color1 = VehicleColor.White, VehicleColor color2 = VehicleColor.White, bool temp = false)
        {
            try
            {
                ServerDbContext dbContext = ((GameMode)GameMode.Instance).DbContext;

                var dataVeh = new VehicleData();

                dataVeh.Type          = model;
                dataVeh.Color1        = color1;
                dataVeh.Color2        = color2;
                dataVeh.SpawnLocation = new SpawnLocation(position, rotation);

                dataVeh.MaxFuel         = model.MaxFuel;
                dataVeh.FuelConsumption = model.FuelConsumption;
                dataVeh.Fuel            = model.MaxFuel;
                dataVeh.Dammages        = 1000f;

                dataVeh.Owner     = owner;
                dataVeh.Container = new Container(10);

                dataVeh.Temporary = temp;

                if (!temp)
                {
                    dbContext.Add(dataVeh);
                    dbContext.SaveChanges();
                }
                Vehicle veh = (Vehicle)Vehicle.Create(model.Model, position, rotation, (int)color1, (int)color2);
                veh.Data = dataVeh;

                return(veh);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Ejemplo n.º 26
0
 public void SaveChanges() => _appContext.SaveChanges();
Ejemplo n.º 27
0
        public static void ShowContainer(Player player, Container container)
        {
            ServerDbContext dbContext         = ((GameMode)GameMode.Instance).DbContext;
            int             maxSpaceContainer = container.MaxSpace;

            listContainer = new TablistDialog(container.Name + " (" + container.ListItems.Count + "/" + maxSpaceContainer + ")", new[] { "Nom", "Quantité" }, "Sélectionner", "Quitter");

            List <Item> listItemsContainer = container.ListItems;
            int         i = 0;

            foreach (Item item in listItemsContainer)
            {
                listContainer.Add(item.Name, item.Quantity.ToString());
                i++;
            }
            if (i < maxSpaceContainer)
            {
                for (int a = 0; a < (maxSpaceContainer - i); a++)
                {
                    listContainer.Add(Color.DarkGray + " Vide" + Color.White, Color.DarkGray + "0");
                }
            }
            listContainer.Show(player);

            listContainer.Response += (playerReponse, EventArgs) =>
            {
                if (EventArgs.DialogButton == DialogButton.Right)
                {
                    return;
                }
                if (container.ListItems.Count <= EventArgs.ListItem ||
                    container.ListItems[EventArgs.ListItem] == null)   //  Put item in container
                {
                    if (player.ActiveCharacter.ItemInHand != null)
                    {
                        try
                        {
                            if (player.ActiveCharacter.ItemInHand is Gun)
                            {
                                player.SetArmedWeapon(((Gun)player.ActiveCharacter.ItemInHand).idWeapon);
                                player.ActiveCharacter.ItemInHand.Quantity = player.WeaponAmmo;
                            }
                            container.ListItems.Add(player.ActiveCharacter.ItemInHand); // Add item to container
                            ItemHelper.RemoveItemFromPlayerHand(player);
                            dbContext.SaveChanges();
                        }
                        catch (Exception e)
                        {
                            Chat.ErrorChat(player, "Impossible de prendre l'objet.");
                        }
                    }
                }
                else // Take item from container
                {
                    if (player.ActiveCharacter.ItemInHand == null)
                    {
                        try
                        {
                            //ItemHelper.PutItemInPlayerHand(player, container.ListItems[EventArgs.ListItem]);

                            InventoryHelper.AddItemToCharacter(player.ActiveCharacter, container.ListItems[EventArgs.ListItem]);
                            container.ListItems.RemoveAt(EventArgs.ListItem);

                            dbContext.SaveChanges();
                        }
                        catch (Exception e)
                        {
                            Chat.ErrorChat(player, "Impossible de prendre l'objet : " + e.Message);
                        }
                    }
                    else
                    {
                        try
                        {
                            Item itemContainer = container.ListItems[EventArgs.ListItem];
                            Item itemInHand    = player.ActiveCharacter.ItemInHand;

                            container.ListItems.RemoveAt(EventArgs.ListItem);
                            InventoryHelper.RemoveItemFromCharacter(player.ActiveCharacter, player.ActiveCharacter.ItemInHand);

                            container.ListItems.Add(itemInHand);
                            InventoryHelper.AddItemToCharacter(player.ActiveCharacter, itemContainer);
                        }
                        catch (Exception e)
                        {
                            Chat.ErrorChat(player, "Impossible de prendre l'objet : " + e.Message);
                        }
                    }
                }
            };
        }
Ejemplo n.º 28
0
 public void Save()
 {
     context.SaveChanges();
 }