public AggregatorController(AccountEF _accountContext, UserManager <UserAccountEF> userManager, IEmailSender emailSender, IClaimServiceFactory claimsManager)
 {
     accountContext = _accountContext;
     _userManager   = userManager;
     _emailSender   = emailSender;
     _claimsManager = claimsManager;
 }
Пример #2
0
        //public static Dictionary<int, List<int>> GetSiteIdsClaimValue(IClaimServiceFactory _claimsManager, HttpContext httpContext)
        //{
        //    string siteidsValue = _claimsManager.GetClaimsValue(httpContext.User, UserClaimTypes.SiteIdsByRcc);
        //    return GetSiteIdsClaimValue(siteidsValue);
        //}

        public static string GetAvaliableRccCodes(AccountEF _accountContext, string userRoleType, string SpecificId)
        {
            IEnumerable <VwContractorsiteEF> results = null;

            if (userRoleType == UserRoleTypes.Supervisor)
            {
                results = _accountContext.VwContractorsites.Where(x => x.UserId != null); //.OrderBy(x => x.RCC).GroupBy(key => key.RCC, value => value.SiteId);
                                                                                          //string key = $"Supervisor.Statistics.H{DateTime.Now.Hour}";
                                                                                          //if (await _redisDb.HashExistsAsync(key, "chg") && await _redisDb.HashExistsAsync(key, "dhg"))
                                                                                          //    return
                                                                                          // datas.AddRange(await session.CreateCriteria<TodayAccumchgdhg>().ListAsync<TodayAccumchgdhg>());
            }
            else if (userRoleType == UserRoleTypes.Contractor)
            {
                results = _accountContext.VwContractorsites.Where(x => x.UserId != null && x.UserId == SpecificId);
            }
            else if (userRoleType == UserRoleTypes.Aggregator)
            {
                string groupId = SpecificId;
                results = _accountContext.VwContractorsites.Where(x => x.UserId != null && x.AggGroupId == groupId);
            }
            var           result = results.OrderBy(x => x.RCC).GroupBy(key => key.RCC, value => value.SiteId);
            List <string> codes  = new List <string>();

            foreach (IGrouping <int, int> row in result)
            {
                foreach (int siteId in row)
                {
                    string field = $"{row.Key}:{siteId}";
                    codes.Add(field);
                }
            }
            return(string.Join(',', codes));
        }
Пример #3
0
        public void Create(AccountManagementModel item)
        {
            var account = new AccountEF(item.Id, item.Name, item.ProfileId, null);

            _db.Accounts.Add(account);
            _db.SaveChanges();
        }
Пример #4
0
        public void Update(AccountManagementModel item)
        {
            var account = new AccountEF(item.Id, item.Name, item.ProfileId, null);

            _db.Entry(account).State = EntityState.Modified;
            _db.SaveChanges();
        }
Пример #5
0
 public ContractController(IConfiguration configuration, ILoggerFactory loggerFactory, AccountEF _accountContext, UserManager <UserAccountEF> _userManager)
 {
     logger         = loggerFactory.CreateLogger <ContractController>();
     accountContext = _accountContext;
     userManager    = _userManager;
     describer      = userManager.ErrorDescriber as LocalizedIdentityErrorDescriber;
 }
 public HistoryController(ILogger <HistoryController> logger,
                          GridDataContext peiuGridDataContext, IClaimServiceFactory claimsManager,
                          AccountEF accountContext)
 {
     _accountContext      = accountContext;
     _peiuGridDataContext = peiuGridDataContext;
     this.claimsManager   = claimsManager;
     this.logger          = logger;
 }
 public NotificationController(PeiuGridDataContext peiuGridDataContext, IRedisConnectionFactory redis,
                               AccountEF accountContext, ILogger <NotificationController> logger, IClaimServiceFactory claimsManager,
                               IClaimServiceFactory claimServiceFactory)
 {
     this.peiuGridDataContext = peiuGridDataContext;
     db = redis.Connection().GetDatabase(1);
     this._accountContext = accountContext;
     this.logger          = logger;
     this._claimsManager  = claimsManager;
 }
Пример #8
0
        public static string GetSiteIdsClaim(AccountEF _accountContext, IClaimServiceFactory _claimsManager, HttpContext httpContext)
        {
            var           result = GetAvaliableRccCodes(_accountContext, _claimsManager, httpContext);
            List <string> codes  = new List <string>();

            foreach (IGrouping <int, int> row in result)
            {
                codes.Add($"{row.Key}:{row}");
            }
            return(string.Join(',', codes));
        }
