protected override async void OnAppearing() { busyindicator.IsVisible = true; if (App.CheckConnection()) { if (await App.userExists(App.UserUID)) { ready = false; base.OnAppearing(); List <Mark> listMarks = new List <Mark>(); bool connection = true; try { listMarks = await fireBaseHelperMark.GetMarksForSubject(_subject.SubjectID); await status_bars(); double remCA = await fireBaseHelperSubject.remainigCA(_subject.SubjectID); remainingCA.Text = remCA.ToString("F2") + "%"; busyindicator.IsVisible = false; } catch (Exception) { connection = false; } if (connection) { subjectMark = new SubjectMark(_subject, listMarks); if (listMarks.Count == 0) { results_text.IsVisible = true; } else { results_text.IsVisible = false; } this.BindingContext = subjectMark; //!!! ready = true; } else { busyindicator.IsVisible = false; await Navigation.PushAsync(new NoInternetConnectionPage("notApp")); } } else { busyindicator.IsVisible = true; await DisplayAlert("Something went wrong...", "", "OK"); App.Current.MainPage = new NavigationPage(new LogIn()); } } else { busyindicator.IsVisible = true; await Navigation.PushAsync(new NoInternetConnectionPage("notApp")); } }
public bool Add(SubjectMarkDto dto) { if (dto == null) { return(false); } if (dto.Marks == null) { return(false); } if (CheckEndMarkFromDto(dto) == false) { return(false); } try { var subjectMarks = new List <SubjectMark>(); foreach (MarkDto mark in dto.Marks) { if (mark.TypeMarkId == 4) { if (CheckEndMarkFromDb(mark.StudentId, dto.SubjectId) == true) { return(false); } } var subjectMark = new SubjectMark() { SubjectId = dto.SubjectId, SemesterId = dto.SemesterId, StudentId = mark.StudentId, TypeMarkId = mark.TypeMarkId, Mark = mark.Mark }; subjectMarks.Add(subjectMark); } db.SubjectMarks.AddRange(subjectMarks); db.SaveChanges(); } catch { return(false); } return(true); }
public IList <StudentWithGroupViewModel> Get() { var students = new List <StudentWithGroup>(); var groupsForFaculty = Framework.GroupManager.GetListForFaculty(Framework.UserContext.User.FacultyId); foreach (var group in groupsForFaculty) { var student = Framework.StudentWithGroupManager.GetByGroupId(group.Id); students.AddRange(student); } var subjects = Framework.SubjectManager.GetForFaculty(Framework.UserContext.User.FacultyId).OrderBy(s => s.ShortName).ToList(); for (int i = 0; i < students.Count; i++) { if (students[i].SubjectMarks.Count != subjects.Count) { var subjectMarksForStudent = new List <SubjectMark>(); for (int j = 0; j < subjects.Count; j++) { bool check = false; if (students[i].SubjectMarks.Count != 0) { foreach (var mark in students[i].SubjectMarks) { if (mark.SubjectId == subjects[j].Id) { subjectMarksForStudent.Add(mark); check = true; } } } if (!check) { var newSubjectMark = new SubjectMark(); newSubjectMark.StudentId = students[i].Id; newSubjectMark.SubjectId = subjects[j].Id; newSubjectMark.Value = null; subjectMarksForStudent.Add(newSubjectMark); } } students[i].SubjectMarks = subjectMarksForStudent; } } IList <StudentWithGroup> sortedStudents = students.OrderBy(s => s.LastName).ToList(); var result = Mapper.Map <IList <StudentWithGroupViewModel> >(sortedStudents); return(result); }
protected override async void OnAppearing() { base.OnAppearing(); List <Mark> listMarks = await fireBaseHelperMark.GetMarksForSubject(_subject.SubjectID); subjectMark = new SubjectMark(_subject, listMarks); if (listMarks.Count == 0) { results_text.IsVisible = true; } else { results_text.IsVisible = false; } this.BindingContext = subjectMark; //!!! status_bars(); details(); }
public string Calculate() { string data = HttpContext.Current.Request["SubjectMarks"]; SubjectMark[] subjectMarks = JsonConvert.DeserializeObject <SubjectMark[]>(data); SubjectMark MinSubjectMarks = subjectMarks.First(x => x.ObtainMarks == subjectMarks.Min(y => y.ObtainMarks)); SubjectMark MaxSubjectMarks = subjectMarks.First(x => x.ObtainMarks == subjectMarks.Max(y => y.ObtainMarks)); decimal TotalSubjects = subjectMarks.Count(); decimal totalMarks = 100 * TotalSubjects; decimal totalObtainMarks = subjectMarks.Sum(x => x.ObtainMarks); decimal percent = (totalObtainMarks / totalMarks) * 100; Result result = new Result() { MinimumSubject = MinSubjectMarks, MaximumSubject = MaxSubjectMarks, Percentage = percent }; return(JsonConvert.SerializeObject(result)); }
public bool AddAverage(int classId, int subjectId, int semesterId) { var studentIds = db.Students .Where(x => x.ClassId == classId && x.DelFlag == false) .Select(x => x.Id) .ToList(); if (!studentIds.Any()) { return(false); } //check if average marks have already in Db var checkAverageMark = db.SubjectMarks .FirstOrDefault(x => x.SubjectId == subjectId && x.StudentId == studentIds[0] && x.SemesterId == semesterId && x.TypeMarkId == 5 && x.DelFlag == false); if (checkAverageMark != null) { return(false); } var averageSubjectMarks = new List <SubjectMark>(); try { foreach (int studentId in studentIds) { var subjectMarks = db.SubjectMarks .Where(x => x.StudentId == studentId && x.SubjectId == subjectId && x.SemesterId == semesterId && x.DelFlag == false) .Select(x => new { TypeMarkId = x.TypeMarkId, Mark = x.Mark }).ToList(); //check student has a full of mark, if not return false var typeMarks = subjectMarks.GroupBy(x => x.TypeMarkId).ToArray(); if (typeMarks.Length != 4) { return(false); } var firstMark = 0.0; var secondMark = 0.0; var thirdMark = 0.0; var fourthMark = 0.0; var firstMarks = subjectMarks.Where(x => x.TypeMarkId == 1).Select(x => x.Mark).ToList(); if (!firstMarks.Any()) { firstMark = 0; } else { firstMark = firstMarks.Average(); } var secondMarks = subjectMarks.Where(x => x.TypeMarkId == 2).Select(x => x.Mark).ToList(); if (!secondMarks.Any()) { secondMark = 0; } else { secondMark = secondMarks.Average(); } var thirdMarks = subjectMarks.Where(x => x.TypeMarkId == 3).Select(x => x.Mark).ToList(); if (!thirdMarks.Any()) { thirdMark = 0; } else { thirdMark = thirdMarks.Average(); } var fourthMarks = subjectMarks.Where(x => x.TypeMarkId == 4).Select(x => x.Mark).ToList(); if (!fourthMarks.Any()) { fourthMark = 0; } else { fourthMark = fourthMarks.Average(); } var averageMark = (firstMark + secondMark + thirdMark * 2 + fourthMark * 3) / 7; var averageSubjectMark = new SubjectMark() { SubjectId = subjectId, SemesterId = semesterId, StudentId = studentId, TypeMarkId = 5, Mark = averageMark }; averageSubjectMarks.Add(averageSubjectMark); } db.SubjectMarks.AddRange(averageSubjectMarks); db.SaveChanges(); } catch { return(false); } return(true); }