Exemple #1
0
        public virtual async Task <IActionResult> PostAsync(AccountTicket user, RQ request)
        {
            if (request == null)
            {
                return(new BadRequestResult());
            }

            if (!Validate(user, request))
            {
                return(new ConflictObjectResult(State));
            }

            try
            {
                var model = Parse(user, request);

                if (!Validate(user, request, model))
                {
                    return(new ConflictObjectResult(State));
                }

                await _repository.SaveAsync(user, model);

                return(new OkObjectResult(Parse(model)));
            }
            catch
            {
                return(new ConflictObjectResult(State));
            }
        }
        public static void RegisterTicket(AccountTicket ticket)
        {
            ticket.ExpireTime = Environment.TickCount;

            lock (Tickets)
                Tickets.Add(ticket.Ticket, ticket);

            Logger.Debug("Registered new ticket for account @'" + ticket.Account.Username + "'@");
        }
 public static void DestroyTicket(AccountTicket ticket)
 {
     lock (Tickets)
     {
         if (Tickets.ContainsKey(ticket.Ticket))
         {
             Tickets.Remove(ticket.Ticket);
             Logger.Debug("Destroyed ticket for account @'" + ticket.Account.Username + "'@");
         }
     }
 }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="ticket"></param>
        /// <param name="content"></param>
        public static void NotifyChatMessage(AccountTicket ticket, string content)
        {
            var message = new ChatMessage()
            {
                PlayerId = ticket.Account.Id,
                Pseudo = ticket.Account.Pseudo,
                Power = ticket.Account.Power,
                Content = content,
                Time = DateTime.Now.ToString("HH:mm:ss")
            };

            lock (ChatMessages)
            {
                if (ChatMessages.Count >= CACHE_MESSAGE_COUNT)
                    ChatMessages.RemoveAt(0);
                ChatMessages.Add(message);
            }
            ctx.Value.Clients.All.notifyChatMessage(message);
        }
Exemple #5
0
        public virtual async Task <IActionResult> GetAsync(AccountTicket user, int id)
        {
            try
            {
                var item = await _repository.GetAsync(user, id);

                if (item != null)
                {
                    return(new OkObjectResult(Parse(item)));
                }
                else
                {
                    return(new NotFoundResult());
                }
            }
            catch
            {
                return(new ConflictObjectResult(State));
            }
        }
Exemple #6
0
        public virtual void Setup()
        {
            var options = new DbContextOptionsBuilder <InitialDatabase>()
                          .UseInMemoryDatabase(databaseName: "Initial_Api")
                          .Options;

            DbContext = new InitialDatabase(options)
            {
                IsTest = true
            };

            DbContext.Seed();

            AppSettings = AppSettings.Default;

            AccountService = new AccountService(new AccountRepository(DbContext), AppSettings);

            AccountService.IsValid(CryptoHelper.Guid("U$1"), out AccountTicket accountTicket);

            AccountTicket = accountTicket;
        }
Exemple #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="ticket"></param>
        /// <param name="content"></param>
        public static void NotifyChatMessage(AccountTicket ticket, string content)
        {
            var message = new ChatMessage()
            {
                PlayerId = ticket.Account.Id,
                Pseudo   = ticket.Account.Pseudo,
                Power    = ticket.Account.Power,
                Content  = content,
                Time     = DateTime.Now.ToString("HH:mm:ss")
            };

            lock (ChatMessages)
            {
                if (ChatMessages.Count >= CACHE_MESSAGE_COUNT)
                {
                    ChatMessages.RemoveAt(0);
                }
                ChatMessages.Add(message);
            }
            ctx.Value.Clients.All.notifyChatMessage(message);
        }
