public MemberPlanWeekResult GetOrientationWeekResult(int memberPlanId) { MemberPlanWeekResult result = (from r in db.MemberPlanWeekResults join weeks in db.MemberExercisePlanWeeks on r.MemberExercisePlanWeekId equals weeks.Id where weeks.MemberExercisePlanId == memberPlanId && weeks.ExercisePlanWeekId == 0 select r).FirstOrDefault(); return(result); }
protected static void CopyWeekResult(ref MemberPlanWeekResult startingWeekResult, ref MemberPlanWeekResult finishingWeekResult) { startingWeekResult.StartBodyFat = finishingWeekResult.EndBodyFat; startingWeekResult.StartChest = finishingWeekResult.EndChest; startingWeekResult.StartHeartRate = finishingWeekResult.EndHeartRate; startingWeekResult.StartHip = finishingWeekResult.EndHip; startingWeekResult.StartWaist = finishingWeekResult.EndWaist; startingWeekResult.StartWeight = finishingWeekResult.EndWeight; return; }
protected void InitialiseWeekResult(ref MemberPlanWeekResult startingWeekResult) { /*startingWeekResult.StartChest = 0; * startingWeekResult.StartBodyFat = 0; * startingWeekResult.StartHeartRate = 0; * startingWeekResult.StartHip = 0; * startingWeekResult.StartWaist = 0; * startingWeekResult.StartWeight = 0; * * startingWeekResult.EndChest = 0; * startingWeekResult.EndBodyFat = 0; * startingWeekResult.EndHeartRate = 0; * startingWeekResult.EndHip = 0; * startingWeekResult.EndWaist = 0; * startingWeekResult.EndWeight = 0;*/ startingWeekResult.Tasks = PrizeConstants.DEFAULT_MEMBER_TASKS_CONFIG; return; }
public string GetOrientationWeekDayResult(int memberPlanId, int day) { MemberPlanWeekResult result = GetOrientationWeekResult(memberPlanId); if (result != null) { string s = ""; for (int i = 0; i < 10; i++) { s += "0"; } if (result.Questions != null && result.Questions.Length >= day * 10) { s = result.Questions.Substring((day - 1) * 10, 10); } return(s); } else { throw new Exception("No week result."); } }
public void UpdateOrientationWeekDayResult(int memberPlanId, int day, int quest, bool done) { using (this.db) { MemberPlanWeekResult result = (from r in db.MemberPlanWeekResults join weeks in db.MemberExercisePlanWeeks on r.MemberExercisePlanWeekId equals weeks.Id where weeks.MemberExercisePlanId == memberPlanId && weeks.ExercisePlanWeekId == 0 select r).FirstOrDefault(); char[] arr; if (result.Questions == null || result.Questions.Length < PrizeConstants.MAX_ORIENTATION_QUESTION) { result.Questions = ""; arr = new char[PrizeConstants.MAX_ORIENTATION_QUESTION]; for (int i = 0; i < PrizeConstants.MAX_ORIENTATION_QUESTION; i++) { arr[i] = '0'; } } else { arr = result.Questions.ToArray(); } int idx = (day - 1) * 10 + (quest - 1); if (done) { arr[idx] = '1'; } else { arr[idx] = '0'; } result.Questions = new string(arr); db.SaveChanges(); } }
public int BuyNewPlan(int newPlanId, ref PrizeExercisePlan prizePlan, ref MemberExercisePlan newMemberPlan) { DIYPTEntities db = new DIYPTEntities(); try { if (PrizeMemberAuthUtils.CurrentUserLogin() != true) { return(PrizeErrorCode.ERROR_NOT_LOGGED_IN); } int memberId = PrizeMemberAuthUtils.GetMemberID(); db.Database.Connection.Open(); PrizeExercisePlan plan = (from c in db.PrizeExercisePlans where c.Id == newPlanId select c).FirstOrDefault(); if (plan == null) { return(-1); } //using (TransactionScope transaction = new TransactionScope()) //{ if (plan == null) { return(PrizeErrorCode.ERROR_PLAN_NOT_EXIST); } MemberExercisePlan myExistingPaidPlan = (from c in db.MemberExercisePlans where c.MemberId == memberId && (c.Status.Equals(PrizeConstants.STATUS_PLAN_STARTED + PrizeConstants.STATUS_PLAN_PAID) || c.Status.Equals(PrizeConstants.STATUS_PLAN_NOT_STARTED + PrizeConstants.STATUS_PLAN_PAID)) orderby c.EndDate descending select c).FirstOrDefault(); DateTime currentEndDate; if (myExistingPaidPlan != null) { currentEndDate = myExistingPaidPlan.EndDate.Value; } else { currentEndDate = PrizeCommonUtils.GetSystemDate(); } List <MemberExercisePlan> myNotPaidPlans = (from c in db.MemberExercisePlans where c.MemberId == memberId && (c.Status.EndsWith(PrizeConstants.STATUS_PLAN_NOT_PAID) || c.Status.EndsWith(PrizeConstants.STATUS_PLAN_MANUAL_PAYMENT)) select c).ToList(); foreach (MemberExercisePlan notPaidPlan in myNotPaidPlans) { IQueryable <MemberExercisePlanWeek> notPaidPlanWeeks = (from c in db.MemberExercisePlanWeeks where c.MemberExercisePlanId == notPaidPlan.Id select c); foreach (var week in notPaidPlanWeeks) { MemberPlanWeekResult weekResult = (from c in db.MemberPlanWeekResults where c.MemberExercisePlanWeekId == week.Id select c).SingleOrDefault(); db.MemberExercisePlanWeeks.Remove(week); db.MemberPlanWeekResults.Remove(weekResult); } notPaidPlan.Status = PrizeConstants.STATUS_PLAN_NOT_STARTED + PrizeConstants.STATUS_PLAN_PAYMENT_CANCELLED; List <MemberManualPayment> manualPayments = (from c in db.MemberManualPayments where c.MemberExercisePlanId == notPaidPlan.Id && c.Status.StartsWith(PrizeConstants.STATUS_PLAN_MANUAL_PAYMENT_NOT_APPROVED) select c).ToList(); foreach (var notPaidRecord in manualPayments) { db.MemberManualPayments.Remove(notPaidRecord); db.SaveChanges(); } } db.SaveChanges(); DateTime startDate = PrizeCommonUtils.GetNextWeekStart(currentEndDate); DateTime endDate = PrizeCommonUtils.GetWeekEnd(startDate); MemberExercisePlan myPlan = new MemberExercisePlan(); myPlan.MemberId = memberId; myPlan.ExercisePlanId = plan.Id; myPlan.StartDate = startDate; myPlan.Status = PrizeConstants.STATUS_PLAN_NOT_STARTED + PrizeConstants.STATUS_PLAN_NOT_PAID; //Not paid db.MemberExercisePlans.Add(myPlan); db.SaveChanges(); MemberPlanWeekResult myWeekResult; if (plan.IsTrialPlan != 1) { MemberExercisePlanWeek myPlanWeekOrientation = new MemberExercisePlanWeek(); myPlanWeekOrientation.MemberExercisePlanId = myPlan.Id; myPlanWeekOrientation.ExercisePlanWeekId = 0; myPlanWeekOrientation.MemberId = memberId; myPlanWeekOrientation.StartDate = startDate; myPlanWeekOrientation.EndDate = endDate; myPlanWeekOrientation.Status = PrizeConstants.STATUS_PLAN_WEEK_NOT_STARTED; myPlanWeekOrientation.Week = 0; db.MemberExercisePlanWeeks.Add(myPlanWeekOrientation); db.SaveChanges(); myWeekResult = new MemberPlanWeekResult(); myWeekResult.MemberId = memberId; myWeekResult.MemberExercisePlanWeekId = myPlanWeekOrientation.Id; InitialiseWeekResult(ref myWeekResult); db.MemberPlanWeekResults.Add(myWeekResult); db.SaveChanges(); myPlan.EndDate = endDate; startDate = startDate.AddDays(7); endDate = endDate.AddDays(7); } IList <PrizeExercisePlanWeek> planWeeks = plan.PrizeExercisePlanWeeks.OrderBy(s => s.StartWeek).ToList(); foreach (PrizeExercisePlanWeek planWeek in planWeeks) { for (int i = planWeek.StartWeek; i <= planWeek.EndWeek; i++) { MemberExercisePlanWeek myPlanWeek = new MemberExercisePlanWeek(); myPlanWeek.MemberExercisePlanId = myPlan.Id; myPlanWeek.ExercisePlanWeekId = planWeek.Id; myPlanWeek.MemberId = memberId; myPlanWeek.StartDate = startDate; myPlanWeek.EndDate = endDate; myPlanWeek.Status = PrizeConstants.STATUS_PLAN_WEEK_NOT_STARTED; myPlanWeek.Week = i; db.MemberExercisePlanWeeks.Add(myPlanWeek); db.SaveChanges(); myWeekResult = new MemberPlanWeekResult(); myWeekResult.MemberId = memberId; myWeekResult.MemberExercisePlanWeekId = myPlanWeek.Id; InitialiseWeekResult(ref myWeekResult); db.MemberPlanWeekResults.Add(myWeekResult); myPlan.EndDate = endDate; db.SaveChanges(); startDate = startDate.AddDays(7); endDate = endDate.AddDays(7); } } //transaction.Complete(); newMemberPlan = myPlan; prizePlan = plan; return(newPlanId); //} } finally { db.Dispose(); } }
public static bool UpdateMemberPlans() { using (DIYPTEntities db = new DIYPTEntities()) { try { db.Database.Connection.Open(); DateTime today = PrizeCommonUtils.GetDayStart(PrizeCommonUtils.GetSystemDate()); MemberExercisePlanWeek startingPlanWeek; String availableStatus = PrizeConstants.STATUS_PLAN_STARTED + PrizeConstants.STATUS_PLAN_PAID; IQueryable <MemberExercisePlan> plans = (from c in db.MemberExercisePlans where c.Status.Equals(availableStatus) orderby c.MemberId, c.Id select c); foreach (MemberExercisePlan plan in plans) { MemberExercisePlanWeek finishingPlanWeek = (from c in db.MemberExercisePlanWeeks where c.MemberExercisePlanId == plan.Id && c.EndDate <= today && c.Status.Equals(PrizeConstants.STATUS_PLAN_WEEK_STARTED) orderby c.ExercisePlanWeekId select c).FirstOrDefault(); if (finishingPlanWeek != null) { finishingPlanWeek.Status = PrizeConstants.STATUS_PLAN_WEEK_FINISHED; startingPlanWeek = (from c in db.MemberExercisePlanWeeks where c.StartDate >= finishingPlanWeek.EndDate && c.Status.Equals(PrizeConstants.STATUS_PLAN_WEEK_NOT_STARTED) && c.MemberExercisePlanId == plan.Id orderby c.StartDate select c).FirstOrDefault(); if (startingPlanWeek != null) { MemberPlanWeekResult finishingResult = (from c in db.MemberPlanWeekResults where c.MemberExercisePlanWeekId == finishingPlanWeek.Id select c).FirstOrDefault(); MemberPlanWeekResult startingResult = (from c in db.MemberPlanWeekResults where c.MemberExercisePlanWeekId == startingPlanWeek.Id select c).FirstOrDefault(); CopyWeekResult(ref startingResult, ref finishingResult); startingPlanWeek.Status = PrizeConstants.STATUS_PLAN_WEEK_STARTED; } else { plan.Status = PrizeConstants.STATUS_PLAN_FINISHED + PrizeConstants.STATUS_PLAN_PAID; } } } availableStatus = PrizeConstants.STATUS_PLAN_NOT_STARTED + PrizeConstants.STATUS_PLAN_PAID; plans = (from c in db.MemberExercisePlans where c.Status.Equals(availableStatus) orderby c.MemberId select c); foreach (MemberExercisePlan plan in plans) { startingPlanWeek = (from c in db.MemberExercisePlanWeeks where c.StartDate <= today && c.Status.Equals(PrizeConstants.STATUS_PLAN_WEEK_NOT_STARTED) && c.MemberExercisePlanId == plan.Id orderby c.StartDate select c).FirstOrDefault(); if (startingPlanWeek != null) { MemberPlanWeekResult startingResult = (from c in db.MemberPlanWeekResults where c.MemberExercisePlanWeekId == startingPlanWeek.Id select c).FirstOrDefault(); MemberExercisePlanWeek finishedWeek = (from c in db.MemberExercisePlanWeeks where c.EndDate < startingPlanWeek.StartDate && c.Status.Equals(PrizeConstants.STATUS_PLAN_WEEK_FINISHED) select c).FirstOrDefault(); if (finishedWeek != null) { MemberPlanWeekResult finishingResult = (from c in db.MemberPlanWeekResults where c.MemberExercisePlanWeekId == finishedWeek.Id select c).FirstOrDefault(); CopyWeekResult(ref startingResult, ref finishingResult); } startingPlanWeek.Status = PrizeConstants.STATUS_PLAN_WEEK_STARTED; plan.Status = PrizeConstants.STATUS_PLAN_STARTED + PrizeConstants.STATUS_PLAN_PAID; } } db.SaveChanges(); return(true); } catch (Exception e) { PrizeLogs.SaveSystemErrorLog(0, 0, PrizeConstants.SystemErrorLevel.LevelSerious, typeof(PrizeMemberPlanManager).ToString(), "UpdateMemberPlans", e.Message, e.InnerException == null ? "" : e.InnerException.Message); return(false); } finally { db.Database.Connection.Close(); } } }
protected string UpdateMemberPlanWeekPhoto(MemberExercisePlanWeek memberPlanWeek, FileUpload loader, int iType = 0) { FileUpload tempFileupload = loader; string sPhotoTypeName = ""; string attachmentServerPath = ""; if (iType == 0) { sPhotoTypeName = "front"; } if (iType == 1) { sPhotoTypeName = "side"; } if (iType == 2) { sPhotoTypeName = "back"; } string sSuffix = Path.GetExtension(tempFileupload.FileName); string sServerFileName = memberPlanWeek.MemberId + "_" + PrizeCommonUtils.ParseDateTimeSimple(memberPlanWeek.StartDate) + "_" + sPhotoTypeName + sSuffix; if (tempFileupload != null && !string.IsNullOrEmpty(tempFileupload.FileName)) { string uploadPath = @"d:\sites\jrguico\diypt.com.au\home\member_images"; //string uploadPath = @"C:\workspace\asp_project\diypt.club\home\member_images"; attachmentServerPath = String.Format(@"http://{0}/member_images/{1}", HttpContext.Current.Request.Url.Authority, sServerFileName); decimal attachmentFileSize = Math.Round(Convert.ToDecimal(tempFileupload.PostedFile.ContentLength / 1024), 2); //if (attachmentFileSize + Helper.GetTrialTotalAttachmentSize(TrialId) < Convert.ToDecimal(ConfigurationManager.AppSettings["TotalAttachmentSizeLimit"])) if (attachmentFileSize < 15000) { string[] dirs = Directory.GetFiles(uploadPath); string folderPath = String.Format(@"\{0}", sServerFileName); string fullFilePath = uploadPath + folderPath; tempFileupload.SaveAs(fullFilePath); ImageHelper.RotateImageByExifOrientationData(fullFilePath, fullFilePath, System.Drawing.Imaging.ImageFormat.Jpeg, true); using (DIYPTEntities db = new DIYPTEntities()) { MemberPlanWeekResult weekResult = (from c in db.MemberPlanWeekResults where c.MemberExercisePlanWeekId == memberPlanWeek.Id select c).FirstOrDefault(); if (weekResult != null) { switch (iType) { case 0: weekResult.FrontPhoto = attachmentServerPath; break; case 1: weekResult.SidePhoto = attachmentServerPath; break; case 2: weekResult.BackPhoto = attachmentServerPath; break; default: break; } db.SaveChanges(); } } } else { Response.Write("<script>alert('You cannot attach this file. The maximum file size limit is 15mb.');</script>"); return(""); } } else { Response.Write("<script>alert('Please choose a file to attach.');</script>"); } WeekResults = dbAccess.GetMemberPlanResults(_MemberPlanWeek.MemberExercisePlanId); return(attachmentServerPath); }
protected void LoadWeeklyResult(List <MemberPlanWeekResult> weekResults) { if (_MemberPlanWeek == null) { return; } MemberPlanWeekResult weekResult = weekResults[iWeekNum]; MemberPlanWeekResult prevWeekResult = null; int iWeek = this.GetLatestMeasurementWeekNum(iWeekNum - 1); if (iWeek >= 0) { prevWeekResult = weekResults[iWeek]; } if (weekResult == null) { throw new Exception(); } decimal iDiff = 0; if (weekResult.EndWeight.HasValue) { lblWeight.Text = weekResult.EndWeight.Value.ToString("0,0.00"); if (prevWeekResult != null && prevWeekResult.EndWeight.HasValue) { iDiff = weekResult.EndWeight.Value - prevWeekResult.EndWeight.Value; lblWeightDiff.Text = iDiff.ToString("0,0.00"); } else { lblWeightDiff.Text = PrizeCommonUtils.FormatExerciseNumber(0); } } else if (weekResult.StartWeight.HasValue) { lblWeight.Text = weekResult.StartWeight.Value.ToString("0,0.00"); } else { lblWeight.Text = PrizeCommonUtils.FormatExerciseNumber(0); lblWeightDiff.Text = PrizeCommonUtils.FormatExerciseNumber(0); } if (weekResult.EndWaist.HasValue) { lblWaist.Text = weekResult.EndWaist.Value.ToString("0,0.00"); if (prevWeekResult != null && prevWeekResult.EndWaist.HasValue) { iDiff = weekResult.EndWaist.Value - prevWeekResult.EndWaist.Value; lblWaistDiff.Text = iDiff.ToString("0,0.00"); } else { lblWaistDiff.Text = PrizeCommonUtils.FormatExerciseNumber(0); } } else if (weekResult.StartWaist.HasValue) { lblWaist.Text = weekResult.StartWaist.Value.ToString("0,0.00"); } else { lblWaist.Text = PrizeCommonUtils.FormatExerciseNumber(0); lblWaistDiff.Text = PrizeCommonUtils.FormatExerciseNumber(0); } if (weekResult.EndHip.HasValue) { lblHip.Text = weekResult.EndHip.Value.ToString("0,0.00"); if (prevWeekResult != null && prevWeekResult.EndHip.HasValue) { iDiff = weekResult.EndHip.Value - prevWeekResult.EndHip.Value; lblHipDiff.Text = iDiff.ToString("0,0.00"); } else { lblHipDiff.Text = PrizeCommonUtils.FormatExerciseNumber(0); } } else if (weekResult.StartHip.HasValue) { lblHip.Text = weekResult.StartHip.Value.ToString("0,0.00"); } else { lblHip.Text = PrizeCommonUtils.FormatExerciseNumber(0); lblHipDiff.Text = PrizeCommonUtils.FormatExerciseNumber(0); } if (weekResult.EndChest.HasValue) { lblChest.Text = weekResult.EndChest.Value.ToString("0,0.00"); if (prevWeekResult != null && prevWeekResult.EndChest.HasValue) { iDiff = weekResult.EndChest.Value - prevWeekResult.EndChest.Value; lblChestDiff.Text = iDiff.ToString("0,0.00"); } else { lblChestDiff.Text = PrizeCommonUtils.FormatExerciseNumber(0); } } else if (weekResult.StartChest.HasValue) { lblChest.Text = weekResult.StartChest.Value.ToString("0,0.00"); } else { lblChest.Text = PrizeCommonUtils.FormatExerciseNumber(0); lblChestDiff.Text = PrizeCommonUtils.FormatExerciseNumber(0); } if (weekResult.EndHeartRate.HasValue) { lblHeartRate.Text = weekResult.EndHeartRate.Value.ToString("0,0.00"); if (prevWeekResult != null && prevWeekResult.EndHeartRate.HasValue) { iDiff = weekResult.EndHeartRate.Value - prevWeekResult.EndHeartRate.Value; lblHeartRateDiff.Text = iDiff.ToString("0,0.00"); } else { lblHeartRateDiff.Text = PrizeCommonUtils.FormatExerciseNumber(0); } } else if (weekResult.StartHeartRate.HasValue) { lblHeartRate.Text = PrizeCommonUtils.FormatExerciseNumber(weekResult.StartHeartRate.Value); } else { lblHeartRate.Text = PrizeCommonUtils.FormatExerciseNumber(0); lblHeartRateDiff.Text = PrizeCommonUtils.FormatExerciseNumber(0); } }