Пример #9
0
 public static AccountDal ToAccountDalFromEF(this AccountEF account)
 {
     return(new AccountDal
     {
         Balance = account.Balance,
         Bonus = account.Bonus,
         FirstName = account.FirstName,
         LastName = account.LastName,
         Number = account.AccountId,
         Type = account.AccountType.Type
     });
 }
Пример #10
0
 public ContractorController(UserManager <UserAccountEF> userManager,
                             SignInManager <UserAccountEF> signInManager, RoleManager <Role> _roleManager,
                             IEmailSender emailSender, IHTMLGenerator _htmlGenerator, IClaimServiceFactory claimsManager,
                             IStringLocalizer <LocalizedIdentityErrorDescriber> localizer,
                             AccountEF accountContext)
 {
     _userManager    = userManager;
     _accountContext = accountContext;
     _signInManager  = signInManager;
     _localizer      = localizer;
     _emailSender    = emailSender;
     htmlGenerator   = _htmlGenerator;
     roleManager     = _roleManager;
     _claimsManager  = claimsManager;
 }
 public BoardController(UserManager <UserAccountEF> userManager,
                        SignInManager <UserAccountEF> signInManager, RoleManager <Role> _roleManager,
                        IEmailSender emailSender, IHTMLGenerator _htmlGenerator, IClaimServiceFactory claimsManager, ILogger <BoardController> logger,
                        IConfiguration config, AccountEF accountEF, MysqlDataContext accountDataContext)
 {
     _userManager    = userManager;
     _accountContext = accountDataContext;
     _signInManager  = signInManager;
     _emailSender    = emailSender;
     htmlGenerator   = _htmlGenerator;
     roleManager     = _roleManager;
     _claimsManager  = claimsManager;
     _accountEF      = accountEF;
     this.logger     = logger;
 }
Пример #12
0
        public static IEnumerable <int> GetAvaliableSiteIdsByAggGroupId(AccountEF _accountContext, IClaimServiceFactory _claimsManager, HttpContext httpContext, string AggGroupId)
        {
            IEnumerable <VwContractorsiteEF> results = null;

            if (httpContext.User.IsInRole(UserRoleTypes.Supervisor))
            {
                results = _accountContext.VwContractorsites.Where(x => x.AggGroupId == AggGroupId);
                //string key = $"Supervisor.Statistics.H{DateTime.Now.Hour}";
                //if (await _redisDb.HashExistsAsync(key, "chg") && await _redisDb.HashExistsAsync(key, "dhg"))
                //    return
                // datas.AddRange(await session.CreateCriteria<TodayAccumchgdhg>().ListAsync<TodayAccumchgdhg>());
            }
            else
            {
                return(null);
            }
            return(results.Select(x => x.SiteId).ToArray());
        }
 public AuthController(UserManager <UserAccountEF> userManager,
                       SignInManager <UserAccountEF> signInManager, RoleManager <Role> _roleManager, IDistributedCache distributedCache,
                       IEmailSender emailSender, IHTMLGenerator _htmlGenerator, IClaimServiceFactory claimsManager, ILogger <AuthController> logger,
                       IStringLocalizer <LocalizedIdentityErrorDescriber> localizer, IConfiguration config,
                       AccountEF accountContext)
 {
     _userManager          = userManager;
     _accountContext       = accountContext;
     _signInManager        = signInManager;
     _localizer            = localizer;
     _emailSender          = emailSender;
     htmlGenerator         = _htmlGenerator;
     roleManager           = _roleManager;
     _claimsManager        = claimsManager;
     this.distributedCache = distributedCache;
     WebServerUrl          = config.GetSection("WebServerUrl").Value;
     this.logger           = logger;
 }
 public AuthController(UserManager <UserAccountEF> userManager,
                       SignInManager <UserAccountEF> signInManager, RoleManager <Role> _roleManager, ILogger <StatisticsController> logger,
                       IEmailSender emailSender, IHTMLGenerator _htmlGenerator, IClaimServiceFactory claimsManager, AccountEF accountEF,
                       IStringLocalizer <LocalizedIdentityErrorDescriber> localizer, ReservedRegisterNotifyPublisher _publisher,
                       AccountDataContext _accountContext
                       /*,AccountDataContext accountContext*/)
 {
     _userManager = userManager;
     //_accountContext = accountContext;
     _signInManager       = signInManager;
     _localizer           = localizer;
     _emailSender         = emailSender;
     htmlGenerator        = _htmlGenerator;
     Publisher            = _publisher;
     roleManager          = _roleManager;
     _claimsManager       = claimsManager;
     this.logger          = logger;
     this._accountContext = _accountContext;
     this.accountEF       = accountEF;
 }
