Example #1
0
        public bool CreateInstructor(Instructor instructor, string userId)
        {
            try
            {
                if (!Instructors.Items.Any(x => x.Firstname == instructor.Firstname.Trim() && x.Surname == instructor.Surname.Trim()))
                {
                    instructor.Firstname   = instructor.Firstname.Trim();
                    instructor.Surname     = instructor.Surname.Trim();
                    instructor.UserCreated = userId;
                    instructor.Order       = Instructors.Items.Select(x => x.Order).DefaultIfEmpty(0).Max() + 1;

                    foreach (var l in instructor.Languages)
                    {
                        l.LanguageLevel = LanguageLevels.FindById(l.LanguageLevelId);
                    }

                    var languages = new List <InstructorLanguage>(instructor.Languages);
                    foreach (var l in languages)
                    {
                        if (instructor.Languages.Any(x => x.LanguageId == l.LanguageId && x.LanguageLevel.Level > l.LanguageLevel.Level))
                        {
                            instructor.Languages.Remove(l);
                        }
                    }

                    foreach (var e in instructor.Expertises)
                    {
                        e.ExpertiseLevel = ExpertiseLevels.FindById(e.ExpertiseLevelId);
                    }

                    var expertises = new List <InstructorExpertise>(instructor.Expertises);
                    foreach (var e in expertises)
                    {
                        if (instructor.Expertises.Any(x => x.ExpertiseId == e.ExpertiseId && x.ExpertiseLevel.Level > e.ExpertiseLevel.Level))
                        {
                            instructor.Expertises.Remove(e);
                        }
                    }

                    foreach (var ticket in instructor.Tickets)
                    {
                        ticket.From = ticket.From.Date;
                        ticket.To   = ticket.To.Date;
                    }

                    Instructors.Add(instructor);
                    return(true);
                }
            }
            catch (Exception e)
            {
            }
            return(false);
        }
Example #2
0
 public bool CreateLanguageLevel(LanguageLevel languageLevel, string userId)
 {
     try
     {
         if (!LanguageLevels.Items.Any(x => x.Name == languageLevel.Name.Trim() && x.Level == languageLevel.Level))
         {
             languageLevel.Name        = languageLevel.Name.Trim();
             languageLevel.UserCreated = userId;
             LanguageLevels.Add(languageLevel);
             return(true);
         }
     }
     catch (Exception e)
     {
     }
     return(false);
 }
Example #3
0
        public async void OnNavigatedTo(NavigationContext navigationContext)
        {
            if (Skills?.Count == 0)
            {
                Init();
            }
            InitUsers();
            var parameters = navigationContext.Parameters;

            if (parameters["QueryId"] != null)
            {
                using (var _database = new ITManagerEntities())
                {
                    var queryId        = int.Parse((string)parameters["QueryId"]);
                    var queryString    = (await _database.Queries.Where(q => q.Id == queryId).FirstOrDefaultAsync()).QueryString;
                    var splittedQuery  = queryString.Split('&');
                    var skillsQuery    = splittedQuery[0];
                    var languagesQuery = splittedQuery[1];
                    var projectsQuery  = splittedQuery[2];

                    SkillsConditions = new ObservableCollection <SkillCondition>(skillsQuery.Split(',').Select(q => new SkillCondition
                    {
                        Skill = Skills.Where(s => s.Id == int.Parse(q.Split(':')[0])).FirstOrDefault(),
                        From  = SkillLevels.Where(s => s.Id == int.Parse(q.Split(':')[1].Split('-')[0])).FirstOrDefault(),
                        To    = SkillLevels.Where(s => s.Id == int.Parse(q.Split(':')[1].Split('-')[1])).FirstOrDefault()
                    }));

                    SelectedSkills = new ObservableCollection <Models.UserPageModel.ProfessionalSkill>(Skills.Where(s => SkillsConditions.Any(sc => sc.Skill.Id == s.Id)));

                    LanguagesConditions = new ObservableCollection <LanguageCondition>(languagesQuery.Split(',').Select(q => new LanguageCondition
                    {
                        Language = Languages.Where(l => l.Id == int.Parse(q.Split(':')[0])).FirstOrDefault(),
                        From     = LanguageLevels.Where(l => l.Id == int.Parse(q.Split(':')[1].Split('-')[0])).FirstOrDefault(),
                        To       = LanguageLevels.Where(l => l.Id == int.Parse(q.Split(':')[1].Split('-')[1])).FirstOrDefault()
                    }));

                    SelectedLanguages = new ObservableCollection <Models.UserPageModel.LanguagesList>(Languages.Where(l => LanguagesConditions.Any(lc => lc.Language.Id == l.Id)));

                    var projectsIds = projectsQuery.Split(',').Select(pId => int.Parse(pId));
                    SelectedProjects = new ObservableCollection <Models.ProjectsManagementPageModels.Project>(Projects.Where(p => projectsIds.Contains(p.Id)));
                }

                SearchMethod();
            }
        }
Example #4
0
        private void LanguagesSelectionChangedMethod()
        {
            if (SelectedLanguages == null)
            {
                SelectedLanguages = new ObservableCollection <Models.UserPageModel.LanguagesList>();
            }
            if (SelectedLanguages.Count > LanguagesConditions.Count)
            {
                foreach (var selectedLanguage in SelectedLanguages)
                {
                    if (LanguagesConditions.Where(s => s.Language.Id == selectedLanguage.Id).FirstOrDefault() == null)
                    {
                        LanguagesConditions.Add(new LanguageCondition
                        {
                            Language = selectedLanguage,
                            From     = LanguageLevels.First(),
                            To       = LanguageLevels.Last()
                        });
                        return;
                    }
                }
            }

            if (SelectedLanguages.Count < LanguagesConditions.Count)
            {
                foreach (var languageCondition in LanguagesConditions)
                {
                    if (SelectedLanguages.Where(s => s.Id == languageCondition.Language.Id).FirstOrDefault() == null)
                    {
                        var language = LanguagesConditions.Where(s => s.Language.Id == languageCondition.Language.Id).FirstOrDefault();
                        if (language == null)
                        {
                            return;
                        }
                        LanguagesConditions.Remove(language);
                        return;
                    }
                }
            }
        }
Example #5
0
        public bool CreateCourse(Course course, string userId)
        {
            try
            {
                if (course.From >= course.To)
                {
                    return(false);
                }

                course.Name        = course.Name.Trim();
                course.UserCreated = userId;
                foreach (var i in course.Instructors)
                {
                    var instructor = Instructors.FindById(i.InstructorId);
                    if (!instructor.IsAvailable(course.From, course.To))
                    {
                        return(false);
                    }

                    if (!instructor.Rentals.Any(x => x.RentalId == course.RentalId))
                    {
                        return(false);
                    }

                    if (!instructor.HasExpertise(Expertises.FindById(course.ExpertiseId), ExpertiseLevels.FindById(course.ExpertiseLevelId)))
                    {
                        return(false);
                    }


                    if (course.LanguageId.HasValue && !instructor.HasLanguage(Languages.FindById(course.LanguageId.Value),
                                                                              course.LanguageLevelId.HasValue? LanguageLevels.FindById(course.LanguageLevelId.Value) : null))
                    {
                        return(false);
                    }
                }

                Courses.Add(course);
                return(true);
            }
            catch (Exception e)
            {
            }
            return(false);
        }