public void SavePeerEvaluation(PeerEvaluationHeader header, IEnumerable <PeerEvaluationLine> items, int userid) { if (header.Id == 0) { header.CreatedBy = _dbContext.Accounts.FirstOrDefault(a => a.Id == userid); header.DateCreated = DateTime.Now; header.Status = _dbContext.Statuses.FirstOrDefault(a => a.Id == TransactionStatus.Save.ToInt()); _dbContext.Add(header); } else { _dbContext.Entry(header).State = EntityState.Modified; } foreach (var i in items) { i.PeerEvaluationHeader = header; if (i.Id == 0) { _dbContext.Add(i); } else { _dbContext.Entry(i).State = EntityState.Modified; } } _dbContext.SaveChanges(); }
public IActionResult Save(PeerEvaluationViewModel model) { var UserId = int.Parse(HttpContext.Session.GetString("UserId")); if (ModelState.IsValid) { var header = new PeerEvaluationHeader { Employee = _Services.GetAccountById(model.Header.EmployeeId) }; List <PeerEvaluationLine> items = new List <PeerEvaluationLine>(); foreach (var item in model.LineItems) { var lineitem = new PeerEvaluationLine { PeerCriteria = _Services.GetPeerCriteriaById(item.CriteriaId), Score = item.Score, Comment = item.Comment }; items.Add(lineitem); } _Services.SavePeerEvaluation(header, items, UserId); return(RedirectToAction("Index")); } else { return(RedirectToAction("Index")); } }