示例#1
0
    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;
 }
示例#4
0
    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.");
        }
    }
示例#5
0
    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();
            }
        }
    }
示例#8
0
    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);
    }
示例#9
0
    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);
        }
    }