private void savingChangesToDB(List <MarkObject> marks, int idCurrentTeacher) { if (marks != null) { foreach (var m in marks) { Сriteria_Teachers selectedCriteria = db.Сriteria_Teachers.Single(c => c.Id == m.CriteriaId); // if the record exists in database if (db.Mark_Teachers.Any(mt => mt.Id_teachers == idCurrentTeacher && mt.Id_Criteria == m.CriteriaId)) { if (!m.IsUsing) { deleteMarkTeacher(idCurrentTeacher, m); } else { editMarkTeacher(idCurrentTeacher, m, selectedCriteria); } } else //if the record doesn`t exists in database if (m.IsUsing) { createMarkTeacher(idCurrentTeacher, m, selectedCriteria); } } } }
private void editMarkTeacher(int idCurrentTeacher, MarkObject m, Сriteria_Teachers selectedCriteria) { Mark_Teachers editMarkT = db.Mark_Teachers.Single( mt => mt.Id_teachers == idCurrentTeacher && mt.Id_Criteria == m.CriteriaId); List <Status_Doc_Teacher> oldFiles = db.Status_Doc_Teacher.Where(d => d.Id_Mark_Teacher == editMarkT.Id).ToList(); if (m.Count != editMarkT.Kolvo_ed.Value) { editMarkT.Kolvo_ed = m.Count; editMarkT.Kolvo_Mark = selectedCriteria.Mark * m.Count; editMarkT.Date = DateTime.Now; db.SaveChanges(); } refreshDocs(oldFiles, m, editMarkT); }
private void createMarkTeacher(int idCurrentTeacher, MarkObject m, Сriteria_Teachers selectedCriteria) { Mark_Teachers newMarkTeachers = new Mark_Teachers(); newMarkTeachers.Id_teachers = idCurrentTeacher; newMarkTeachers.Id_Criteria = m.CriteriaId; newMarkTeachers.Kolvo_ed = m.Count; if (m.NewFiles == null || m.NewFiles[0] == null) { newMarkTeachers.Status = -2; } else { newMarkTeachers.Status = 0; } newMarkTeachers.Kolvo_Mark = selectedCriteria.Mark * m.Count; newMarkTeachers.Date = DateTime.Now; if (m.NewFiles != null) { newMarkTeachers.Status_Doc_Teacher = new List <Status_Doc_Teacher>(); foreach (var item in m.NewFiles) { if (item != null) { var document = new Status_Doc_Teacher() { Link_Doc = Guid.NewGuid() + Path.GetFileName(item.FileName), Name = item.FileName, FileType = item.ContentType, FileContent = item.ContentLength }; newMarkTeachers.Status_Doc_Teacher.Add(document); item.SaveAs(Path.Combine(Server.MapPath("~/documents"), document.Link_Doc)); } } } db.Mark_Teachers.Add(newMarkTeachers); db.SaveChanges(); }