private static void SaveGroups(EditAttribute editAttribute, int attributeID) { var curList = AttributeGroups.GetByAttributeID(attributeID); foreach (var groupID in editAttribute.Groups) { if (!curList.Any(item => item.GroupID == groupID)) { var attributeGroup = new AttributeGroup(); attributeGroup.AttributeID = attributeID; attributeGroup.GroupID = groupID; AttributeGroups.Insert(attributeGroup); } else { curList.Remove(curList.Single(cls => cls.GroupID == groupID)); } } foreach (var item in curList) { AttributeGroups.Delete(item.ID); } }
public ActionResult Edit(int?id) { EditAttribute editAttribute; if (id.HasValue) { editAttribute = Mapper.Map <EditAttribute>(Attributes.GetByID(id.Value)); editAttribute.Groups = AttributeGroups.GetByAttributeID(editAttribute.ID).Select(item => item.GroupID).ToList(); } else { editAttribute = new EditAttribute(); } return(View(editAttribute)); }
public ActionResult Edit(EditAttribute editAttribute) { try { var attribute = Mapper.Map <Attribute>(editAttribute); attribute.LastUpdate = DateTime.Now; ViewBag.Success = true; int attributeID = attribute.ID; if (attributeID == -1) { Attributes.Insert(attribute); attributeID = attribute.ID; SaveGroups(editAttribute, attribute.ID); SaveOptions(editAttribute, attribute.ID); UserNotifications.Send(UserID, String.Format("جدید - ویژگی '{0}'", attribute.Title), "/Admin/Attributes/Edit/" + attribute.ID, NotificationType.Success); editAttribute = new EditAttribute(); } else { Attributes.Update(attribute); SaveGroups(editAttribute, attribute.ID); SaveOptions(editAttribute, attribute.ID); editAttribute.Groups = AttributeGroups.GetByAttributeID(editAttribute.ID).Select(item => item.GroupID).ToList(); editAttribute.Options = AttributeOptions.GetByAttributeID(editAttribute.ID).Select(item => new EditAttributeOption() { ID = item.ID, AttributeID = item.AttributeID, Title = item.Title }).ToList(); } } catch (Exception ex) { SetErrors(ex); } return(ClearView(editAttribute)); }