Beispiel #1
0
        public MemberView NewMember()
        {
            var cmid          = Interlocked.Increment(ref _nextCmid);
            var publicProfile = new PublicProfileView(
                cmid,
                "Player",
                MemberAccessLevel.Default,
                false,
                DateTime.UtcNow,
                EmailAddressStatus.Unverified,
                "-1"
                );

            var memberWallet = new MemberWalletView(
                cmid,
                _ctx.Configuration.Wallet.StartingCredits,
                _ctx.Configuration.Wallet.StartingPoints,
                DateTime.MaxValue,
                DateTime.MaxValue
                );

            var memberInventories = new List <ItemInventoryView>
            {
                new ItemInventoryView(1, null, -1, cmid),
                new ItemInventoryView(12, null, -1, cmid)
            };

            //TODO: Create helper function for conversion of this stuff.
            var memberItems = new List <int>();

            for (int i = 0; i < memberInventories.Count; i++)
            {
                memberItems.Add(memberInventories[i].ItemId);
            }

            var memberLoadout = new LoadoutView
            {
                Cmid        = cmid,
                MeleeWeapon = 1,
                Weapon1     = 12
            };

            var member = new MemberView(
                publicProfile,
                memberWallet,
                memberItems
                );

            // Save the member.
            Db.Profiles.Save(publicProfile);
            Db.Wallets.Save(memberWallet);
            Db.Inventories.Save(cmid, memberInventories);
            Db.Loadouts.Save(memberLoadout);

            Db.SetNextCmid(_nextCmid);

            return(member);
        }
 public static void Serialize(Stream stream, MemberWalletView instance)
 {
     using (MemoryStream memoryStream = new MemoryStream())
     {
         Int32Proxy.Serialize(memoryStream, instance.Cmid);
         Int32Proxy.Serialize(memoryStream, instance.Credits);
         DateTimeProxy.Serialize(memoryStream, instance.CreditsExpiration);
         Int32Proxy.Serialize(memoryStream, instance.Points);
         DateTimeProxy.Serialize(memoryStream, instance.PointsExpiration);
         memoryStream.WriteTo(stream);
     }
 }
Beispiel #3
0
        public void Save(MemberWalletView view)
        {
            if (view == null)
            {
                throw new ArgumentNullException(nameof(view));
            }
            var cmid = view.Cmid;

            if (cmid <= 0)
            {
                throw new ArgumentException("CMID of PublicProfileView must be greater than 0.");
            }

            var path = Path.Combine(ROOT_DIR, cmid + ".json");
            var json = JsonConvert.SerializeObject(view);

            File.WriteAllText(path, json);
        }
Beispiel #4
0
 private void OnGetMemberWalletEventReturn(MemberWalletView ev)
 {
     NotifyPointsAndCreditsChanges(ev.Points, ev.Credits);
     UpdateSecurePointsAndCredits(ev.Points, ev.Credits);
 }