Beispiel #1
0
        public void updateChildren(ChildDTO childDTO, List <ChallengeDTO> challenges)
        {
            UpdateDTO     update   = new UpdateDTO(childDTO, challenges);
            UserEventArgs userArgs = new UserEventArgs(UserEvent.NewChild, update);

            OnUserEvent(userArgs);
        }
Beispiel #2
0
 private Child MapToEntity(Guid personId, ChildDTO childDTO) =>
 new Child
 {
     PersonId = personId,
     Id       = childDTO.Id,
     Name     = childDTO.Name,
     Surname  = childDTO.Surname,
     Birthday = childDTO.Birthday
 };
        private void notifyRegisterChild(Child child)
        {
            ChildDTO childDTO = new ChildDTO(child.Name, child.Age, entriesRepo.FindChallengeNumber(child.Id));

            foreach (KeyValuePair <long, IObserver> entry in loggedClients)
            {
                IObserver sentClient = loggedClients[entry.Key];
                Task.Run(() => sentClient.updateChildren(childDTO, GetAllChallenges()));
            }
        }
Beispiel #4
0
        public async Task <ActionResult <ChildDTO> > PostChild(
            [FromRoute] Guid personId,
            [FromBody] ChildDTO childDTO)
        {
            var child = await ChildManager.AddChild(personId, childDTO).ConfigureAwait(false);

            return(child != null
                ? (ObjectResult)Ok(child)
                : BadRequest(new { ErrorMEssage = "Entity not found" }));
        }
 public void userUpdate(object sender, UserEventArgs e)
 {
     if (e.UserEvent == UserEvent.NewChild)
     {
         UpdateDTO           update     = (UpdateDTO)e.Data;
         ChildDTO            child      = update.Child;
         List <ChallengeDTO> challenges = update.Challenges;
         ChildrenDataGridView.BeginInvoke(new UpdateDelegate(this.UpdateChildren), new Object[] { update });
         ChallengesDataGridView.BeginInvoke(new UpdateDelegate(this.UpdateChallenges), new Object[] { update });
     }
 }
Beispiel #6
0
        public async Task AddChild(Guid personID, ChildDTO childDTO)
        {
            using (var scope = ScopeProvider.BeginLifetimeScope())
            {
                var familyTreeContext = scope.Resolve <FamilyTreedbContext>();

                await familyTreeContext.Child.AddAsync(MapToEntity(personID, childDTO)).ConfigureAwait(false);

                await familyTreeContext.SaveChangesAsync().ConfigureAwait(false);
            }
        }
Beispiel #7
0
        public static ChildDTO ToDTO(this Child child)
        {
            var dto = new ChildDTO
            {
                Id        = child.Id,
                FirstName = child.FirstName,
                LastName  = child.LastName,
            };

            return(dto);
        }
Beispiel #8
0
        public ActionResult UpdateChild(ChildDTO childDTO)
        {
            var user = GetUser();

            if (!AdminService.IsAdmin(user))
            {
                return(Unauthorized());
            }

            ChildService.Update(childDTO);

            return(Ok());
        }
Beispiel #9
0
        // PUT: api/Child/5
        public IHttpActionResult Put([FromBody] ChildDTO child)
        {
            var repo = new UserRepository();

            if (repo.modifyChild(child))
            {
                return(Ok());
            }
            else
            {
                return(BadRequest());
            }
        }
        private void UpdateChildren(UpdateDTO update)
        {
            ChildDTO        child    = update.Child;
            List <ChildDTO> children = new List <ChildDTO>();

            foreach (DataGridViewRow row in ChildrenDataGridView.Rows)
            {
                children.Add((ChildDTO)row.DataBoundItem);
            }
            children.Add(child);
            //ChildrenDataGridView.Rows.Clear();
            ChildrenDataGridView.DataSource = children;
        }
        public void Update(ChildDTO editedChild)
        {
            using (var unitOfWork = unitOfWorkFactory.Get())
            {
                var childRepository = unitOfWork.ChildRepository;
                var existingChild   = childRepository.Get().SingleOrDefault(m => m.Id == editedChild.Id);

                existingChild.FullName = editedChild.FullName;

                childRepository.Edited(existingChild);
                unitOfWork.SaveChanges();
            }
        }
 public void Add(ChildDTO child)
 {
     using (var unitOfWork = unitOfWorkFactory.Get())
     {
         var childRepository = unitOfWork.ChildRepository;
         childRepository.Add(new Child
         {
             FullName = child.FullName,
             GroupId  = child.GroupId
         });
         unitOfWork.SaveChanges();
     }
 }
