예제 #1
0
        /// <summary>
        /// Purpose: Grabs all administrators
        /// Accepts: Boolean
        /// Returns: List<Administrator>
        /// </summary>
        public List <Administrator> GetAllAdministrators(bool onlyActive)
        {
            List <Administrator> administrators = new List <Administrator>();

            try
            {
                AdministratorData data = new AdministratorData();
                List <QSRDataObjects.Administrator> dataAdministrators = data.GetAllAdministrators(onlyActive);

                foreach (QSRDataObjects.Administrator a in dataAdministrators)
                {
                    Administrator admin = new Administrator();
                    admin.AdministratorID = a.AdministratorID;
                    admin.Username        = a.Username;
                    admin.Password        = a.Password;
                    admin.FirstName       = a.FirstName;
                    admin.LastName        = a.LastName;
                    admin.IsActive        = a.IsActive;
                    administrators.Add(admin);
                }
            }
            catch (Exception ex)
            {
                ErrorRoutine(ex, "Administrator", "GetAllAdministrators");
            }
            return(administrators);
        }
        private async Task <AdministratorData> AdministratorToData(Administrator admin)
        {
            AdministratorData data = new AdministratorData();

            data.iD      = admin.ID;
            data.USER_ID = admin.USER_ID;
            data.Name    = admin.NAME;

            data = await UtilityClassUserTreatent(data, admin) as AdministratorData;

            return(data);
        }
예제 #3
0
 public UserIdentity(AdministratorData user)
 {
     Email = user.Email;
     if (user.Username.HasValue())
     {
         Username = user.Username;
     }
     else
     {
         Username = user.Email;
     }
     LastConnectDate = user.LastConnectDate;
     DomainId        = (int)UserDomains.SysAdmin;
 }
예제 #4
0
 /// <summary>
 /// Purpose: Sets administrator ID based on administrator login information
 /// Accepts: String username, String password
 /// Returns: Nothing
 /// </summary>
 public void Login(string username, string password)
 {
     try
     {
         AdministratorData adminData = new AdministratorData();
         Hashtable         hsh       = new Hashtable();
         hsh["username"] = username.Trim();
         hsh["password"] = password.Trim();
         AdministratorID = adminData.Login(hsh);
     }
     catch (Exception ex)
     {
         ErrorRoutine(ex, "Administrator", "Login");
     }
 }
예제 #5
0
        private void SignIn(AdministratorData userData)
        {
            var userPrincipal = new ClaimsPrincipal(new ClaimsIdentity(new List <Claim>
            {
                new Claim(ClaimTypes.NameIdentifier, userData.UserId),
                new Claim(ClaimTypes.Name, userData.UserName ?? ""),
                new Claim(ClaimTypes.UserData, userData.ToJson())
            }, "Basic"));

            HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, userPrincipal,
                                    new AuthenticationProperties
            {
                ExpiresUtc   = DateTime.UtcNow.AddDays(7),
                IsPersistent = true,
                AllowRefresh = true
            });
        }
예제 #6
0
        /// <summary>
        /// 注册
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public ServiceResult <AdministratorData> RegisterUser(User user)
        {
            var userItem = Db.Query <User>().FirstOrDefault(a => a.UserNo == user.UserNo);

            if (userItem != null)
            {
                return(ServiceResult <AdministratorData> .IsFailed("会员ID重复,请重新注册!"));
            }

            var isAny = Db.Query <User>().Any(a => (a.UserName == user.UserName || a.Phone == user.Phone) && a.CompanyId == user.CompanyId);

            if (isAny)
            {
                return(ServiceResult <AdministratorData> .IsFailed("该用户名已被注册"));
            }

            if (string.IsNullOrEmpty(user.ImgUrl))
            {
                user.ImgUrl = _url;
            }

            user.UserId         = GuidHelper.GenerateComb().ToString("N");
            user.Status         = (int)PersonEnum.Status.Open;
            user.CreateDatetime = DateTime.Now;
            user.Password       = EncodePassword(user.UserId, user.Password);
            if (string.IsNullOrEmpty(user.WxName))
            {
                user.NickName = user.UserName;
            }
            else
            {
                user.NickName = user.WxName;
            }
            Db.Insert(user);

            var retdData = new AdministratorData
            {
                UserId    = user.UserId,
                CompanyId = user.CompanyId,
                UserNo    = user.UserNo
            };

            return(ServiceResult <AdministratorData> .IsSuccess("注册成功", retdData));
        }
예제 #7
0
        /// <summary>
        /// Purpose: Grabs administrator information based on ID
        /// Accepts: Int
        /// Returns: Nothing
        /// </summary>
        public void GetAdministratorByID(int id)
        {
            try
            {
                AdministratorData data = new AdministratorData();
                Hashtable         hsh  = new Hashtable();

                hsh = data.GetAdministratorByID(id);

                AdministratorID = id;
                Username        = hsh["username"];
                Password        = hsh["password"];
                FirstName       = hsh["firstname"];
                LastName        = hsh["lastname"];
                IsActive        = hsh["isactive"];
            }
            catch (Exception ex)
            {
                ErrorRoutine(ex, "Administrator", "GetAdministratorByID");
            }
        }
