protected void Application_BeginRequest(object sender, EventArgs e) { var CookieName = "splgub"; if(HttpContext.Current.Request.Cookies[CookieName] == null) { HttpCookie myCookie = new HttpCookie(CookieName); string newGuid = Guid.NewGuid().ToString(); myCookie.Value = newGuid; myCookie.Expires = DateTime.MaxValue; HttpContext.Current.Response.Cookies.Add(myCookie); using (var comEntities = new ComEntities()) { var unitBrowser = new UnitBrowser(); unitBrowser.BrowserID = HttpContext.Current.Request.Browser.Id; unitBrowser.BrowserType = HttpContext.Current.Request.Browser.Type; unitBrowser.CookieGuid = newGuid; unitBrowser.UserAgent = HttpContext.Current.Request.UserAgent.ToString(); unitBrowser.CreatedDate = DateTime.Now; comEntities.UnitBrowser.Add(unitBrowser); comEntities.SaveChanges(); } } }
/// <summary> /// ログ書き込み /// </summary> public void WriteLog(ControllerContext filterContext) { //Todo:Importしたい var comEntities = new ComEntities(); using (var dbContextTransaction = comEntities.Database.BeginTransaction()) { try { var appActionLog = new AppActionLog() { MemberId = filterContext.HttpContext.Session["CurrentUser"].GetNullableLong(), ControllerName = filterContext.RouteData.Values["controller"].GetString(), ActionName = filterContext.RouteData.Values["action"].GetString(), Url = filterContext.HttpContext.Request.Url.UriString(), UserAgent = filterContext.HttpContext.Request.UserAgent, UrlReferrer = filterContext.HttpContext.Request.UrlReferrer.UriString(), SessionId = filterContext.HttpContext.Session.SessionID, Description = null, CreateDate = DateTime.Now }; var loggingDao = new LoggingDao(comEntities); loggingDao.CreateAppActionLog(appActionLog); comEntities.SaveChanges(); dbContextTransaction.Commit(); } finally { if (dbContextTransaction.UnderlyingTransaction.Connection != null && dbContextTransaction.UnderlyingTransaction.Connection.State == System.Data.ConnectionState.Open) { dbContextTransaction.Rollback(); } } } }
public static void SendMail(long memberID, string title, string body) { var com = new ComEntities(); using (var transaction = com.Database.BeginTransaction()) { //send mail var emailSender = new EmailSender(); try { string email = (from m in com.Member where m.MemberId == memberID select m.Mail).FirstOrDefault(); string result = emailSender.SendEmail2(email, body, title, null); if (result.Equals(Constants.EMAIL_SEND)) { List<MailDeliverCond> mailTypeList = new List<MailDeliverCond>(); foreach (var item in com.MailDeliverCondMaster) { // Set value for new row in MailDeliverCond table var newMailCondRow = new MailDeliverCond { MemberID = memberID, MailDelivCondID = item.MailDelivCondID, CreatedDate = System.DateTime.Now }; mailTypeList.Add(newMailCondRow); } //Insert to MailDeliverCond table com.MailDeliverCond.AddRange(mailTypeList); com.SaveChanges(); } } catch (Exception e) { transaction.Rollback(); } } }
/// <summary> /// 他の会員へのフォローを外す /// </summary> /// <param name="followerMemberId">フォローする会員(ログインユーザ)</param> /// <param name="followingMemberId">フォローされる会員</param> public static void unfollow(long followerMemberId, long followingMemberId) { if (followerMemberId <= 0) throw new Exception("フォローする側の会員IDが不正です。"); if (followingMemberId <= 0) throw new Exception("フォロー側の会員IDが不正です。"); if (followerMemberId == followingMemberId) throw new Exception("フォロー側とされる側の会員IDが同じです。"); using (ComEntities com = new ComEntities()) { using (var dbContextTransaction = com.Database.BeginTransaction()) { try { if (followerMemberId > 0 && followingMemberId > 0) { FollowList followList = (from f in com.FollowList where f.FollowerMemberID == followerMemberId && f.MemberID == followingMemberId select f).FirstOrDefault(); com.FollowList.Remove(followList); com.SaveChanges(); //お知らせ配信対象の削除 NoticeDeliverySubject nds = (from n in com.NoticeDeliverySubject where n.MemberId == (int)followingMemberId //フォローされた会員ID && n.ClassClass == 6 //フォロー && n.UniqueID == (int)followerMemberId //自分の会員ID && n.AlreadyReadFlg == false && n.NoticeDeliveryStatus == 1 select n).FirstOrDefault(); if (nds != null) { com.NoticeDeliverySubject.Remove(nds); com.SaveChanges(); } dbContextTransaction.Commit(); } } catch (Exception ex) { dbContextTransaction.Rollback(); throw ex; } } } }
/// <summary> /// 他の会員をフォローする /// </summary> /// <param name="followerMemberId">フォローする会員(ログインユーザ)</param> /// <param name="followingMemberId">フォローされる会員</param> public static void follow(long followerMemberId, long followingMemberId) { try { if (followerMemberId <= 0) throw new Exception("フォローする側の会員IDが不正です。"); if (followingMemberId <= 0) throw new Exception("フォローされる側の会員IDが不正です。"); if (followerMemberId == followingMemberId) throw new Exception("フォローする側とされる側の会員IDが同じです。"); using (ComEntities com = new ComEntities()) { using (var dbContextTransaction = com.Database.BeginTransaction()) { try { FollowList f = new FollowList { MemberID = followingMemberId, FollowerMemberID = followerMemberId, CreatedDate = DateTime.Now }; com.FollowList.Add(f); com.SaveChanges(); //お知らせ配信対象(NoticeDeliverySubject)テーブルにメール送信対象データを登録する。 var noticeId = (from ni in com.NoticeInfo where ni.MailDelivCondID == 3 select ni.NoticeId).FirstOrDefault(); NoticeDeliverySubject nds = new NoticeDeliverySubject { NoticeId = (int)noticeId, //お知らせ(NoticeInfo)のMailDelivCondID = 3 のレコードのお知らせID(NoticeId)を設定 MemberId = (int)followingMemberId, //フォローされた会員ID ClassClass = 6, //フォロー UniqueID = (int)followerMemberId, //ログインユーザの会員ID AlreadyReadFlg = false, NoticeDeliveryStatus = 1, CreatedAccountID = followerMemberId.ToString(), CreatedDate = DateTime.Now }; if (nds != null) { com.NoticeDeliverySubject.Add(nds); com.SaveChanges(); } NoticeInfo noticeInfo = (from ni in com.NoticeInfo where ni.MailDelivCondID == 3 && ni.NoticeClass == 3 select ni).FirstOrDefault(); string title = noticeInfo.Title; string body = noticeInfo.Body; NoticeInfoForMyPage notice = new NoticeInfoForMyPage(); notice.ClassClass = NoticeInfoForMyPage.CLS_FOLLOW; notice.MemberId = (int)followerMemberId; notice.Follower = (from m in com.Member where m.MemberId == followerMemberId select m.Nickname).FirstOrDefault(); notice.Follow = (from m in com.Member where m.MemberId == followingMemberId select m.Nickname).FirstOrDefault(); notice.setTitle(NoticeInfoForMyPage.CLS_FOLLOW, title); notice.setBody(NoticeInfoForMyPage.CLS_FOLLOW, body); Splg.Areas.MyPage.MyPageCommon.SendMail(followingMemberId, notice.Title, notice.Body); dbContextTransaction.Commit(); } catch (Exception ex) { dbContextTransaction.Rollback(); throw ex; } } } } catch (Exception ex) { throw ex; } }