Beispiel #13
0
        public void updateChildren(ChildDTO childDTO, List <ChallengeDTO> challenges)
        {
            UpdateDTO update = new UpdateDTO(childDTO, challenges);

            try
            {
                sendResponse(new ObjectResponseProtocol.NewChildResponse(update));
            }
            catch (Exception e)
            {
                throw new ValidationException("Sending error: " + e);
            }
        }
Beispiel #14
0
        public async Task <ChildDTO> PutChild(Guid personId, ChildDTO childDTO)
        {
            var request        = JsonConvert.SerializeObject(childDTO, JsonSerializerSettings);
            var requestContent = new StringContent(request, Encoding.UTF8, ContentType);

            var response = await this.PutAsync(FamilyTreePaths.PutChild(personId, childDTO.Id), requestContent)
                           .ConfigureAwait(false);

            var responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

            return(response.IsSuccessStatusCode
                ? JsonConvert.DeserializeObject <ChildDTO>(responseContent, JsonSerializerSettings)
                : throw new Exception("Family Three SVC unavailable"));
        }
Beispiel #15
0
        private async Task GenerateId(ChildDTO dto)
        {
            dto.Id = "Child/" + dto.LastName + ", " + dto.FirstName;

            var numberOfChildrenWithSameName = await _session.Query <ChildDTO>()
                                               .CountAsync(x => x.FirstName == dto.FirstName && x.LastName == dto.LastName);

            if (numberOfChildrenWithSameName > 0)
            {
                dto.Id += " - " + (numberOfChildrenWithSameName + 1);
                _logger.Debug("Found more children with same name, add number identifier {number} to id",
                              numberOfChildrenWithSameName + 1);
            }
        }
Beispiel #16
0
        private async Task <ChildDTO> CreateChild(string firstName, string lastname, string userId)
        {
            var dto = new ChildDTO
            {
                FirstName = firstName,
                LastName  = lastname,
                Adults    = new List <string> {
                    userId
                }
            };

            await GenerateId(dto);

            return(dto);
        }
        //send email to doctor when child change the doctor
        public static void DoctorEmail(ChildDTO child, string doctor)
        {
            string body = "";

            if (doctor == "old")
            {
                body = "Hi " + "<b>" + child.Clinic.Doctor.FirstName + " " + child.Clinic.Doctor.LastName + "</b>, <br />"
                       + "Your patient: <b>" + child.Name + "</b> selected some other doctor";
            }
            else
            {
                body = "Hi " + "<b>" + child.Clinic.Doctor.FirstName + " " + child.Clinic.Doctor.LastName + "</b>, <br />"
                       + "A new patient: <b>" + child.Name + "</b> has been registered to you";
            }

            SendEmail(child.Clinic.Doctor.FirstName, child.Clinic.Doctor.Email, body);
        }
Beispiel #18
0
        public ActionResult CreateChild(ChildDTO childDTO, int week)
        {
            if (string.IsNullOrEmpty(childDTO.FullName))
            {
                return(RedirectToAction("Index", new { groupId = childDTO.GroupId, week }));
            }

            var user = GetUser();

            if (!AdminService.IsAdmin(user))
            {
                return(Unauthorized());
            }

            ChildService.Add(childDTO);

            return(RedirectToAction("Index", new { groupId = childDTO.GroupId, week }));
        }
Beispiel #19
0
        public async Task <ChildDTO> UpdateChild(Guid personId, Guid childId, ChildDTO child)
        {
            var personEntity = await PersonRepo.GetPerson(personId).ConfigureAwait(false);

            var childEntity = await ChildRepo.GetChild(childId).ConfigureAwait(false);

            if (personEntity == null || childEntity == null)
            {
                return(null);
            }

            await ChildRepo.UpdateChild(personId, childId, child).ConfigureAwait(false);

            child.PersonId = personId;
            child.Age      = child.Birthday.HasValue
                ? DateTime.Today.Year - child.Birthday.Value.Year
                : await NumberGenerator.GetRandomNumbers().ConfigureAwait(false);

            Logger.LogInformation($"Child with id {child.Id} successfully updated.");

            return(child);
        }
Beispiel #20
0
        // POST: api/Child
        public IHttpActionResult Post([FromBody] ChildDTO child)
        {
            if (child.Id != null)
            {
                return(BadRequest());
            }
            if (child.Name == null)
            {
                return(BadRequest());
            }
            if (child.Password == null)
            {
                return(BadRequest());
            }
            if (child.Surname == null)
            {
                return(BadRequest());
            }
            if (child.UserName == null)
            {
                return(BadRequest());
            }

            var repo = new UserRepository();

            try {
                repo.SaveChild(child);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(InternalServerError());
            }

            return(Ok());
        }
