コード例 #1
0
ファイル: PlayersProvider.cs プロジェクト: vodkalola/fenris
        /// <summary>
        /// Добавляет данные нового игрока
        /// </summary>
        public void Add(Account account)
        {
            var playerInfo = new gta_mp_data.Entity.PlayerInfo {
                AccountId = account.Id, Health = 100, Satiety = 100
            };
            var additionalInfo = new PlayerAdditionalInfo {
                AccountId = account.Id
            };
            var driverInfo = new DriverInfo {
                AccountId = account.Id
            };
            var wantedInfo = new Wanted {
                AccountId = account.Id
            };
            var settings = new Settings {
                AccountId = account.Id
            };
            var inventory = new InventoryItem {
                OwnerId = account.Id, Name = "Деньги", Type = InventoryType.Money, Count = 100, CountInHouse = 0
            };

            using (var db = new Database()) {
                db.Insert(playerInfo);
                db.Insert(additionalInfo);
                db.Insert(driverInfo);
                db.Insert(wantedInfo);
                db.Insert(settings);
                db.Insert(inventory);
            }
        }
コード例 #2
0
        public IActionResult ChangePlayerAdditionalInfo([FromBody] PlayerAdditionalInfoVM model)
        {
            if (model == null || model.IdPlayerAdditionalInfo <= 0)
            {
                return(Ok(0));
            }
            PlayerAdditionalInfo player = _context.PlayersAdditionalInfo.SingleOrDefault(p => p.IdPlayerAdditionalInfo == model.IdPlayerAdditionalInfo);

            if (player == null)
            {
                return(CreatePlayerAdditionalInfo(model));
            }
            else
            {
                try
                {
                    string imageName;
                    if (!string.IsNullOrWhiteSpace(model.Photo))
                    {
                        string fileDestDir = _env.ContentRootPath;
                        fileDestDir = Path.Combine(fileDestDir, "Photos");

                        imageName = Path.GetRandomFileName() + ".jpg";
                        var bitmap = model.Photo.FromBase64StringToImage();
                        bitmap.Save(Path.Combine(fileDestDir, imageName), ImageFormat.Jpeg);

                        if (player.Photo != "stepanPhoto.jpg" && System.IO.File.Exists(Path.Combine(fileDestDir, player.Photo)))
                        {
                            // If file found, delete it
                            System.IO.File.Delete(Path.Combine(fileDestDir, player.Photo));
                        }
                    }
                    else
                    {
                        imageName = player.Photo;
                    }

                    player.Name      = model.Name;
                    player.Surname   = model.Surname;
                    player.Photo     = imageName;
                    player.BirthDate = model.BirthDate;
                    player.Gender    = model.Gender;
                    _context.SaveChanges();
                }
                catch (Exception) { return(Ok(0)); }

                return(Ok(player.IdPlayerAdditionalInfo));
            }
        }
コード例 #3
0
        public IActionResult DeletePlayer(string login, string password)
        {
            try
            {
                Player player = _context.Players.SingleOrDefault(p => p.Login == login && p.Password == password);
                if (player == null || player.Id == 1)
                {
                    throw new Exception();
                }

                PlayerScore score = _context.Scores.SingleOrDefault(p => p.IdPlayerScore == player.Id);
                if (score != null)
                {
                    _context.Scores.Remove(score);
                    _context.SaveChanges();
                }

                PlayerAdditionalInfo playerAddInfo = _context.PlayersAdditionalInfo.SingleOrDefault(p => p.IdPlayerAdditionalInfo == player.Id);
                if (playerAddInfo != null)
                {
                    try
                    {
                        string fileDestDir = _env.ContentRootPath;
                        fileDestDir = Path.Combine(fileDestDir, "Photos");

                        if (playerAddInfo.Photo != "stepanPhoto.jpg" && System.IO.File.Exists(Path.Combine(fileDestDir, playerAddInfo.Photo)))
                        {
                            // If file found, delete it
                            System.IO.File.Delete(Path.Combine(fileDestDir, playerAddInfo.Photo));
                        }
                    }
                    catch (Exception) { }

                    _context.PlayersAdditionalInfo.Remove(playerAddInfo);
                    _context.SaveChanges();
                }

                _context.Players.Remove(player);
                _context.SaveChanges();
            }
            catch (Exception)
            {
                return(Ok(false));
            }
            return(Ok(true));
        }
コード例 #4
0
        public IActionResult CreatePlayerAdditionalInfo([FromBody] PlayerAdditionalInfoVM model)
        {
            if (model == null)
            {
                return(Ok(0));
            }
            PlayerAdditionalInfo player;

            try
            {
                string imageName = "none";
                if (!string.IsNullOrWhiteSpace(model.Photo))
                {
                    string fileDestDir = _env.ContentRootPath;
                    fileDestDir = Path.Combine(fileDestDir, "Photos");
                    imageName   = Path.GetRandomFileName() + ".jpg";
                    var bitmap = model.Photo.FromBase64StringToImage();
                    bitmap.Save(Path.Combine(fileDestDir, imageName), ImageFormat.Jpeg);
                }
                player = new PlayerAdditionalInfo()
                {
                    IdPlayerAdditionalInfo = model.IdPlayerAdditionalInfo,
                    Name      = model.Name,
                    Surname   = model.Surname,
                    Photo     = imageName,
                    BirthDate = model.BirthDate,
                    Gender    = model.Gender
                };

                _context.PlayersAdditionalInfo.Add(player);
                _context.SaveChanges();
            }
            catch (Exception) { return(Ok(0)); }

            return(Ok(player.IdPlayerAdditionalInfo));
        }
コード例 #5
0
        /// <summary>
        /// Сконвертировать данные игрока в модель
        /// </summary>
        public static PlayerInfo ConvertToModel(gta_mp_data.Entity.PlayerInfo playerInfo, PlayerAdditionalInfo additionalInfo,
                                                DriverInfo driverInfo, IEnumerable <PlayerWork> worksInfo, Wanted wantedInfo, Settings settings, IEnumerable <PlayerClothes> clothes)
        {
            var result = new PlayerInfo {
                AccountId           = playerInfo.AccountId,
                Name                = playerInfo.Name,
                Level               = playerInfo.Level,
                Experience          = playerInfo.Experience,
                Satiety             = playerInfo.Satiety,
                Health              = playerInfo.Health,
                LastPosition        = playerInfo.LastPosition,
                Dimension           = playerInfo.Dimension,
                Driver              = DriverInfoConverter.ConvertToModel(driverInfo),
                Works               = WorksInfoConverter.ConvertToModels(worksInfo),
                Wanted              = wantedInfo,
                PhoneNumber         = additionalInfo.PhoneNumber,
                PhoneBalance        = additionalInfo.PhoneBalance,
                TagName             = additionalInfo.TagName,
                TagColor            = additionalInfo.TagColor,
                LastTeleportToHouse = additionalInfo.LastTeleportToHouse,
                Settings            = settings,
                Clothes             = PlayerClothesConverter.ConvertTModels(clothes)
            };

            return(result);
        }