Пример #15
0
        public static bool ValidateSiteId(AccountEF _accountContext, IClaimServiceFactory _claimsManager, HttpContext httpContext, int siteId)
        {
            bool IsValidate = false;

            if (httpContext.User.IsInRole(UserRoleTypes.Supervisor))
            {
                IsValidate = _accountContext.VwContractorsites.Any(x => x.UserId != null && x.SiteId == siteId);
                //string key = $"Supervisor.Statistics.H{DateTime.Now.Hour}";
                //if (await _redisDb.HashExistsAsync(key, "chg") && await _redisDb.HashExistsAsync(key, "dhg"))
                //    return
                // datas.AddRange(await session.CreateCriteria<TodayAccumchgdhg>().ListAsync<TodayAccumchgdhg>());
            }
            else if (httpContext.User.IsInRole(UserRoleTypes.Contractor))
            {
                string userId = _claimsManager.GetClaimsValue(httpContext.User, ClaimTypes.NameIdentifier);
                IsValidate = _accountContext.VwContractorsites.Any(x => x.UserId != null && x.UserId == userId && x.SiteId == siteId);
            }
            else if (httpContext.User.IsInRole(UserRoleTypes.Aggregator))
            {
                string groupId = _claimsManager.GetClaimsValue(httpContext.User, UserClaimTypes.AggregatorGroupIdentifier);
                IsValidate = _accountContext.VwContractorsites.Any(x => x.UserId != null && x.AggGroupId == groupId && x.SiteId == siteId);
            }
            return(IsValidate);
        }
Пример #16
0
        public static IEnumerable <int> GetAvaliableSiteIds(AccountEF _accountContext, IClaimServiceFactory _claimsManager, HttpContext httpContext)
        {
            IEnumerable <int> siteIds = null;

            if (httpContext.User.IsInRole(UserRoleTypes.Supervisor))
            {
                siteIds = _accountContext.VwContractorsites.Where(x => x.UserId != null).Select(x => x.SiteId).ToArray();
                //string key = $"Supervisor.Statistics.H{DateTime.Now.Hour}";
                //if (await _redisDb.HashExistsAsync(key, "chg") && await _redisDb.HashExistsAsync(key, "dhg"))
                //    return
                // datas.AddRange(await session.CreateCriteria<TodayAccumchgdhg>().ListAsync<TodayAccumchgdhg>());
            }
            else if (httpContext.User.IsInRole(UserRoleTypes.Contractor))
            {
                string userId = _claimsManager.GetClaimsValue(httpContext.User, ClaimTypes.NameIdentifier);
                siteIds = _accountContext.VwContractorsites.Where(x => x.UserId != null && x.UserId == userId).Select(x => x.SiteId).ToArray();
            }
            else if (httpContext.User.IsInRole(UserRoleTypes.Aggregator))
            {
                string groupId = _claimsManager.GetClaimsValue(httpContext.User, UserClaimTypes.AggregatorGroupIdentifier);
                siteIds = _accountContext.VwContractorsites.Where(x => x.UserId != null && x.AggGroupId == groupId).Select(x => x.SiteId).ToArray();
            }
            return(siteIds);
        }
Пример #17
0
        public static IEnumerable <IGrouping <int, int> > GetAvaliableRccCodes(AccountEF _accountContext, IClaimServiceFactory _claimsManager, HttpContext httpContext)
        {
            IEnumerable <VwContractorsiteEF> results = null;

            if (httpContext.User.IsInRole(UserRoleTypes.Supervisor))
            {
                results = _accountContext.VwContractorsites.Where(x => x.UserId != null); //.OrderBy(x => x.RCC).GroupBy(key => key.RCC, value => value.SiteId);
                                                                                          //string key = $"Supervisor.Statistics.H{DateTime.Now.Hour}";
                                                                                          //if (await _redisDb.HashExistsAsync(key, "chg") && await _redisDb.HashExistsAsync(key, "dhg"))
                                                                                          //    return
                                                                                          // datas.AddRange(await session.CreateCriteria<TodayAccumchgdhg>().ListAsync<TodayAccumchgdhg>());
            }
            else if (httpContext.User.IsInRole(UserRoleTypes.Contractor))
            {
                string userId = _claimsManager.GetClaimsValue(httpContext.User, ClaimTypes.NameIdentifier);
                results = _accountContext.VwContractorsites.Where(x => x.UserId != null && x.UserId == userId);
            }
            else if (httpContext.User.IsInRole(UserRoleTypes.Aggregator))
            {
                string groupId = _claimsManager.GetClaimsValue(httpContext.User, UserClaimTypes.AggregatorGroupIdentifier);
                results = _accountContext.VwContractorsites.Where(x => x.UserId != null && x.AggGroupId == groupId);
            }
            return(results.OrderBy(x => x.RCC).GroupBy(key => key.RCC, value => value.SiteId));
        }
