private void savingChangesToDB(List <MarkObjectFaculty> marks, int idCurrentFaculty) { if (marks != null) { foreach (var m in marks) { Criteria_Facility selectedCriteria = db.Criteria_Facility.Single(c => c.Id == m.CriteriaId); // if the record exists in database if (db.Mark_Facility.Any(mt => mt.Id_Facility == idCurrentFaculty && mt.Id_Criteria == m.CriteriaId)) { if (!m.IsUsing) { deleteMarkKafedra(idCurrentFaculty, m); } else { editMarkKafedra(idCurrentFaculty, m, selectedCriteria); } } else //if the record doesn`t exists in database if (m.IsUsing) { createMarkKafedra(idCurrentFaculty, m, selectedCriteria); } } } }
private void editMarkKafedra(int idCurrentFaculty, MarkObjectFaculty m, Criteria_Facility selectedCriteria) { Mark_Facility editMarkF = db.Mark_Facility.Single( mt => mt.Id_Facility == idCurrentFaculty && mt.Id_Criteria == m.CriteriaId); List <Status_Doc_Facility> oldFiles = db.Status_Doc_Facility.Where(d => d.Id_Mark_Facility == editMarkF.Id).ToList(); if (m.Count != editMarkF.Kolvo_ed) { editMarkF.Kolvo_ed = m.Count; editMarkF.Kolvo_mark = (int)selectedCriteria.Mark * m.Count; editMarkF.Date = DateTime.Now; db.SaveChanges(); } refreshDocs(oldFiles, m, editMarkF); }
private void createMarkKafedra(int idCurrentFaculty, MarkObjectFaculty m, Criteria_Facility selectedCriteria) { Mark_Facility newMarkFaculty = new Mark_Facility(); newMarkFaculty.Id_Facility = idCurrentFaculty; newMarkFaculty.Id_Criteria = m.CriteriaId; newMarkFaculty.Kolvo_ed = m.Count; if (m.NewFiles == null || m.NewFiles[0] == null) { newMarkFaculty.Status = -2; } else { newMarkFaculty.Status = 0; } newMarkFaculty.Kolvo_mark = (int)selectedCriteria.Mark * m.Count; newMarkFaculty.Date = DateTime.Now; if (m.NewFiles != null) { newMarkFaculty.Status_Doc_Facility = new List <Status_Doc_Facility>(); foreach (var item in m.NewFiles) { if (item != null) { var document = new Status_Doc_Facility() { Link_Doc = Guid.NewGuid() + Path.GetFileName(item.FileName), Name = item.FileName, FileType = item.ContentType, FileContent = item.ContentLength }; newMarkFaculty.Status_Doc_Facility.Add(document); item.SaveAs(Path.Combine(Server.MapPath("~/documents"), document.Link_Doc)); } } } db.Mark_Facility.Add(newMarkFaculty); db.SaveChanges(); }