Beispiel #21
0
 public UpdateDTO(ChildDTO child, List <ChallengeDTO> challenges)
 {
     Child      = child;
     Challenges = challenges;
 }
Beispiel #22
0
        private async Task AddChildToSession(ChildDTO dto)
        {
            await _session.StoreAsync(dto);

            _logger.ForContext("child", dto).Information("Added child to session");
        }
Beispiel #23
0
        //end
        public void WeeklyScheduleTLT()
        {
            //help variables
            DateTime                 thisDay;
            DateTime                 dateSchedule;
            DateTime                 date = calcBeaginYear();
            DateTime                 dateEnd;
            double                   numHoursScheduledToday;
            double                   childHours = 0;
            double                   NumHours;
            int                      numWindows;
            const double             maxDailyNumHours = 4;//מקסימום 4 טיפולים ליום...
            List <ChildKinderGarden> sortedListChildren;
            List <ChildDTO>          children                 = new List <ChildDTO>();
            List <string>            daysWorkProfessional     = new List <string>(); //מס החלונות ליום העבודה הנל מאותחל ב0 לצורך הגבלה של חלון אחד בשבוע
            List <string>            daysMeetingsProfessional = new List <string>(); // ימים של פגישות שלה
            KinderGarden             kinderGarden;

            //end

            using (TafToTafEntities db = new TafToTafEntities())
            {
                for (int professionKind = 1; professionKind < 4; professionKind++)
                {
                    sortedListChildren = db.ChildKinderGardens.Where(ch => ch.BeginYear.Value == date).OrderBy(ch => ch.KindrGardenID).ToList();
                    //במעבר מקלינאיות לפיזיותרפיסטיות וכדומה הריצה מתחדשת על רשימת כל הילדים בגנים
                    foreach (var professional in db.Professionals)
                    {
                        numWindows = 0;
                        if (daysWorkProfessional.Count() > 0)
                        {
                            daysWorkProfessional.Clear();
                        }
                        if (professional.ProfessionKind.Value == professionKind)
                        {
                            for (int i = 1; i <= 5; i++)
                            {
                                switch (i)
                                {
                                case 1:
                                    if (professional.Sunday.Value)
                                    {
                                        daysWorkProfessional.Add("Sunday");
                                    }
                                    break;

                                case 2:
                                    if (professional.Monday.Value)
                                    {
                                        daysWorkProfessional.Add("Monday");
                                    }
                                    break;

                                case 3:
                                    if (professional.Thuesday.Value)
                                    {
                                        daysWorkProfessional.Add("Tuesday");
                                    }
                                    break;

                                case 4:
                                    if (professional.Wednesday.Value)
                                    {
                                        daysWorkProfessional.Add("Wednesday");
                                    }
                                    break;

                                case 5:
                                    if (professional.Tursday.Value)
                                    {
                                        daysWorkProfessional.Add("Thursday");
                                    }
                                    break;
                                }
                            }
                            if (children.Count() > 0)
                            {
                                children.RemoveAll(ch => ch.Id != 0);
                            }
                            //ריקון רשימת ילדים של עובדת קודמת לצורך הןספת ילדים לעובדת נוכחית
                            NumHours = professional.NumHourWork.Value;
                            //אתחול מספר השעות לעובדת לשעות שבועיות שלה
                            for (int iCH = 0; iCH < sortedListChildren.Count(); iCH++)
                            //הפסקות וישיבות?
                            {
                                if (NumHours <= 0)
                                {
                                    break;
                                }
                                int childID   = sortedListChildren[iCH].ChildID.Value;
                                var child     = db.Children.FirstOrDefault(ch => ch.Id == childID);
                                int kGardenId = sortedListChildren[iCH].KindrGardenID.Value;
                                kinderGarden = db.KinderGardens.First(kG => kG.Id == kGardenId);
                                if (child != null && daysWorkProfessional.Contains(kinderGarden.MeetingDay))
                                {
                                    if (child.NumHoursConfirm.Value / 3 <= NumHours)//לא כולל הפסקה?
                                    {
                                        if (daysMeetingsProfessional.Contains(kinderGarden.MeetingDay) == false)
                                        {
                                            daysMeetingsProfessional.Add(kinderGarden.MeetingDay);
                                        }
                                        childHours = child.NumHoursConfirm.Value / 3;
                                        children.Add(ChildDTO.ToChildDTO(child)); //הוספת ילד בעל מספר שעות שמתאימות למסגרת
                                        NumHours -= childHours;                   //הפחתת מספר השעות שששובצו לעובדת
                                        sortedListChildren.RemoveAt(iCH);         //הסרת ילד מרשימה ממוינת כיוון ששובצה לו מטפלת
                                        iCH--;                                    //בגלל שהוסר ילד מהרשימה האינדקס הבא יעבור למקום של הנוכחי וצריך "לחזור אחורה"
                                    }
                                }
                            }
                            if (children.Count() != 0)
                            {
                                sortChidren(professionKind, children);//פונקציה למניעת התנגשות שני מפגשים לאותו ילד באותה השעה
                            }
                            thisDay = DateTime.Now;
                            //סידור המערכת לעובדת נוכחית לשבוע הקרוב
                            //ע"י מעבר על כל ימי עבודתה ושיבוץ השעות בהתאם לזמני המוסד או לדרישות העובדת
                            //כרגע אנחנו לא מתייחסים לדרישות עובדת כלומר כל יום מאיזה שעה עד איזה שעה אלא
                            //ממלאים לה ימים שלמים עד שנגמרות השעות כלומר היום הקצר יצא ביום האחרון בשבוע
                            for (int i = 1; i <= 7; i++)
                            {
                                numHoursScheduledToday = 0;
                                if (daysWorkProfessional.Contains(thisDay.DayOfWeek.ToString()) == true && db.Holidays.FirstOrDefault(h => h.Date == (thisDay.Date)) == null)
                                {
                                    dateSchedule = new DateTime(thisDay.Year, thisDay.Month, thisDay.Day, 9, 0, 0);
                                    foreach (var child in children)
                                    {
                                        kinderGarden = db.KinderGardens.FirstOrDefault(k => k.Id == db.ChildKinderGardens.
                                                                                       FirstOrDefault(ch => ch.ChildID == child.Id).KindrGardenID);
                                        dateEnd = dateSchedule.AddHours(0.75);
                                        if (db.Calanders.FirstOrDefault(c => c.ChildId == child.Id &&
                                                                        c.DateStart >= dateSchedule && c.DateStart < dateEnd || c.DateEnd > dateSchedule && c.DateEnd <= dateEnd) == null)
                                        {
                                            //הילד הזה לא שובץ כבר באותם השעות
                                            if (child.NumTretments >= 1 && numHoursScheduledToday + 0.75 <= maxDailyNumHours)//להעביר את התנאי כתור תנאי הלולאה?
                                            {
                                                var treatment = new Calander()
                                                {
                                                    DateStart      = dateSchedule,
                                                    DateEnd        = dateEnd,//האם השעות מתווספות?
                                                    ChildId        = child.Id,
                                                    KinderGardenId = db.ChildKinderGardens.Where(ch => ch.BeginYear.Value == date)
                                                                     .First(ch => ch.ChildID == child.Id).KindrGardenID,
                                                    ProfessionalId = professional.Id,
                                                    KindId         = professionKind,//?
                                                    NameMeeting    = child.FirstName + " " + child.LastName,
                                                };
                                                db.Calanders.Add(treatment);
                                                child.NumTretments--;
                                                dateSchedule = dateEnd.AddHours(0.25);//הפסקה של רבע שעה בין טיפול לטיפול
                                                if (dateSchedule.Hour == 12)
                                                {
                                                    if (daysMeetingsProfessional.Contains(thisDay.DayOfWeek.ToString())) //אם קיימת ישיבת צוות לעובדת באותו יום
                                                    {
                                                        if (numWindows == 0)                                             //אין לה שעור חלון השבוע
                                                        {
                                                            dateSchedule = dateSchedule.AddHours(2);
                                                            numWindows++;
                                                        }
                                                        else
                                                        {
                                                            break;
                                                        }
                                                    }//נגמר השיבוץ להיום}
                                                    else
                                                    {
                                                        break;
                                                    }
                                                }
                                                numHoursScheduledToday += 0.75 + 0.25;
                                            }
                                        }
                                    }
                                }
                                thisDay = thisDay.AddDays(1);
                            }
                        }
                    }
                }
                db.SaveChanges();//script האם צריך על כל הכנסה או מספיק בסוף ה
                Console.WriteLine("finished");
            }
        }
Beispiel #24
0
 public static Child ToChild(this ChildDTO dto)
 {
     return(new Child(dto.Id, dto.FirstName, dto.LastName));
 }