Пример #18
0
        private static int ViewDataHandler(SessionTcpClient client, byte[] data, int Length)
        {
            var     addr = ((IPEndPoint)client.Client.RemoteEndPoint).Address;
            ByteRef recv = new ByteRef(data, Length);

            byte    id          = recv.GetByte(8);
            int     sendSize    = 0x28;
            ByteRef reserveData = new ByteRef(sendSize);

            //Logger.Log("View Server Data Handler");
            //Logger.Log(Utility.ByteArrayToString(data));
            //Logger.Log("VIEW ID {0:X}", id);
            switch (id)
            {
            case 0x26:
                ByteRef SessionHash = new ByteRef(16);
                SessionHash.BlockCopy(recv.At(12), 0, 16);
                LoginSession session = SessionHandler.GetSessionByHash(addr.ToString(), SessionHash.Get());
                if (session != null)
                {
                    client.Session      = session;
                    session.View_client = client;
                    session.Status      = SESSIONSTATUS.CHARSELECT;

                    string clientVersionStr   = recv.GetString(0x74, 6);
                    string expectedVersionStr = "301812";    //ConfigHandler.VersionConfig.ClientVersion.Substring(0, 6);

                    uint clientVersion   = Convert.ToUInt32(clientVersionStr);
                    uint expectedVersion = Convert.ToUInt32(expectedVersionStr);

                    bool versionMismatch = clientVersion != expectedVersion;

                    bool fatalMismatch = false;

                    if (versionMismatch)
                    {
                        switch (ConfigHandler.VersionConfig.VersionLock)
                        {
                        case 1:
                            if (expectedVersion < clientVersion)
                            {
                                fatalMismatch = true;
                            }
                            break;

                        case 2:
                            if (expectedVersion > clientVersion)
                            {
                                fatalMismatch = true;
                            }
                            break;
                        }
                    }

                    if (fatalMismatch)
                    {
                        sendSize = 0x24;
                        reserveData.Reset(0x24);
                        reserveData.BlockCopy(lobbyErrorData, 0, sendSize);
                        reserveData.Set <ushort>(0x20, 331);
                    }
                    else
                    {
                        // TODO: get expansions and features from database
                        AccountEF aef = new AccountEF()
                        {
                            Expansions = 14, Features = 13
                        };                                                                       // MySQL.GetAccountEF(client.Session.Account_id);
                        ByteRef response = new ByteRef(new byte[] {
                            0x28, 0x00, 0x00, 0x00, 0x49, 0x58, 0x46, 0x46, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xe0, 0x5d, 0xad,
                            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                        });

                        response.Set <ushort>(32, aef.Expansions);    // expansion bitmask
                        response.Set <ushort>(36, aef.Features);      // feature bitmask
                        reserveData.BlockCopy(response.Get(), 0, sendSize);
                    }

                    MD5    md5Hash = MD5.Create();
                    byte[] hash    = md5Hash.ComputeHash(reserveData.Get(), 0, sendSize);
                    reserveData.BlockCopy(hash, 12, 16);

                    client.Session.ViewSend(reserveData.Get());
                }
                else
                {
                    sendSize = 0x24;
                    reserveData.Reset(0x24);
                    reserveData.BlockCopy(lobbyErrorData, 0, sendSize);
                    reserveData.Set <ushort>(0x20, 314);
                    MD5    md5Hash = MD5.Create();
                    byte[] hash    = md5Hash.ComputeHash(reserveData.Get(), 0, sendSize);
                    reserveData.BlockCopy(hash, 12, 16);
                    client.Client.Send(reserveData.Get());
                }


                break;

            case 0x1F:
                reserveData.Reset(5);
                reserveData.Set <byte>(0, 0x01);

                client.Session.DataSend(reserveData.Get());
                break;

            case 0x24:
                byte[] Data24 = new byte[]
                {
                    0x40, 0x00, 0x00, 0x00, 0x49, 0x58, 0x46, 0x46, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
                    0x64, 0x00, 0x00, 0x00, 0x70, 0x58, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                };

                ByteRef ReservePacket24 = new ByteRef(Data24);

                // TODO: bring in from configuration
                ReservePacket24.Set <string>(36, "Onyx");

                MD5    md5Hash24 = MD5.Create();
                byte[] hash24    = md5Hash24.ComputeHash(ReservePacket24.Get(), 0, 64);
                ReservePacket24.BlockCopy(hash24, 12, 16);

                client.Session.ViewSend(ReservePacket24.Get(), 64);
                break;

            case 0x07:
                reserveData.Reset(5);
                reserveData.Set <byte>(0, 0x02);
                if (recv.Length > 30)
                {
                    client.Session.Char_id = recv.GetUInt32(28);
                }
                else
                {
                    SessionHandler.KillSession(client.Session);
                    return(-1);
                }
                client.Session.DataSend(reserveData.Get());
                break;

            case 0x14:     // Delete Character
                byte[] Data14 = new byte[]
                {
                    0x20, 0x00, 0x00, 0x00, 0x49, 0x58, 0x46, 0x46, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                };

                uint charid = recv.GetUInt32(0x20);
                if (charid > 0 && client.Session.Char_id_list.Contains(charid))
                {
                    ByteRef ReservePacket14 = new ByteRef(Data14);

                    MD5    md5Hash14 = MD5.Create();
                    byte[] hash14    = md5Hash14.ComputeHash(ReservePacket14.Get(), 0, 0x20);
                    ReservePacket14.BlockCopy(hash14, 12, 16);

                    client.Session.ViewSend(ReservePacket14.Get());

                    // TODO: add character deletion
                    //MySQL.DeleteChar(client.Session.Account_id, charid);
                }
                else
                {
                    SessionHandler.KillSession(client.Session);
                    return(-1);
                }
                break;

            case 0x21:     // Create a Character - Save
                if (!CreateCharacter(client.Session.Account_id, client.Session.Char_name, recv))
                {
                    SessionHandler.KillSession(client.Session);
                    return(-1);
                }

                ByteRef ReservePacket21 = new ByteRef(0x20);
                ReservePacket21.BlockCopy(lobbyActionDone, 0, 0x20);
                MD5    md5Hash21 = MD5.Create();
                byte[] hash21    = md5Hash21.ComputeHash(ReservePacket21.Get(), 0, 0x20);
                ReservePacket21.BlockCopy(hash21, 12, 16);

                client.Session.ViewSend(ReservePacket21.Get());

                client.Session.Status = SESSIONSTATUS.INGAME;
                break;

            case 0x22:     // Create a Character - Validate
                sendSize = 0x24;
                ByteRef ReservePacket22 = new ByteRef(sendSize);
                if (ConfigHandler.MaintConfig.MaintMode > 0)
                {
                    ReservePacket22.BlockCopy(lobbyErrorData, 0, 0x24);
                    ReservePacket22.Set <ushort>(32, 314);
                }
                else
                {
                    ByteRef NameBuf = new ByteRef(15);
                    NameBuf.BlockCopy(recv.At(32), 0, 15);
                    string CharName = Utility.ReadCString(NameBuf.Get());

                    Player player = DBClient.GetOne <Player>(DBREQUESTTYPE.PLAYER, p => p.Name.Equals(CharName));

                    if (!Regex.IsMatch(CharName, @"^[a-zA-Z]+$") || SessionHandler.CharNameExists(CharName) || player != null)
                    {
                        ReservePacket22.BlockCopy(lobbyErrorData, 0, sendSize);
                        ReservePacket22.Set <ushort>(32, 313);
                    }
                    else
                    {
                        client.Session.Char_name = CharName;
                        sendSize = 0x20;
                        ReservePacket22.BlockCopy(lobbyActionDone, 0, sendSize);
                    }
                }

                MD5    md5Hash22 = MD5.Create();
                byte[] hash22    = md5Hash22.ComputeHash(ReservePacket22.Get(), 0, 0x20);
                ReservePacket22.BlockCopy(hash22, 12, 16);

                client.Session.ViewSend(ReservePacket22.Get(), sendSize);
                break;
            }

            return(1);
        }
Пример #19
0
 public DeviceController(GridDataContext context, AccountEF _accountContext, IRedisConnectionFactory redisConnectionFactory)
 {
     peiuGridDataContext = context;
     peiuDataContext     = _accountContext;
     database            = redisConnectionFactory.Connection().GetDatabase(1);
 }