본문 바로가기

전체 글

(53)
FireBase에서 Push알람 Web에서 구현하기 Push 알람 구현 요청이 있어서 작업했다. 서너시간 고생하면서 여기저기서 공부해 코드를 작성했는데 마지막 부분에 오니 firebase cloud messaging API가 V1로 올라가 구현 방법이 달라졌다. Key 입력 하는 부분이 사라졌다. Firebase 계정을 만들고 프로젝트를 생성하면, 홈화면 버튼 옆에 프로젝트 설정이 있다. 이를 누르면 SDK 설정 및 구성이 있는데 이곳에서 자신이 쓸 부분을 가져와 사용한다. 나 같은 경우는 npm을 사용하지 않기 때문 그냥 cdn으로 가져왔다. // ~/firebase.js // SDK로 가져오기 import { initializeApp } from "https://www.gstatic.com/firebasejs/10.7.1/firebase-app.js"..
C# 잊기 전에 팁 적어 놓기 1. LINQ에서 정렬을 여러번 해야할 때 ThenBy 사용하기 아래는 예시 var groupTypeCall = await _userdb.COUSWB_Groups.Select(s => s.GroupType).Distinct() .OrderByDescending(gt => gt == "초등학교") .ThenByDescending(gt => gt == "중학교") .ThenByDescending(gt => gt == "고등학교") .ToListAsync(); 2. LINQ에서 IQueryalbe ~> IEnumerable 변환하라고 오류 날 경우 아래 줄 넣기 .AsEnumerable() // IQueryable에서 IEnumerable로 변환 .GroupBy(g => new { Year = g.Create..
Devexpress 드래그로 이미지 업로드 구현, dxFileUploader() 프로필을 선택하면 팝업을 띄우고, 이후 프로필을 변경할 수 있게 구현해봤다. 우선 View에서 프로필 사진을 누르면 팝업이 뜨게 해줬다. $('#popup-profile-click2').click(function(){ $('#popup-profile2').dxPopup({ title: "프로필사진", visible: true, hideOnOutsideClick: true, height: "550px", maxWidth: "550px", contentTemplate: function () { return ` 프로필변경하기 `; } }) }) dxPopup() 에서 프로필 변경하기를 누르면 confirm으로 확인 받고 작동하게 해줬다. dxFileUploader() 을 사용해서 이미지 업로드를 구현했다. 기..
C# 에서 csv 파일 읽어오기 공공데이터를 가져와 pandas에서 가공 후 원하는 모델 형식에 맞춰 C#에 데이터를 넣어야 했다. public void로 반환 없이 1회면 사용해 DB에 저장했다. 우선 csv 경로를 가져오고 string csvFilePath = "경로/파일.csv"; TextFieldParser로 csv를 불러왔다. using (TextFieldParser parser = new TextFieldParser(csvFilePath)) { parser.TextFieldType = FieldType.Delimited; parser.SetDelimiters(","); // 구분자 설정 int cnt = 0; try { while (!parser.EndOfData) { if (cnt == 0) { cnt += 1; strin..
Claim에 강제로 데이터 넣기 Claim을 사용하면 로그인 마다 데이터를 넣을 수 있다. 특정 상황에서 claim을 넣어야 할 경우가 있다. 보안 상 문제가 있을 수 있지만, 아래와 같이 해결이 가능하다. 먼저 아래처럼 불러오고 private readonly SignInManager _signInManager; private readonly UserManager _userManager; public 사용할Controller(UserManager userManager, SignInManager signInManager) { _userManager = userManager; _signInManager = signInManager; } 기존 코드에 한줄을 추가하면 된다. // Claim 수정 var claims = new List { ne..
Claim 활용하는 방법 Claim을 활용해 @User.Identity에서 특정값을 사용하는 방법 1. 로그인 시 Claims에 사용자 정보 추가로 저장해두기 예시, AAA를 Claim에 집어넣으면, var user = _userdb.Users.FirstOrDefault(u => u.UserName == Input.Email); // Claims를 사용해서 사용자 정보 추가로 저장해서 쉽게 가져오기 var claims = new List { new Claim(ClaimTypes.Name, user.UserName), new Claim("AAA", user.AAA) }; 참고, Claim 객체 생성하는 방법, 아래 주석을 풀어 사용하면 된다. 나 같은 경우는 기존 로그인에 User.Identity를 먼저 저장하고 사용해서 아래 방..
Local Storage 저장하는 방법 사용자의 정보를 로컬 스토리지에 저장해서 써야하는 경우가 생겼다. 쿠키만 사용해보고 로컬 스토리지는 개념으로 밖에 몰랐는데 이번 기회에 사용해봤다. 주의 사항, 로컬 스토리지는 자바스크립트로만 생성 가능하다?, C#에서는 안되는 것 같다. (내가 찾은 바로는..) 아래는 remember me 구현하는 예시 // step 1. 로컬 스토리지 저장 함수 생성 localStorage.setItem('key 이름', 'value 내용'); // 로컬스토리지 저장 function saveInfo(Value) { localStorage.setItem('사용 할 Key', Value); } // step 2. 로컬 스토리지 사용하는 함수 생성 // 로컬스토리지 -> 이메일 필드 사용할 때, function fillU..
c# 도메인 가져오기, Custom Validation 사용방법 c# 도메인 가져올 때 _ 6.0V 기준 // 도메인 가져오기 string domain = HttpContext.Request.Host.Value; // 도메인 및 path 가져오기 string path = HttpContext.Request.Path.Value; path -> .ToLower()로 소문자 정리 후 사용하기! Compare Validation -> [Compare("Name", ErrorMessage = "에러메시지")] 같은 값인지 아닌지 비교, 값이 다르면 validation 띄움 반대로 사용하고 싶을 경우 커스텀 Validation을 사용하기 step 1. Validation Class 추가 // Custom Validation 추가 public IEnumerable Validate..