예제 #1
0
        public async Task <Tuple <string, User, ApiResponse> > TokenGenerateWithUDID(AccessDevice accessDevice)
        {
            var result = await _userService.GetAccessDevice(accessDevice);

            if (result == null)
            {
                var dtRes = new ApiResponse();
                dtRes.Message = "Email not registred!";
                return(new Tuple <string, User, ApiResponse>(null, null, dtRes));
            }

            //Authenticate User, Check if it’s a registered user in Database
            if (!result.Data.Item1.IsSuccess)
            {
                return(new Tuple <string, User, ApiResponse>(null, result.Data.Item2, result.Data.Item1));
            }

            if (accessDevice.Password == new Security().Decrypt(result.Data.Item2.Password))
            {
                var JWToken = _jwtTokenService.GenerateToken(result.Data.Item2.EmailAddress, Guid.NewGuid().ToString());


                var token = new JwtSecurityTokenHandler().WriteToken(JWToken);

                return(new Tuple <string, User, ApiResponse>(token, result.Data.Item2, result.Data.Item1));
            }
            else
            {
                return(new Tuple <string, User, ApiResponse>(null, result.Data.Item2, result.Data.Item1));
            }
        }
        public async Task <ApiResponse> SignUp([FromBody] JObject req)
        {
            var response = new ApiResponse();

            try
            {
                var model = new User();

                model.UserId       = req["UserId"].ToObject <Int64>();
                model.EmailAddress = req["EmailAddress"].ToObject <string>();
                model.Password     = req["Password"].ToObject <string>();
                model.FirstName    = req["FirstName"].ToObject <string>();
                model.LastName     = req["LastName"].ToObject <string>();
                model.DeviceType   = req["DeviceType"].ToObject <int>();
                model.DeviceToken  = req["DeviceToken"].ToObject <string>();
                model.UdId         = req["UDID"].ToObject <string>();
                model.CityId       = req["CityId"].ToObject <Int64>();
                model.StateId      = req["StateId"].ToObject <Int64>();
                model.CountryId    = req["CountryId"].ToObject <Int64>();
                model.RoleId       = req["RoleId"].ToObject <int>();

                var userData = _userService.SignUpAsync(model).Result;


                if (userData.Status)
                {
                    string tokenData = _tokenService.TokenGenerateSignUp(userData.Data.EmailAddress, userData.Data.UserId);

                    var accessTokenModel = new AccessDevice();
                    accessTokenModel.Email       = userData.Data.EmailAddress;
                    accessTokenModel.deviceToken = userData.Data.DeviceToken;
                    accessTokenModel.deviceType  = userData.Data.DeviceType;
                    accessTokenModel.udid        = userData.Data.UdId;

                    await _userService.UpdateUserToken(accessTokenModel, userData.Data.UserId, tokenData);

                    response.Status        = true;
                    response.Message       = "User registered has been successfully.";
                    userData.Data.Password = "";
                    userData.Data.Token    = tokenData;
                    response.Data          = userData.Data;
                }
                else
                {
                    response.Status  = false;
                    response.Message = userData.Message;
                }
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message.ToString();
            }

            return(response);
        }
예제 #3
0
        public async Task <ApiResponse> UpdateUserToken(AccessDevice request, Int64 userId, string token)
        {
            var response = new ApiResponse();
            var data     = await _repository.UpdateUserToken(request, userId, token);

            response.Data    = data.Data;
            response.Message = data.Message;
            response.Status  = data.Status;

            return(response);
        }
