private static void SaveGroups(EditScoreParameter editScoreParameter, int scoreParameterID) { var curList = GroupScoreParameters.GetByScoreParameterID(scoreParameterID); foreach (var groupID in editScoreParameter.Groups) { if (!curList.Any(item => item.GroupID == groupID)) { var groupScoreParameter = new GroupScoreParameter(); groupScoreParameter.ScoreParameterID = scoreParameterID; groupScoreParameter.GroupID = groupID; GroupScoreParameters.Insert(groupScoreParameter); } else { curList.Remove(curList.Single(cls => cls.GroupID == groupID)); } } foreach (var item in curList) { GroupScoreParameters.Delete(item.ID); } }
public ActionResult Edit(EditScoreParameter editScoreParameter) { try { var parameter = Mapper.Map <ScoreParameter>(editScoreParameter); parameter.LastUpdate = DateTime.Now; ViewBag.Success = true; int scoreParameterID = parameter.ID; if (scoreParameterID == -1) { ScoreParameters.Insert(parameter); scoreParameterID = parameter.ID; // ثبت و ویرایش گروه های انتخاب شده SaveGroups(editScoreParameter, scoreParameterID); UserNotifications.Send(UserID, String.Format("جدید - پارامتر امتیازدهی '{0}'", editScoreParameter.Title), "/Admin/ScoreParameters/Edit/" + editScoreParameter.ID, NotificationType.Success); editScoreParameter = new EditScoreParameter(); } else { ScoreParameters.Update(parameter); // ثبت و ویرایش گروه های انتخاب شده SaveGroups(editScoreParameter, scoreParameterID); editScoreParameter.Groups = GroupScoreParameters.GetByScoreParameterID(scoreParameterID).Select(item => item.GroupID).ToList(); } } catch (Exception ex) { SetErrors(ex); } return(ClearView(editScoreParameter)); }
public ActionResult Edit(int?id) { EditScoreParameter parameter; if (id.HasValue) { var editScore = ScoreParameters.GetByID(id.Value); parameter = new EditScoreParameter { ID = editScore.ID, IsActive = editScore.IsActive, Title = editScore.Title, Groups = GroupScoreParameters.GetByScoreParameterID(id.Value).Select(item => item.GroupID).ToList() }; } else { parameter = new EditScoreParameter(); } return(View(parameter)); }