public ActionResult MyInfo() { this.LoginCheck("MyInfo"); List <Channel> MyChannels = new List<Channel>(); List<Favorite> favo = new List<Favorite>(); using (var context = new SharedPlayerContext()) { var obj = (from a in context.Favorites.Where(x => x.MemberID == this.LoginMember.MemberID) join b in context.Channels on a.ChannelID equals b.ChannelID select new { ChannelID = b.ChannelID, Title = b.Title, CreateMemberID = b.CreateMemberID, RegDate = b.RegDate }); foreach (var item in obj) { MyChannels.Add(new Channel() { ChannelID = item.ChannelID, Title = item.Title, CreateMemberID = item.CreateMemberID, RegDate = item.RegDate }); } } ViewBag.MyChannels = MyChannels; return View(this); }
/// <summary> /// 로그인 여부를 체크합니다. /// </summary> protected void LoginCheck(string _menuString = "") { //저장된 Token은 저장할 때 Cypto.Encode 메소드를 이용해 암호화 합니다. string UserToken = CryptoCookie.GetCookie("Token"); this.MenuString = _menuString; if (String.IsNullOrEmpty(this.MenuString)) { this.MenuString = "Home"; } if (!String.IsNullOrEmpty(UserToken)) { //Database에 연결하여 해당 토큰이 유효한 토큰 인지 확인합니다. using (var context = new SharedPlayerContext()) { //토큰 유효성 검사는 토큰값과 만료일이 기준이 됩니다. LoginAuth auth = context.Auths.Where(x => x.Token.Equals(UserToken)).Where(x => x.ExpiredDate >= DateTime.Now).FirstOrDefault(); if (auth != null && auth.idx > 0) { this.LoginMember = context.Members.Where(x => x.MemberID == auth.MemberID).FirstOrDefault(); if (this.LoginMember != null && this.LoginMember.MemberID > 0) { //회원정보를 정상적으로 불러왔다면, 로그인을 성공한 것으로 간주합니다. this.IsLogin = true; } } } } }
public async Task<ActionResult> Index() { this.LoginCheck("Channel"); List<Channel> list = new List<Channel>(); List<Music> music = new List<Music>(); using (var context = new SharedPlayerContext()) { list = await context.Channels.ToListAsync().ConfigureAwait(false); music = await context.Musics.ToListAsync().ConfigureAwait(false); } ViewBag.list = list; ViewBag.music = music; return View(this); }
public async Task<ActionResult> Player(int ChannelID) { this.LoginCheck(); Channel channel = new Channel(); List<Music> list = new List<Music>(); using (var context = new SharedPlayerContext()) { channel = await context.Channels.Where(x => x.ChannelID == ChannelID).FirstOrDefaultAsync().ConfigureAwait(false) ?? new Channel(); list = await context.Musics.Where(x => x.ChannelID == ChannelID).OrderBy(x => x.Seq).ToListAsync().ConfigureAwait(false) ?? new List<Music>(); } ViewBag.list = list; ViewBag.channel = channel; return View(this); }
public async Task<ActionResult> View(int ChannelID) { this.LoginCheck("Channel"); Favorite favo = new Favorite(); Channel channel = new Channel(); List<Music> list = new List<Music>(); using (var context = new SharedPlayerContext()) { channel = await context.Channels.Where(x => x.ChannelID == ChannelID).FirstOrDefaultAsync().ConfigureAwait(false) ?? new Channel(); list = await context.Musics.Where(x => x.ChannelID == ChannelID).OrderBy(x => x.Seq).ToListAsync().ConfigureAwait(false) ?? new List<Music>(); favo = await context.Favorites.Where(x => x.ChannelID == ChannelID).Where(x => x.MemberID == this.LoginMember.MemberID).FirstOrDefaultAsync().ConfigureAwait(false) ?? new Favorite(); } ; ViewBag.channel = channel; ViewBag.list = list; ViewBag.favo = favo; return View(this); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); //Gzip압축 전송 설정 //실서버인 경우에만 Gzip 압축 전송을 진행합니다. bool IsReal = System.Configuration.ConfigurationManager.AppSettings["IsReal"].Equals("True"); if (IsReal) { GlobalFilters.Filters.Add(new CompressAttribute()); } RouteConfig.RegisterRoutes(RouteTable.Routes); //WebGrease Set BundleConfig.RegisterBundles(BundleTable.Bundles); //EntityFramework MigrateDatabase Database.SetInitializer<SharedPlayerContext>(new MigrateDatabaseToLatestVersion<SharedPlayerContext, Configuration>()); using (var context = new SharedPlayerContext()) { var dbMigrator = new DbMigrator(new Configuration()); dbMigrator.Update(); } }
public JsonResult AddMusicProc(int ChannelID, int Seq, string Title, string URL) { this.LoginCheck(); try { Music music = new Music(); using (var context = new SharedPlayerContext()) { music.ChannelID = ChannelID; music.RegDate = DateTime.Now; if (Seq > 0) { music.Seq = Seq; } else { if (context.Musics.Where(x => x.ChannelID == ChannelID).Count() > 0) { int num = context.Musics.Where(x => x.ChannelID == ChannelID).Max(x => x.Seq); music.Seq = num + 1; } else { music.Seq = 1; } } music.Title = Server.UrlDecode(Title); music.URL = Server.UrlDecode(URL); music.MemberID = this.LoginMember.MemberID; context.Musics.Add(music); context.SaveChanges(); } if (music.MusicID > 0) { return Json(new { Check = true, Message = "", ChannelID = ChannelID, MusicID = music.MusicID, UserName = this.LoginMember.NickName }); } else { return Json(new { Check = false, Message = "등록하지 못했습니다.", ChannelID = ChannelID }); } } catch (Exception ex) { return Json(new { Check = false, Message = ex.Message, ChannelID = ChannelID }); } }
public JsonResult RemoveFavorite(int ChannelID) { ReturnResult result = new ReturnResult(); this.LoginCheck(); using (var context = new SharedPlayerContext()) { Channel channel = context.Channels.Where(x => x.ChannelID == ChannelID).FirstOrDefault(); if (channel != null && channel.ChannelID > 0) { Favorite favo = context.Favorites.Where(x => x.MemberID == this.LoginMember.MemberID).Where(x => x.ChannelID == ChannelID).FirstOrDefault(); if (favo != null && favo.FavoriteID > 0) { context.Favorites.Remove(favo); context.SaveChanges(); result.Success(); } else { result.Fail("대상을 찾을 수 없습니다."); } } else { result.Fail("대상을 찾을 수 없습니다."); } } return Json(result); }
public ActionResult JoinCompleteProc(string Token) { if (!String.IsNullOrEmpty(Token)) { string HashToken = AES256.Decrypt(Token, this.Secret, true); if (!String.IsNullOrEmpty(HashToken)) { MailAuth auth = new MailAuth(); Member member = new Member(); using (var context = new SharedPlayerContext()) { auth = context.MailAuths.Where(x => x.Token.Equals(HashToken)).Where(x => x.IsComplete == false).FirstOrDefault(); if (auth != null && auth.AuthID > 0) { member = context.Members.Where(x => x.MemberID == auth.MemberID).FirstOrDefault(); auth.IsComplete = true; auth.AcceptDate = DateTime.Now; member.IsMailAuth = true; member.LastUpdate = DateTime.Now; context.SaveChanges(); return View(this); } else { return RedirectToAction("ErrorGuide", "Home", new { ErrCode = 4901 }); } } } else { return RedirectToAction("ErrorGuide", "Home", new { ErrCode = 4902 }); } } else { return RedirectToAction("ErrorGuide", "Home", new { ErrCode = 4903 }); } }
public JsonResult LoginProc(string Email, string Password) { bool chk = false; string msg = String.Empty; try { Member member = new Member(); using (var context = new SharedPlayerContext()) { member = context.Members.Where(x => x.Email.Equals(Email)).FirstOrDefault() ?? new Member(); if (member != null && member.MemberID > 0) { if (Sha512.ValidatePassword(Password, member.Password)) { if (member.IsMailAuth) { LoginAuth auth = new LoginAuth(); auth.RegDate = DateTime.Now; auth.ExpiredDate = Convert.ToDateTime(String.Format("{0} 23:59:59", DateTime.Now.ToString("yyyy-MM-dd"))); auth.UserBrowser = String.Format("{0} v{1}.{2}", Request.Browser.Browser, Request.Browser.MajorVersion, Request.Browser.MinorVersion); auth.MemberID = member.MemberID; auth.UserIP = Request.UserHostAddress; auth.Token = Salt.RandomString(16); int cnt = 0; do { auth.Token = Salt.RandomString(16); cnt = context.Auths.Where(x => x.Token.Equals(auth.Token)).Count(); } while (cnt > 0); context.Auths.Add(auth); context.SaveChanges(); CryptoCookie.SetCookie("Token", auth.Token); chk = true; msg = ""; } else { chk = false; msg = "메일인증이 완료되지 않았습니다. 메일을 확인해 주세요."; } } else { chk = false; msg = "아이디 또는 비밀번호가 일치하지 않습니다."; } } else { chk = false; msg = "아이디 또는 비밀번호가 일치하지 않습니다."; } } } catch (Exception ex) { chk = false; msg = ex.Message; if (ex.InnerException != null) { msg = ex.InnerException.Message; } } return Json(new { Check = chk, Message = msg }); }
public JsonResult RecommendProc(int MusicID) { ReturnResult result = new ReturnResult(); this.LoginCheck(); using (var context = new SharedPlayerContext()) { Music music = context.Musics.Where(x => x.MusicID == MusicID).FirstOrDefault(); if (music != null && music.MusicID > 0) { music.RecommendCount = music.RecommendCount + 1; context.SaveChanges(); result.Success(); } else { result.Error("대상을 찾을 수 없습니다."); } } return Json(result); }
public JsonResult RemoveChannel(int ChannelID) { ReturnResult result = new ReturnResult(); this.LoginCheck(); using (var context = new SharedPlayerContext()) { Channel channel = context.Channels.Where(x => x.ChannelID == ChannelID).FirstOrDefault(); if (channel != null && channel.ChannelID > 0) { if (channel.CreateMemberID == this.LoginMember.MemberID) { List<Music> music = context.Musics.Where(x => x.ChannelID == ChannelID).ToList(); if (music != null && music.Count > 0) { foreach (Music item in music) { context.Musics.Remove(item); } } context.Channels.Remove(channel); context.SaveChanges(); result.Success(); } else { result.Error("채널을 삭제할 권한이 없습니다."); } } else { result.Error("채널이 존재하지 않습니다."); } } return Json(result); }
public JsonResult RemoveMusic(long MusicID) { ReturnResult result = new ReturnResult(); this.LoginCheck(); using (var context = new SharedPlayerContext()) { Music music = context.Musics.Where(x => x.MusicID == MusicID).FirstOrDefault(); if (music != null && music.MusicID > 0) { Channel channel = context.Channels.Where(x => x.ChannelID == music.ChannelID).FirstOrDefault(); if (channel != null) { if (channel.CreateMemberID == this.LoginMember.MemberID || music.MemberID == this.LoginMember.MemberID) { context.Musics.Remove(music); context.SaveChanges(); result.Success(); } else { result.Error("삭제할 권한이 없습니다."); } } else { result.Error("소속 채널에 오류가 있습니다."); } } else { result.Error("대상을 찾을 수 없습니다."); } } return Json(result); }
public JsonResult MusicInfo(long MusicID) { Music music = new Music(); using (var context = new SharedPlayerContext()) { music = context.Musics.Where(x => x.MusicID == MusicID).FirstOrDefault() ?? new Music(); } return Json(new { User = this.LoginMember, Music = music }); }
public JsonResult SeqDownProc(long MusicID) { bool chk = false; string msg = String.Empty; Music music = new Music(); using (var context = new SharedPlayerContext()) { music = context.Musics.Where(x => x.MusicID == MusicID).FirstOrDefault() ?? new Music(); int num = music.Seq; Music nxtMusic = context.Musics.Where(x => x.ChannelID == music.ChannelID).Where(x => x.MusicID > music.MusicID).OrderBy(x => x.MusicID).FirstOrDefault(); if (nxtMusic != null && nxtMusic.MusicID > 0) { music.Seq = nxtMusic.Seq; nxtMusic.Seq = num; context.SaveChanges(); chk = true; msg = ""; } else { chk = false; msg = "교체할 대상이 없습니다."; } } return Json(new { Check = chk, Message = msg, MusicID = MusicID }); }
public JsonResult JoinProc(Member member) { try { bool chk = false; string msg = String.Empty; member.RegDate = DateTime.Now; member.LastUpdate = DateTime.Now; member.IsMailAuth = false; member.Password = Sha512.CreateHash(member.Password); using (var context = new SharedPlayerContext()) { var checkList = context.Members.Where(x => x.Email.Equals(member.Email)).Count(); if (checkList > 0) { chk = false; msg = "이미 사용중인 이메일 입니다."; } else { context.Members.Add(member); context.SaveChanges(); if (member.MemberID > 0) { MailAuth auth = new MailAuth(); auth.AcceptDate = DateTime.Now; auth.Email = member.Email; auth.IsComplete = false; auth.member = member; auth.RegDate = DateTime.Now; auth.Token = Salt.RandomString(16); context.MailAuths.Add(auth); context.SaveChanges(); if (auth.AuthID > 0) { string URL = String.Format("{0}://{1}/Member/JoinCompleteProc?Token={2}", Request.Url.Scheme, Request.Url.Host, AES256.Encrypt(auth.Token, this.Secret, true)); StringBuilder builder = new StringBuilder(); builder.Append(FileHandler.ReadFile(Server.MapPath("~/Content/MemberJoin.html"), Encoding.UTF8)); builder.Replace("{URL}", URL); if (Mail.Send(member.Email, "[SharedPlayer.net] 회원가입 인증메일입니다.", builder.ToString())) { chk = true; } else { chk = false; msg = "인증메일 발송이 실패하였습니다. 잠시 후 다시 시도해 주세요."; } } else { chk = false; msg = "인증메일 발송이 실패하였습니다. 잠시 후 다시 시도해 주세요."; } } } } return Json(new { Check = chk, Message = msg }); } catch (Exception ex) { if (ex.InnerException != null) { return Json(new { Check = false, Message = ex.InnerException.InnerException.Message }); } else { return Json(new { Check = false, Message = "2. " + ex.Message }); } } }
public JsonResult UpdateMusicProc(int ChannelID, long MusicID, string Title, string URL) { this.LoginCheck(); try { using (var context = new SharedPlayerContext()) { Music music = context.Musics.Where(x => x.MusicID == MusicID).FirstOrDefault(); if (music != null && music.MusicID > 0) { music.Title = Title; music.URL = URL; context.SaveChanges(); return Json(new { Check = true, Message = "", ChannelID = ChannelID, MusicID = MusicID }); } else { return Json(new { Check = false, Message = "대상을 찾을 수 없습니다.", ChannelID = ChannelID }); } } } catch (Exception ex) { return Json(new { Check = false, Message = ex.Message, ChannelID = ChannelID }); } }
public JsonResult UserInfo(int MemberID) { Member member = new Member(); using (var context = new SharedPlayerContext()) { member = context.Members.Where(x => x.MemberID == MemberID).FirstOrDefault() ?? new Member(); } if (member != null && member.MemberID > 0) { return Json(new { Check = true, Message = String.Empty, Data = member }); } else { return Json(new { Check = false, Message = "대상이 없습니다." }); } }
public JsonResult RegistProc(string Title) { this.LoginCheck(); Channel channel = new Channel(); channel.CreateMemberID = this.LoginMember.MemberID; channel.RegDate = DateTime.Now; channel.Title = Title; using (var context = new SharedPlayerContext()) { context.Channels.Add(channel); context.SaveChanges(); } if (channel.ChannelID > 0) { return Json(new { Check = true, Message = "", ChannelID = channel.ChannelID }); } else { return Json(new { Check = false, Message = "등록하지 못했습니다." }); } }
public ActionResult ListViewItem(string mode, int MusicID) { this.LoginCheck(); ViewItem item = new ViewItem(); using (var context = new SharedPlayerContext()) { Music music = context.Musics.Where(x => x.MusicID == MusicID).FirstOrDefault(); Channel channel = context.Channels.Where(x => x.ChannelID == music.ChannelID).FirstOrDefault(); item = new ViewItem(mode, channel, music, this.LoginMember); } return View(item); }
public async Task<ActionResult> ModMusic(int ChannelID, long MusicID) { this.LoginCheck("Channel"); Channel channel = new Channel(); Music music = new Music(); using (var context = new SharedPlayerContext()) { channel = await context.Channels.Where(x => x.ChannelID == ChannelID).FirstOrDefaultAsync().ConfigureAwait(false) ?? new Channel(); music = await context.Musics.Where(x => x.MusicID == MusicID).FirstOrDefaultAsync().ConfigureAwait(false) ?? new Music(); } ViewBag.channel = channel; ViewBag.music = music; return View(this); }
public JsonResult RemoveFavorite(int ChannelID) { this.LoginCheck(); bool chk = false; string msg = String.Empty; using (var context = new SharedPlayerContext()) { Favorite favo = context.Favorites.Where(x => x.ChannelID == ChannelID) .Where(x => x.MemberID == this.LoginMember.MemberID) .FirstOrDefault(); if (favo != null && favo.FavoriteID > 0) { context.Favorites.Remove(favo); context.SaveChanges(); chk = true; msg = ""; } else { chk = false; msg = "대상이 없습니다."; } } return Json(new { Check = chk, Message = msg }); }