예제 #4
0
        public async Task <ApiResponse> GetAccessDevice(AccessDevice model)
        {
            var response = new ApiResponse();

            model.Password = new Security().Encrypt(model.Password.Trim());

            var data = await _repository.GetAccessDevice(model);

            response.Data    = data.Data;
            response.Message = data.Message;
            response.Status  = data.Status;

            return(response);
        }
        public async Task <ApiResponse> UpdateUserToken(AccessDevice request, Int64 userId, string token)
        {
            var _param = new DynamicParameters();

            _param.Add("@device_token", request.deviceToken.ToString(), DbType.String);
            _param.Add("@device_type", request.deviceType.ToString(), DbType.String);
            _param.Add("@udid", request.udid.ToString(), DbType.String);
            _param.Add("@uEmail", request.Email.ToString(), DbType.String);
            _param.Add("@UserId", userId, DbType.Int64);
            _param.Add("@uToken", token, DbType.String);
            _param.Add("@SuccessMsg", null, DbType.String, ParameterDirection.Output);
            _param.Add("@IsSuccess", 0, DbType.Int16, ParameterDirection.Output);

            return(await Task.FromResult(_dapperService.Get <ApiResponse>("API_UpdateUserToken", _param, CommandType.StoredProcedure)));
        }
    public BioService.AccessDevice GetAccessDeviceProto(AccessDevice entity)
    {
      if (entity == null)
        return null;

      BioService.AccessDevice proto = new BioService.AccessDevice();

      proto.Id = entity.Id;
      proto.Portname = entity.PortName;
      proto.Type = (BioService.AccessDevice.Types.AccessDeviceType)entity.Location_Type;

      if (entity.Location_Id.HasValue)
        proto.Locationid = entity.Location_Id.Value;


      return proto;
    }
        public async Task <ApiResponse> Login([FromBody] JObject req)
        {
            var response = new ApiResponse();

            try
            {
                var request = new AccessDevice();
                request.UserName    = req["EmailAddress"].ToObject <string>();
                request.Email       = req["EmailAddress"].ToObject <string>();
                request.Password    = req["Password"].ToObject <string>();
                request.deviceToken = req["DeviceToken"].ToObject <string>();
                request.deviceType  = req["DeviceType"].ToObject <int>();
                request.udid        = req["UDID"].ToObject <string>();
                request.RoleId      = req["RoleId"].ToObject <int>();

                var data = await _tokenService.TokenGenerateWithUDID(request);

                if (data.Item1 != null && data.Item3.Status)
                {
                    await _userService.UpdateUserToken(request, data.Item2.UserId, data.Item1);

                    data.Item2.Token    = data.Item1;
                    data.Item2.Password = null;

                    response.Status  = data.Item3.Status;
                    response.Message = data.Item3.Message.ToString();
                    response.Data    = data.Item3.Status ? data.Item2 : null;
                }
                else
                {
                    response.Status  = false;
                    response.Message = data.Item3.Message;
                    response.Data    = null;
                }
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message.ToString();
                response.Data    = null;
            }

            return(response);
        }
        public async Task <ApiResponse> GetAccessDevice(AccessDevice model)
        {
            var _apiResponse = new ApiResponse();

            var _param = new DynamicParameters();

            _param.Add("@uUserType", model.RoleId, DbType.Int32);
            _param.Add("@uEmail", model.Email.Trim(), DbType.String);
            _param.Add("@uPassword", model.Password, DbType.String);
            _param.Add("@SuccessMsg", null, DbType.String, ParameterDirection.Output);
            _param.Add("@IsSuccess", 0, DbType.Int16, ParameterDirection.Output);

            _apiResponse.Data = await _dapperService.GetAsync <User>("Admin_Login", _param, CommandType.StoredProcedure);

            _apiResponse.Message = _param.Get <string>("SuccessMsg");
            _apiResponse.Status  = _param.Get <Int16>("IsSuccess") == 1 ? true : false;

            return(_apiResponse);
        }
예제 #9
0
        private void doWork()
        {
            string name       = "门禁主机";                                //资产名称的前缀
            string deviceCode = StringUtil.getDateTimeNum();           //资产编号起始
            int    dataCount  = Int32.Parse(AddACSDevNumtextBox.Text); //数据生成数量

            string[] sArray    = AddACSDevIpAddresstextBox.Text.Split('.');
            int      Port      = Int32.Parse(PorttextBox.Text);
            int      IPCount   = Int32.Parse(sArray[3]);//ip尾号
            long     IOTCtrlid = Int64.Parse(AddACSDevUIDtextBox.Text);

            AddACSDevprogressBar.Maximum = dataCount;
            AddACSDevprogressBar.Value   = 0;
            AddACSDevprogressBar.Step    = 1;

            for (int i = 0; i < dataCount;)
            {
                int           left    = dataCount - i;
                int           count   = left > AddDeviceHelper.ONCE_INSERT ? AddDeviceHelper.ONCE_INSERT : left;
                List <Device> devices = new List <Device>();
                for (int j = 0; j < count; j++, i++)
                {
                    AccessDevice acs = new AccessDevice();
                    acs.setIp(string.Format("{0}.{1}.{2}.{3}", sArray[0], sArray[1], sArray[2], IPCount++));
                    acs.setPort(Port.ToString());
                    acs.setDeviceCode(deviceCode + i.ToString());
                    acs.setCtlId(StringToHexString(IOTCtrlid++.ToString(), Encoding.UTF8));
                    acs.setDeviceName(name + i.ToString());
                    acs.setDoorCount(4);//4扇门

                    devices.Add(acs);

                    AddACSDevprogressBar.Value += AddACSDevprogressBar.Step;//让进度条增加一次
                }
                AddDeviceHelper.multiExcute(LoginMysqlFm.getNewDbHelper(), devices);
            }
            MessageBox.Show("添加成功");
        }
    public AccessDevice GetAccessDeviceEntity(BioService.AccessDevice proto)
    {
      if (proto == null)
        return null;

      AccessDevice entity = new AccessDevice();

      entity.Id = proto.Id;
      entity.PortName = proto.Portname;
      entity.Location_Type = (byte)proto.Type;
      entity.Location_Id = proto.Locationid;

      return entity;
    }