/// <summary> /// 处理设备注册 /// </summary> /// <param name="registerInfo"></param> /// <param name="con"></param> /// <param name="db"></param> public void ProcessReqest(Register registerInfo, SocketConnection con, IClientRequest db) { var registerBk = new CmdHeader { CmdCode = 0xFF01, Identity = registerInfo.Identity, ServerId = SocketConnectionServerDispatcher.ServerId, //TimeToken = registerInfo.TimeToken }; SocketConnection.ShowMsg(registerInfo.ToString()); var registerDto = new DtoRegister { Iccid = registerInfo.Iccid, ImeiNo = registerInfo.Identity, ImeiType = registerInfo.ImeiType, ImeiVersion = registerInfo.ImeiVersion, RemoteIpEndPoint = con.ConnectSocket.RemoteEndPoint.ToString(), ServerIp = con.ConnectSocket.LocalEndPoint.ToString(), ServerOutIp = SocketConnectionServerDispatcher.ServerOutIpEndPort, Lng = registerInfo.Lng, Lat = registerInfo.Lat }; registerBk.ResultCode = db.DeviceRegister(registerDto); con.Send(registerBk.ToByteArray()); SocketConnection.ShowMsg(registerBk.ToString()); }
public async Task <object> Register([FromBody] DtoRegister model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = new IdentityUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { await _signInManager.SignInAsync(user, false); return(await GenerateJwtToken(model.Email, user)); } if (result.Errors.Count() > 0) { IdentityError error = result.Errors.FirstOrDefault(); return(StatusCode(StatusCodes.Status501NotImplemented, error.Description)); } throw new ApplicationException("INVALID_REGISTER_ATTEMPT"); }
public async Task <IActionResult> Register(DtoRegister formData) { if (await _repo.UserExists(formData.Phone, formData.Email)) { return(BadRequest("此電話或電郵件已經是會員了")); } if (!ModelState.IsValid) { return(BadRequest(ModelState.ValidationState)); } //寫入註冊資料到資料庫中 var mapMember = _mapper.Map <Member>(formData); var member = await _repo.Register(mapMember, formData.password); return(Ok()); //返回簡單使用者資料 // var user = _mapper.Map<DtoLoginToReturn>(member); // return Ok(user); //重新導向使用者資料編輯 //return CreatedAtRoute("GetAccountr", new {controller = "account", id = userToReturn.USERID}, userToReturn); }
public async Task <IActionResult> Register(DtoRegister user) { var hashedUser = new User() { Username = user.Username, Email = user.Email, Password = _iauth.Hashing(user.Password), FirstName = user.FirstName, LastName = user.LastName, TeamId = user.TeamId }; //checking if username or email is unique var emailCheck = await _icheck.CheckEmail(hashedUser.Email); var usernameCheck = await _icheck.CheckUsername(hashedUser.Username); if (emailCheck && usernameCheck) { return(BadRequest("Email and Username is already taken")); } else if (emailCheck) { return(BadRequest("Email is already taken")); } else if (usernameCheck) { return(BadRequest("Username is already taken")); } await _context.User.AddAsync(hashedUser); await _context.SaveChangesAsync(); return(Ok(hashedUser)); }
public async Task <HttpResponseMessage> Register(DtoRegister reg) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = reg.Name, Email = reg.Email }; var result = await _userManager.CreateAsync(user, reg.Password); if (result.Succeeded) { // Send an email with this link var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: HttpContext.Request.Scheme); await _emailSender.SendEmailAsync(reg.Email, "Confirm your account", $"Please confirm your account by clicking this link: <a href='{callbackUrl}'>link</a>"); await _signInManager.SignInAsync(user, isPersistent : false); } } return(new HttpResponseMessage(HttpStatusCode.OK)); }
public int DeviceRegister(DtoRegister registerDto) { if (string.IsNullOrWhiteSpace(registerDto.ImeiNo)) { return(0); } string sqlStr = "select imeiId,imeimac,imeiGLongitude,imeiGLatitude from cy_imeiInfo where imeimac = @imeimac"; var param = new SqlParameter("@imeimac", SqlDbType.VarChar, 18) { Value = registerDto.ImeiNo }; var oDs = _dBhelper.ExecuteQuery(sqlStr, param); int res; if (oDs.Tables[0].Rows.Count == 0) { res = _dBhelper.ExecuteTransaction(cmd => { var sqlStr1 = "insert into cy_imeiInfo(imeimac,imeiType,imeiVersion,imeiStatusNo,ImeiOnlineState,imeiIp,imeiServerIp,imeiServerOutIp,imeiIccid,addUserId,addTime,updateUserId,updateTime"; var sqlStr2 = "(@imeimac,@imeiType,@imeiVersion,'A',@statusNo,@imeiIp,@imeiServerIp,@imeiServerOutIp,@imeiIccid,@addUserId,@addTime,@updateUserId,@updateTime"; var parameters = new List <SqlParameter>() { new SqlParameter("@imeimac", SqlDbType.VarChar, 18) { Value = registerDto.ImeiNo }, new SqlParameter("@imeiType", SqlDbType.VarChar, 10) { Value = registerDto.ImeiType }, new SqlParameter("@imeiVersion", SqlDbType.VarChar, 10) { Value = registerDto.ImeiVersion }, new SqlParameter("@statusNo", SqlDbType.VarChar, 5) { Value = "On" }, new SqlParameter("@imeiIp", SqlDbType.VarChar, 25) { Value = registerDto.RemoteIpEndPoint }, new SqlParameter("@imeiServerIp", SqlDbType.VarChar, 25) { Value = registerDto.ServerIp }, new SqlParameter("@imeiServerOutIp", SqlDbType.VarChar, 25) { Value = registerDto.ServerOutIp }, new SqlParameter("@imeiIccid", SqlDbType.VarChar, 20) { Value = registerDto.Iccid }, new SqlParameter("@addUserId", SqlDbType.Int, 4) { Value = -1 }, new SqlParameter("@addTime", SqlDbType.DateTime) { Value = DateTime.Now }, new SqlParameter("@updateUserId", SqlDbType.Int, 4) { Value = -1 }, new SqlParameter("@updateTime", SqlDbType.DateTime) { Value = DateTime.Now } }; if (registerDto.Lng.HasValue && registerDto.Lng != 0D && registerDto.Lat.HasValue && registerDto.Lat != 0D) { var qryres = CommonCode.GetWebRequest($"http://api.map.baidu.com/geocoder/v2/?location={registerDto.Lat.ToString()},{registerDto.Lng.ToString()}&output=json&ak=WEc8RlPXzSifaq9RHxE1WW7lRKgbid6Y"); var location = JsonConvert.DeserializeObject <QryLocation>(qryres); if (location != null && location.status == 0) { sqlStr1 += ",imeiGLongitude,imeiGLatitude,imeiAddress,imeiProvince,imeiCity,imeiCountry"; sqlStr2 += ",@imeiGLongitude,@imeiGLatitude,@imeiAddress,@imeiProvince,@imeiCity,@imeiCountry"; parameters.Add(new SqlParameter("@imeiGLongitude", SqlDbType.Decimal) { Value = registerDto.Lng }); parameters.Add(new SqlParameter("@imeiGLatitude", SqlDbType.Decimal) { Value = registerDto.Lat }); parameters.Add(new SqlParameter("@imeiAddress", SqlDbType.NVarChar, 100) { Value = location.result.formatted_address }); parameters.Add(new SqlParameter("@imeiProvince", SqlDbType.NVarChar, 20) { Value = location.result.addressComponent.province }); parameters.Add(new SqlParameter("@imeiCity", SqlDbType.NVarChar, 20) { Value = location.result.addressComponent.city }); parameters.Add(new SqlParameter("@imeiCountry", SqlDbType.NVarChar, 20) { Value = location.result.addressComponent.country }); qryres = CommonCode.GetWebRequest($"http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x={registerDto.Lng}&y={registerDto.Lat}"); var baiduxy = JsonConvert.DeserializeObject <BaiDuXy>(qryres); if (baiduxy != null && baiduxy.error == 0 && !string.IsNullOrWhiteSpace(baiduxy.x) && !string.IsNullOrWhiteSpace(baiduxy.y)) { sqlStr1 += ",imeiLongitude,imeiLatitude"; sqlStr2 += ",@imeiLongitude,@imeiLatitude"; parameters.Add(new SqlParameter("@imeiLongitude", SqlDbType.Decimal) { Value = Convert.ToDecimal(Encoding.UTF8.GetString(Convert.FromBase64String(baiduxy.x))) }); parameters.Add(new SqlParameter("@imeiLatitude", SqlDbType.Decimal) { Value = Convert.ToDecimal(Encoding.UTF8.GetString(Convert.FromBase64String(baiduxy.y))) }); } } } sqlStr = sqlStr1 + ")values" + sqlStr2 + ");select @@identity;"; cmd.CommandText = sqlStr; cmd.Parameters.Clear(); cmd.Parameters.AddRange(parameters.ToArray()); cmd.ExecuteScalar(); return(1); }); } else { var lng = 0.00D; var lat = 0.00D; if (oDs.Tables[0].Rows[0]["imeiGLongitude"] != DBNull.Value && oDs.Tables[0].Rows[0]["imeiGLatitude"] != DBNull.Value) { lng = double.Parse(oDs.Tables[0].Rows[0]["imeiGLongitude"].ToString()); lat = double.Parse(oDs.Tables[0].Rows[0]["imeiGLatitude"].ToString()); } res = _dBhelper.ExecuteTransaction(cmd => { sqlStr = "update cy_imeiInfo set "; var parameters = new List <SqlParameter>() { new SqlParameter("@imeiType", SqlDbType.VarChar, 10) { Value = registerDto.ImeiType }, new SqlParameter("@imeiVersion", SqlDbType.VarChar, 10) { Value = registerDto.ImeiVersion }, new SqlParameter("@imeiStatusNo", SqlDbType.VarChar, 5) { Value = "On" }, new SqlParameter("@imeiIp", SqlDbType.VarChar, 25) { Value = registerDto.RemoteIpEndPoint }, new SqlParameter("@imeiServerIp", SqlDbType.VarChar, 25) { Value = registerDto.ServerIp }, new SqlParameter("@imeiServerOutIp", SqlDbType.VarChar, 25) { Value = registerDto.ServerOutIp }, new SqlParameter("@imeiIccid", SqlDbType.VarChar, 20) { Value = registerDto.Iccid }, new SqlParameter("@imeimac", SqlDbType.VarChar, 18) { Value = registerDto.ImeiNo }, new SqlParameter("@updateUserId", SqlDbType.Int, 4) { Value = -1 }, new SqlParameter("@updateTime", SqlDbType.DateTime) { Value = DateTime.Now } }; if (registerDto.Lng.HasValue && registerDto.Lng != 0D && registerDto.Lat.HasValue && registerDto.Lat != 0D && (Math.Pow(registerDto.Lng.Value - lng, 2) + Math.Pow(registerDto.Lat.Value - lat, 2)) > 0.000001) { var qryres = CommonCode.GetWebRequest($"http://api.map.baidu.com/geocoder/v2/?location={registerDto.Lat.ToString()},{registerDto.Lng.ToString()}&output=json&ak=WEc8RlPXzSifaq9RHxE1WW7lRKgbid6Y"); var location = JsonConvert.DeserializeObject <QryLocation>(qryres); if (location != null && location.status == 0) { sqlStr += "imeiGLongitude=@imeiGLongitude,imeiGLatitude=@imeiGLatitude,imeiAddress=@imeiAddress,imeiProvince=@imeiProvince,imeiCity=@imeiCity,imeiCountry=@imeiCountry,"; parameters.Add(new SqlParameter("@imeiGLongitude", SqlDbType.Decimal) { Value = registerDto.Lng }); parameters.Add(new SqlParameter("@imeiGLatitude", SqlDbType.Decimal) { Value = registerDto.Lat }); parameters.Add(new SqlParameter("@imeiAddress", SqlDbType.NVarChar, 100) { Value = location.result.formatted_address }); parameters.Add(new SqlParameter("@imeiProvince", SqlDbType.NVarChar, 20) { Value = location.result.addressComponent.province }); parameters.Add(new SqlParameter("@imeiCity", SqlDbType.NVarChar, 20) { Value = location.result.addressComponent.city }); parameters.Add(new SqlParameter("@imeiCountry", SqlDbType.NVarChar, 20) { Value = location.result.addressComponent.country }); qryres = CommonCode.GetWebRequest($"http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x={registerDto.Lng}&y={registerDto.Lat}"); var baiduxy = JsonConvert.DeserializeObject <BaiDuXy>(qryres); if (baiduxy != null && baiduxy.error == 0) { sqlStr += "imeiLongitude=@imeiLongitude,imeiLatitude=@imeiLatitude,"; parameters.Add(new SqlParameter("@imeiLongitude", SqlDbType.Decimal) { Value = Convert.ToDecimal(Encoding.UTF8.GetString(Convert.FromBase64String(baiduxy.x))) }); parameters.Add(new SqlParameter("@imeiLatitude", SqlDbType.Decimal) { Value = Convert.ToDecimal(Encoding.UTF8.GetString(Convert.FromBase64String(baiduxy.y))) }); } } } sqlStr += "imeiType=@imeiType,imeiVersion=@imeiVersion,ImeiOnlineState=@imeiStatusNo,imeiIp=@imeiIp,imeiServerIp=@imeiServerIp,imeiServerOutIp=@imeiServerOutIp,imeiIccid=@imeiIccid,updateUserId=@updateUserId,updateTime=@updateTime where imeimac = @imeimac"; cmd.CommandText = sqlStr; cmd.Parameters.Clear(); cmd.Parameters.AddRange(parameters.ToArray()); cmd.ExecuteNonQuery(); return(1); }); } return(res); }