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); }
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); }
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(); } }
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; } } } }
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); }