예제 #1
0
        public void Update(UpdateListMedicines _details)
        {
            //עדכון סטטוס התרופות לאחר שהמשתמש אישר שלקח אותם
            List <MedicinesToChild>    _medicinesToChild = _medicinesToChild_DAL.GetByUserInSomeTime(_details.CodeTimeToUser);
            List <ArchiveTakeMedicine> archives          = _archiveDAL.GetToDay(_details.CodeTimeToUser.UserID);

            foreach (var _medicines in _medicinesToChild)
            {
                if (_details.ListMedicines.Find(m => m.Id == _medicines.Id).Status)
                {
                    TimeToMedicinesForChild timeToMedicinesForChild = _medicines.TimeToMedicinesForChilds.First(m => m.TimeOfDay.timeCode == _details.CodeTimeToUser.TimeOfDay);
                    timeToMedicinesForChild.status = true;
                    _TimeToMedicinesForChild_DAL.Edit(timeToMedicinesForChild);
                    ArchiveTakeMedicine archiveTake = archives.Find(a => a.medicineToChild == timeToMedicinesForChild.Id);
                    archiveTake.time = DateTime.Now.TimeOfDay;
                    //archiveTake.onTime = !(_details.CountSnooze > timeToMedicinesForChild.MedicinesToChild.User.snoozeCounter);
                    User     user      = _User_DAL.GetByIdentity(_details.CodeTimeToUser.UserID);
                    int      maxMinute = (int)user.snoozePeriod * (int)user.snoozeCounter;
                    TimeSpan temp      = new TimeSpan(0, maxMinute, 0);
                    TimeSpan maxTime   = timeToMedicinesForChild.TimeOfDay.theTime.Add(temp);
                    temp = DateTime.Now.TimeOfDay;
                    //if (_details.CountSnooze <= timeToMedicinesForChild.MedicinesToChild.User.snoozeCounter / 2)
                    if (maxTime >= DateTime.Now.TimeOfDay)
                    {
                        temp = timeToMedicinesForChild.TimeOfDay.theTime;
                        int  count = 0;
                        bool flag  = true;
                        while (flag)
                        {
                            temp.Add(new TimeSpan(0, (int)user.snoozePeriod, 0));
                            count++;
                            if (temp >= DateTime.Now.TimeOfDay)
                            {
                                flag = false;
                            }
                        }
                        if (count <= timeToMedicinesForChild.MedicinesToChild.User.snoozeCounter / 2)
                        {
                            user.points += 2;
                        }
                        //if(temp <= timeToMedicinesForChild.TimeOfDay.theTime.Add(new TimeSpan(0,(int)timeToMedicinesForChild.MedicinesToChild.User.snoozeCounter / 2* (int)timeToMedicinesForChild.MedicinesToChild.User.snoozePeriod,0)))
                        else
                        {
                            user.points += 1;
                        }
                        archiveTake.onTime = true;
                        //למחוק מההתראות
                        Alert_BL.RemoveSnooze(_details.CodeTimeToUser);
                    }
                    else
                    {
                        archiveTake.onTime = false;
                    }
                    //else if (_details.CountSnooze <= timeToMedicinesForChild.MedicinesToChild.User.snoozeCounter)
                    _User_DAL.Edit(user);
                    _archiveDAL.Edit(archiveTake);
                }
            }
        }
예제 #2
0
 public void AddOrEdit(User details)
 {
     if (details.Id == 0)
     {
         _User_DAL.Add(details);
     }
     else
     {
         _User_DAL.Edit(details);
     }
 }
예제 #3
0
        public bool Edit(Settings _details)
        {
            try
            {
                User user = _userDAL.GetById(_details.User.childId);
                if (user != null)
                {
                    if (_details.User.userName != null)
                    {
                        user.userName = _details.User.userName;
                    }
                    if (_details.User.email != null)
                    {
                        user.email = _details.User.email;
                    }
                    if (_details.User.password != null)
                    {
                        user.password = _details.User.password;
                    }
                    _userDAL.Edit(user);
                }
                else
                {
                    return(false);
                }

                //guardian for spesific user
                List <guardiansToUser> guardiansToUser = _gurdiansToUser_DAL.GetByUser(user.Id);
                if (guardiansToUser.Count != 0)
                {
                    for (int i = 0; i < _details.Guardians.Count; i++)
                    {
                        if (guardiansToUser.FirstOrDefault(g => g.Id == _details.Guardians[i].Id) != null)//if guardian exist in DB
                        {
                            //map
                            Guardian guardianToMap = _guardiansDAL.Get(_details.Guardians[i].Id);
                            guardianToMap.guardianName = _details.Guardians[i].guardianName;
                            guardianToMap.PhoneNumber  = _details.Guardians[i].PhoneNumber;
                            _guardiansDAL.Edit(guardianToMap);
                        }
                        else
                        {
                            //add
                            Guardian guardianToAdd = new Guardian();
                            guardianToAdd.PhoneNumber  = _details.Guardians[i].PhoneNumber;
                            guardianToAdd.guardianName = _details.Guardians[i].guardianName;
                            long guardianID = _guardiansDAL.Add(guardianToAdd);
                            _gurdiansToUser_DAL.Add(new guardiansToUser {
                                guardianId = guardianID, userId = user.Id
                            });
                        }
                    }
                }

                else
                {
                    return(false);
                }

                //map time for madicine
                List <MedicinesToChild> medicinesToChildList = _medicinesToChild_DAL.GetByUser(user.Id);
                for (int i = 0; i < medicinesToChildList.Count; i++)
                {
                    List <TimeToMedicinesForChild> timeToMedicinesForChildrenList = _timeToMedicinesForChild_DAL.GetByMedicineToChild(medicinesToChildList[i].Id);
                    var timeToMedicinesForChildrenListgroup = timeToMedicinesForChildrenList.GroupBy(t => t.idTimeOfDay).Select(t => t.ToList()).ToList();
                    for (int key = 0; key < timeToMedicinesForChildrenListgroup.Count; key++)
                    {
                        long      idTimeOfDay     = timeToMedicinesForChildrenListgroup[key].ToList()[0].idTimeOfDay;
                        TimeOfDay timeOfDay       = _timeOfDay_DAL.GetByTimeId(idTimeOfDay);
                        TimeOfDay timeOfDayToEdit = _details.TimeOfDays.FirstOrDefault(t => t.timeCode == timeOfDay.timeCode);
                        timeOfDay.theTime = timeOfDayToEdit.theTime;
                        //for (int a = 1; a <= 4; a++)
                        //{
                        //   TimeOfDay timeOfDayToEdit = _details.TimeOfDays.FirstOrDefault(t => t.timeCode == a);
                        //    timeOfDay.theTime = timeOfDayToEdit.theTime;
                        //    timeOfDay.theTime = timeOfDayToEdit.theTime;
                        //}
                    }
                }

                TimeOfAlertForUser timeOfAlertForUser = new TimeOfAlertForUser()
                {
                    snooze = new Snooze()
                    {
                        userId = user.Id, snoozeCounter = (int)user.snoozeCounter, snoozePeriod = (int)user.snoozePeriod
                    }, timeOfDay = _details.TimeOfDays
                };

                //if (!Alert_BL.EditSnoozeToUser( timeOfAlertForUser))
                //    return false;
            }
            catch (Exception e)
            {
                return(false);
            }

            return(true);
        }