예제 #8
0
        /// <summary>
        /// 创建JWT
        /// </summary>
        /// <param name="userData"></param>
        /// <returns></returns>
        private static string BuildJwt(AdministratorData userData)
        {
            var tokenHandler    = new JwtSecurityTokenHandler();
            var authTime        = DateTime.UtcNow;
            var expiresAt       = authTime.AddYears(1);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new List <Claim>
                {
                    new Claim(JwtClaimTypes.Id, userData.UserId),
                    new Claim(ConstString.JwtCompanyId, userData.CompanyId),
                    new Claim(ConstString.KeyName, ConstString.KeyValue),
                    new Claim(ClaimTypes.UserData, userData.ToJson())
                }),
                Expires            = expiresAt,
                SigningCredentials =
                    new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(ConstString.AuthKey)),
                                           SecurityAlgorithms.HmacSha256Signature)
            };
            var token = tokenHandler.CreateToken(tokenDescriptor);

            return(tokenHandler.WriteToken(token));
        }
예제 #9
0
 public AdministratorBussines()
 {
     this.administradorData = new AdministratorData();
 }//constructor
        public async Task <IBasicData> ConversionSelector(IPoco selector, Type selectionType)
        {
            return(await Task.Run(async() =>
            {
                if (!correlation.ContainsKey(selectionType))
                {
                    if (selector is AirlineCompany)
                    {
                        correlation.Add(selectionType, async(selectorToFunc) => { return await AirlineCompanyToData(selectorToFunc as AirlineCompany); });
                    }
                    if (selector is Country)
                    {
                        correlation.Add(selectionType, async(selectorToFunc) => { return await CountryToData(selectorToFunc as Country); });
                    }
                    if (selector is Customer)
                    {
                        correlation.Add(selectionType, async(selectorToFunc) => { return await CustomerToData(selectorToFunc as Customer); });
                    }
                    if (selector is Administrator)
                    {
                        correlation.Add(selectionType, async(selectorToFunc) => { return await AdministratorToData(selectorToFunc as Administrator); });
                    }

                    if (selector is Utility_class_User)
                    {
                        switch ((selector as Utility_class_User).USER_KIND)
                        {
                        case "Administrator":
                            selectionType = typeof(Utility_class_UserAdministratorData);
                            if (!correlation.ContainsKey(selectionType))
                            {
                                correlation.Add(selectionType, async(selectorToFunc) => { return await Task.Run(async() =>
                                    {
                                        Utility_class_UserData baseData = await Utility_class_UserToData(selectorToFunc as Utility_class_User);
                                        Utility_class_UserAdministratorData adminData = FillBasicData(new Utility_class_UserAdministratorData(), baseData) as Utility_class_UserAdministratorData;
                                        if (baseData.administrator != null)
                                        {
                                            AdministratorData administratorData = await AdministratorToData(baseData.administrator);
                                            adminData.AdministratoriD = administratorData.iD;
                                            adminData.Name = administratorData.Name;
                                        }
                                        return adminData;
                                    }); });
                            }

                            break;

                        case "AirlineCompany":
                            selectionType = typeof(Utility_class_UserAirlineCompanyData);
                            if (!correlation.ContainsKey(selectionType))
                            {
                                correlation.Add(selectionType, async(selectorToFunc) => { return await Task.Run(async() =>
                                    {
                                        Utility_class_UserData baseData = await Utility_class_UserToData(selectorToFunc as Utility_class_User);
                                        Utility_class_UserAirlineCompanyData airlineData = FillBasicData(new Utility_class_UserAirlineCompanyData(), baseData) as Utility_class_UserAirlineCompanyData;
                                        if (baseData.airline != null)
                                        {
                                            AirlineCompanyData airlineCompanyData = await AirlineCompanyToData(baseData.airline);
                                            airlineData.AirlineCompanyiD = airlineCompanyData.iD;
                                            airlineData.Adorning = airlineCompanyData.Adorning;
                                            airlineData.Image = airlineCompanyData.Image;
                                            airlineData.AirlineName = airlineCompanyData.AirlineName;
                                            airlineData.BaseCountryName = airlineCompanyData.BaseCountryName;
                                        }
                                        return airlineData;
                                    }); });
                            }
                            break;

                        case "Customer":
                            selectionType = typeof(Utility_class_UserCustomerData);
                            if (!correlation.ContainsKey(selectionType))
                            {
                                correlation.Add(selectionType, async(selectorToFunc) => { return await Task.Run(async() =>
                                    {
                                        Utility_class_UserData baseData = await Utility_class_UserToData(selectorToFunc as Utility_class_User);
                                        Utility_class_UserCustomerData customerData = FillBasicData(new Utility_class_UserCustomerData(), baseData) as Utility_class_UserCustomerData;
                                        if (baseData.customer != null)
                                        {
                                            CustomerData currentCustomerData = await CustomerToData(baseData.customer);
                                            customerData.CustomeriD = currentCustomerData.iD;
                                            customerData.FirstName = currentCustomerData.FirstName;
                                            customerData.LastName = currentCustomerData.LastName;
                                            customerData.Address = currentCustomerData.Address;
                                            customerData.Phone_Num = currentCustomerData.Phone_Num;
                                            customerData.Credit_Card = currentCustomerData.Credit_Card;
                                            customerData.Image = currentCustomerData.Image;
                                        }
                                        return customerData;
                                    }); });
                            }
                            break;
                        }
                    }
                }

                var retVal = await correlation[selectionType](selector);
                return retVal;//await correlation[selectionType](selector);
            }));
        }