Exemple #8
0
        /// <summary>
        /// 填充用户登录信息
        /// </summary>
        /// <param name="model">登录模型</param>
        /// <param name="info">登录用户信息</param>
        /// <returns>true 成功 false 失败</returns>
        public bool FillLoginInfo(UserLoginInfo info, LoginViewModel model = null)
        {
            try
            {
                //写入Session信息
                Session[SessionManager.Instance.SessionKey] = info;
                if (model != null)
                {
                    //写入用户信息票据,有效期为浏览器进程
                    AccountTicket usertick = new AccountTicket();
                    usertick.Password    = model.Password;
                    usertick.SessionId   = Session.SessionID;
                    usertick.UserAccount = model.LoginName;
                    string strticket = usertick.UserAccount;
                    CookieHelp.SetCookie(SessionManager.Instance.UserInfoTicketKey, strticket, DateTime.Now.AddDays(1));
                }


                //if (model.IsAutoLogin)
                //{
                //    //下次自动登录,写入自动登录票据
                //    QM_LoginTicket loginticket = new QM_LoginTicket();
                //    loginticket.CreateTime = DateTime.Now;
                //    loginticket.UserName = model.UserAccount;
                //    loginticket.UserPassword = model.UserPassword;
                //    string strlogin = SerializableHelp.SerializableAndEncrypt<QM_LoginTicket>(loginticket);
                //    CookieHelp.SetCookie(SessionManager.Instance.UserAutoLoginTicketKey, strlogin, DateTime.MaxValue);


                //}
            }
            catch (Exception ex)
            {
                //LogHelper.WriteLog("登录信息填充失败", ex);
                return(false);
            }

            return(true);
        }
Exemple #9
0
        /// <summary>
        /// Creates an account ticket.
        /// Documentation https://developers.google.com/analytics/v3/reference/provisioning/createAccountTicket
        /// Generation Note: This does not always build corectly.  Google needs to standardise things I need to figuer out which ones are wrong.
        /// </summary>
        /// <param name="service">Authenticated analytics service.</param>
        /// <param name="body">A valid analytics v3 body.</param>
        /// <returns>AccountTicketResponse</returns>
        public static AccountTicket CreateAccountTicket(analyticsService service, AccountTicket body)
        {
            try
            {
                // Initial validation.
                if (service == null)
                {
                    throw new ArgumentNullException("service");
                }
                if (body == null)
                {
                    throw new ArgumentNullException("body");
                }

                // Make the request.
                return(service.Provisioning.CreateAccountTicket(body).Execute());
            }
            catch (Exception ex)
            {
                throw new Exception("Request Provisioning.CreateAccountTicket failed.", ex);
            }
        }
        public async Task Create(TicketViewModel model)
        {
            //Map view model to domain model and create ticket record
            Ticket ticket = config.CreateMapper().Map <TicketViewModel, Ticket>(model);

            context.Tickets.Add(ticket);
            context.SaveChanges();
            context.Tickets.Attach(ticket);

            //if ticket is associated to detection, create detection ticket records for each associated detect
            if (model.DetectionId != null)
            {
                CreateDetectionTickets(Convert.ToInt32(model.DetectionId), ticket.TicketId);
            }

            //Check if device already exists, if so get deviceId, if not create a new one and return that device Id
            int deviceId = GetDeviceId(model.Asset);

            //Create a device ticket record
            DeviceTicket dt = new DeviceTicket();

            dt.DeviceId = deviceId;
            dt.TicketId = ticket.TicketId;
            context.DeviceTickets.Add(dt);

            //Check if account already exists and whether it has been modified, if modified update attributes if does not exists, create a new account
            int accountId = GetAccountId(model.Asset);

            AccountTicket at = new AccountTicket();

            at.AccountId = accountId;
            at.TicketId  = ticket.TicketId;
            context.AccountTickets.Add(at);
            context.SaveChanges();

            await TicketNotification(model, ticket);
        }
Exemple #11
0
        public virtual async Task <IActionResult> DeleteAsync(AccountTicket user, int id)
        {
            try
            {
                var model = await _repository.GetAsync(user, id);

                if (model != null)
                {
                    AuditDelete(user, model);

                    await _repository.SaveAsync(user, model);

                    return(new OkObjectResult(Parse(model)));
                }
                else
                {
                    return(new NotFoundResult());
                }
            }
            catch
            {
                return(new ConflictObjectResult(State));
            }
        }
Exemple #12
0
 protected virtual void Merge(AccountTicket user, M model, RQ request)
 {
     throw new NotImplementedException();
 }
