예제 #1
0
        public ActionResult Index()
        {
            var userId = User.Identity.GetUserId();

            var periodEvents          = _unitOfWork.CycleEvents.GetPeriodEvents(userId);
            var twoLatestPeriodEvents = periodEvents.Take(2).ToList();
            var ovulationEvent        = _unitOfWork.CycleEvents.GetLatestOvulationEvent(userId);
            var futurePeriodDate      = DateTime.MinValue;

            if (ovulationEvent != null || periodEvents.Count >= 2)
            {
                futurePeriodDate = DateCalculations.GetFuturePeriodDate(ovulationEvent, periodEvents);
            }

            var averageCycleLength = periodEvents.Count < 2 ? 0 : DateCalculations.GetAverageCycleLength(periodEvents);

            var cycleModel = new CycleEvent()
            {
                StartDate = twoLatestPeriodEvents.Count <= 2 && twoLatestPeriodEvents.Count != 0 ? twoLatestPeriodEvents[0].StartDate : DateTime.MinValue,
                EndDate   = twoLatestPeriodEvents.Count <= 2 && twoLatestPeriodEvents.Count != 0 ? twoLatestPeriodEvents[0].EndDate : DateTime.MinValue,
                StartDateOfPreviousEvent = twoLatestPeriodEvents.Count == 2 ? twoLatestPeriodEvents[1].StartDate : DateTime.MinValue,
                OvulationDate            = ovulationEvent?.StartDate ?? DateTime.MinValue,
                FuturePeriodDate         = futurePeriodDate,
                AverageCycleLength       = averageCycleLength
            };

            return(View("Index", cycleModel));
        }
예제 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (listEvent == null)
            {
                listEvent = ProLay.list1;
            }

            if (li == null)
            {
                li         = new LayoutInfo();
                li.width   = width;
                li.height  = height;
                li.target  = target;
                li.detailN = detailN;
            }
        }
예제 #3
0
 private void setCycleEvent(object sender, CycleEventArgs e)
 {
     if (cycleLabel.InvokeRequired)
     {
        CycleEvent s = new CycleEvent(setCycleEvent);
         this.Invoke(s, new object[] { sender, e });
     }
     else
         this.cycleLabel.Text = e.CycleLabel;
     //if (Form.ActiveForm != null)
     //    Form.ActiveForm.Refresh();
     this.Refresh();
 }
예제 #4
0
        public ActionResult GetRecentEvents()
        {
            var cycleEvents = _unitOfWork.CycleEvents.GetCycleEvents(User.Identity.GetUserId());

            var recentCycleEvents = new List <CycleEvent>();

            for (var cycleEvent = 0; cycleEvent < cycleEvents.Count; cycleEvent++)
            {
                CycleEvent recentCycleEvent;
                if (cycleEvent < cycleEvents.Count - 2)
                {
                    recentCycleEvent = new CycleEvent
                    {
                        Id        = cycleEvents[cycleEvent].Id,
                        StartDate = cycleEvents[cycleEvent].StartDate,
                        EndDate   = cycleEvents[cycleEvent].EndDate,
                        StartDateOfPreviousEvent = cycleEvents[cycleEvent + 1].TypeId == 2
                            ? cycleEvents[cycleEvent + 2].StartDate
                            : cycleEvents[cycleEvent + 1].StartDate,
                        OvulationDate = cycleEvents[cycleEvent].TypeId == 2
                            ? cycleEvents[cycleEvent].StartDate
                            : DateTime.MinValue,
                        TypeId = cycleEvents[cycleEvent].TypeId
                    };
                }
                else if (cycleEvent < cycleEvents.Count - 1)
                {
                    recentCycleEvent = new CycleEvent
                    {
                        Id        = cycleEvents[cycleEvent].Id,
                        StartDate = cycleEvents[cycleEvent].StartDate,
                        EndDate   = cycleEvents[cycleEvent].EndDate,
                        StartDateOfPreviousEvent = cycleEvents[cycleEvent + 1].TypeId == 2 || cycleEvents[cycleEvent].TypeId == 2
                            ? DateTime.MinValue
                            : cycleEvents[cycleEvent + 1].StartDate,
                        OvulationDate = cycleEvents[cycleEvent].TypeId == 2
                            ? cycleEvents[cycleEvent].StartDate
                            : DateTime.MinValue,
                        TypeId = cycleEvents[cycleEvent].TypeId
                    };
                }
                else
                {
                    recentCycleEvent = new CycleEvent
                    {
                        Id        = cycleEvents[cycleEvent].Id,
                        StartDate = cycleEvents[cycleEvent].StartDate,
                        EndDate   = cycleEvents[cycleEvent].EndDate,
                        StartDateOfPreviousEvent = DateTime.MinValue,
                        OvulationDate            = cycleEvents[cycleEvent].TypeId == 2
                            ? cycleEvents[cycleEvent].StartDate
                            : DateTime.MinValue,
                        TypeId = cycleEvents[cycleEvent].TypeId
                    };
                }

                recentCycleEvents.Add(recentCycleEvent);
            }

            var viewModel = new CycleEventsViewModel()
            {
                RecentCycleEvents = recentCycleEvents
            };

            return(View("MyRecentEvents", viewModel));
        }
예제 #5
0
 public Update()
 {
     InitializeComponent();
     init();
     onCycleEvent += new CycleEvent(setCycleEvent);
 }