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