Exemple #13
0
 protected virtual void AuditDelete(AccountTicket user, M model)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="ticket"></param>
 public static void NotifyPlayerDisconnected(string exceptConnectionId, AccountTicket ticket)
 {
     ctx.Value.Clients.AllExcept(exceptConnectionId).notifyPlayerDisconnected(ticket.Account.Id);
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="ticket"></param>
 public static void NotifyPlayerConnected(string exceptConnectionId, AccountTicket ticket)
 {
     ctx.Value.Clients.AllExcept(exceptConnectionId).notifyPlayerConnected(new { Id = ticket.Account.Id, Power = ticket.Account.Power, Pseudo = ticket.Account.Pseudo });
 }
Exemple #16
0
 protected virtual bool Validate(AccountTicket user, RQ request)
 {
     return(true);
 }
 public virtual Task SaveAsync(AccountTicket user, T model)
 {
     throw new NotImplementedException();
 }
 public virtual Task <T> DeleteAsync(AccountTicket user, int id)
 {
     throw new NotImplementedException();
 }
Exemple #19
0
 protected virtual M Parse(AccountTicket user, RQ request)
 {
     throw new NotImplementedException();
 }
Exemple #20
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="ticket"></param>
 public static void NotifyPlayerConnected(string exceptConnectionId, AccountTicket ticket)
 {
     ctx.Value.Clients.AllExcept(exceptConnectionId).notifyPlayerConnected(new { Id = ticket.Account.Id, Power = ticket.Account.Power, Pseudo = ticket.Account.Pseudo });
 }
Exemple #21
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="ticket"></param>
 public static void NotifyPlayerDisconnected(string exceptConnectionId, AccountTicket ticket)
 {
     ctx.Value.Clients.AllExcept(exceptConnectionId).notifyPlayerDisconnected(ticket.Account.Id);
 }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="account"></param>
        /// <param name="characterDAO"></param>
        /// <param name="type"></param>
        public CharacterEntity(AccountTicket account, CharacterDAO characterDAO, EntityTypeEnum type = EntityTypeEnum.TYPE_CHARACTER)
            : base(type, characterDAO.Id)
        {
            m_lastRegenTime = -1;
            m_lastEmoteId = -1;

            Away = false;
            DatabaseRecord = characterDAO;
            Alignment = characterDAO.Alignment;

            Account = account;
            PartyId = -1;
            PartyInvitedPlayerId = -1;
            PartyInviterPlayerId = -1;
            GuildInvitedPlayerId = -1;
            GuildInviterPlayerId = -1;
            NotifyOnFriendConnection = true;

            Quests = new List<CharacterQuest>(characterDAO.Quests.Select(record => new CharacterQuest(this, record)));

            CharacterJobs = new JobBook(this);
            Statistics = new GenericStats(characterDAO);
            SpellBook = SpellBookFactory.Instance.Create(this);
            Waypoints = CharacterWaypointRepository.Instance.GetByCharacterId(Id);
            FrameManager = new FrameManager<CharacterEntity, string>(this);
            Inventory = new CharacterInventory(this);
            Bank = BankManager.Instance.GetBankByAccountId(AccountId);
            PersonalShop = new PersistentInventory((int)EntityTypeEnum.TYPE_MERCHANT, Id);
            Relations = SocialRelationRepository.Instance.GetByAccountId(AccountId);

            var guildMember = GuildManager.Instance.GetMember(characterDAO.Guild.GuildId, Id);
            if (guildMember != null)
                if (type == EntityTypeEnum.TYPE_CHARACTER)
                    guildMember.CharacterConnected(this);
                else
                    SetCharacterGuild(guildMember); // Merchant

            SetChatChannel(ChatChannelEnum.CHANNEL_GUILD, () => DispatchGuildMessage);
            SetChatChannel(ChatChannelEnum.CHANNEL_GROUP, () => DispatchPartyMessage);

            RefreshPersonalShopTaxe();
            CheckRestrictions();
            LoadEquippedMount();
        }
 public virtual Task <IEnumerable <T> > GetAllAsync(AccountTicket user)
 {
     throw new NotImplementedException();
 }