public JsonResult ExpectPoint(MyExpectedListInfoModel.ExpectChangeModel ViewModel) { Int64 memberID = GetMemberID(); MyPageJsonResultModel result = new MyPageJsonResultModel(); result = MyPageCommon.UpdateExpectPoint(ViewModel, memberID); return Json(result, JsonRequestBehavior.AllowGet); }
public static MyPageJsonResultModel UpdateExpectPoint(MyExpectedListInfoModel.ExpectChangeModel ViewModel, Int64 memberID) { int sportsID = ViewModel.SportsID; int gameID = ViewModel.GameID; int newExpectPoints = ViewModel.ExpectPoint; int oldExpectPoints = ViewModel.OldExpectPoint; MyPageJsonResultModel result = new MyPageJsonResultModel(); string errMsg = ""; errMsg = ValidChkInputPoint(ViewModel, memberID); if (errMsg != "") { result.HasError = true; result.Message = errMsg; } else { using (var dbContextTransaction = com.Database.BeginTransaction()) { try { if (gameID > 0 && memberID > 0) { var expectPointRecord = (from ep in com.ExpectPoint join et in com.ExpectTarget on ep.ExpectTargetID equals et.ExpectTargetID join pt in com.Point on ep.PointID equals pt.PointID where et.UniqueID == gameID && et.ClassClass == CLASSCLASS_GAME && et.SportsID == sportsID && pt.MemberID == memberID select ep).FirstOrDefault(); if (expectPointRecord != null) { //TODO SituationStatus 要確認(!=2でなくていいの?) expectPointRecord.SituationStatus = 1; // 1・・予想、2・・キャンセル、3・・中止、4・・結果確定 var newPHexpect = new PointHistory { PointId = expectPointRecord.PointID, ExpectPointId = expectPointRecord.ExpectPointID, CampaignId = null, PointClass = 2, //1・・原資、2・・所持、3・・予想、4・・獲得、5・・精算 Points = newExpectPoints, HistoryClass = 2,// 1・・付与、2・・予想、3・・獲得、4・・予想失敗、5・・精算、6・・キャンセル、7・・払い戻し、8・・失効 AdjustmentClass = 2, // 1・・加算、2・・減算 OperationClass = 1, // 1・・フロント、2・・バッチ、3・・バックオフィス Status = true, // 0・・エラー 1・・正常終了 CreatedAccountID = memberID.ToString(), CreatedDate = DateTime.Now }; com.PointHistory.Add(newPHexpect); var newPHpossesion = new PointHistory { PointId = expectPointRecord.PointID, ExpectPointId = expectPointRecord.ExpectPointID, CampaignId = null, PointClass = 3, //1・・原資、2・・所持、3・・予想、4・・獲得、5・・精算 Points = newExpectPoints, HistoryClass = 2,// 1・・付与、2・・予想、3・・獲得、4・・予想失敗、5・・精算、6・・キャンセル、7・・払い戻し、8・・失効 AdjustmentClass = 1, // 1・・加算、2・・減算 OperationClass = 1, // 1・・フロント、2・・バッチ、3・・バックオフィス Status = true, // 0・・エラー 1・・正常終了 CreatedAccountID = memberID.ToString(), CreatedDate = DateTime.Now }; com.PointHistory.Add(newPHpossesion); var upd_pt = (from pt in com.Point where pt.PointID == expectPointRecord.PointID && pt.MemberID == memberID select pt).FirstOrDefault(); if (upd_pt != null) { upd_pt.PossesionPoint = upd_pt.PossesionPoint - (newExpectPoints - oldExpectPoints); } expectPointRecord.ExpectPoint1 = newExpectPoints; com.SaveChanges(); dbContextTransaction.Commit(); } } else { result.HasError = true; //Rollback transaction. dbContextTransaction.Rollback(); } } catch (Exception) { // TODO:とりあえずログ出力 // JS呼出時の集約例外処理の対応後に集約例外処理へthrow,ここでのRollbackは行わないように修正する result.HasError = true; dbContextTransaction.Rollback(); } } } return result; }
/// <summary> /// お知らせを既読にする処理 /// </summary> /// <param name="managementnoticecount">現在表示しているレコード件数</param> /// <returns>Json形式のActionResult</returns> public ActionResult SetNoticeAlreadyRead(int noticeDeliverySubjectId) { MyPageJsonResultModel viewModel = new MyPageJsonResultModel(); //お知らせを既読にする long memberId = 0; object currentUser = Session["CurrentUser"]; if (currentUser != null && !String.IsNullOrEmpty(currentUser.ToString())) memberId = Convert.ToInt64(currentUser.ToString()); if (memberId > 0) { using (var context = com.Database.BeginTransaction()) { try { var noticeDSubject = (from d in com.NoticeDeliverySubject where d.NoticeDeliverySubjectId == (long)noticeDeliverySubjectId && d.MemberId == memberId select d).FirstOrDefault(); // 既読フラグを立てる if (noticeDSubject != null) { noticeDSubject.AlreadyReadFlg = MyPageConstant.ALREADY_READ; // コミット com.SaveChanges(); context.Commit(); // コミット後に件数を更新 int count = Utils.GetNumberOfUnreadNotice((int)memberId); viewModel.Message = count.ToString(); } } catch (Exception ex) { context.Rollback(); viewModel.HasError = true; throw ex; } } } return Json(viewModel, JsonRequestBehavior.AllowGet); }
public JsonResult UploadProfileImage() { MyPageJsonResultModel jsonResult = new MyPageJsonResultModel(); string uploadDIr = "/Content/img/upload/member/"; long memberID = long.Parse(Session["CurrentUser"].ToString()); var member = (from m in com.Member where m.MemberId == memberID select m).FirstOrDefault(); string rootPath = Server.MapPath("~" + uploadDIr); string directoryPath = System.IO.Path.GetFullPath(rootPath); if (System.IO.Directory.Exists(directoryPath)) System.IO.Directory.CreateDirectory(directoryPath); foreach (string file in Request.Files) { HttpPostedFileBase postedFile = Request.Files[file] as HttpPostedFileBase; if (postedFile.ContentLength == 0) continue; string[] exts = postedFile.FileName.Split('.'); string ext = exts[exts.Length - 1]; string imageFileName = Utils.MD5Hash(member.Nickname + DateTime.Now.Ticks.ToString()) + "." + ext; postedFile.SaveAs(directoryPath + imageFileName); //クライントがわで1写真しか送ってこない jsonResult.FilePath =uploadDIr + imageFileName; break; } return Json(jsonResult, JsonRequestBehavior.AllowGet); //return RedirectToAction("Index", "MyPageSetting"); }