private static void SaveOptions(EditAttribute editAttribute, int attributeID) { var curList = AttributeOptions.GetByAttributeID(attributeID); foreach (var option in editAttribute.Options) { if (!curList.Any(item => item.ID == option.ID)) { var attributeOption = new AttributeOption(); attributeOption.AttributeID = attributeID; attributeOption.Title = option.Title; AttributeOptions.Insert(attributeOption); } else { var item = curList.Single(cls => cls.ID == option.ID); curList.Remove(item); item.Title = option.Title; item.OrderID = option.OrderID; AttributeOptions.Update(item); } } foreach (var item in curList) { AttributeOptions.Delete(item.ID); } }
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)); }
public JsonResult GetAttrOptions(int attrID) { var jsonSuccessResult = new JsonSuccessResult(); try { var attrType = Attributes.GetByID(attrID).AttributeType; object model; if (attrType == AttributeType.SingleItem || attrType == AttributeType.MultipleItem) { model = new { Options = AttributeOptions.GetByAttributeID(attrID), HasItems = true }; jsonSuccessResult.Data = model; } else { model = new { HasItems = false }; jsonSuccessResult.Data = model; } jsonSuccessResult.Success = true; } catch (Exception ex) { jsonSuccessResult.Errors = new string[] { ex.Message }; jsonSuccessResult.Success = false; } return(new JsonResult() { Data = jsonSuccessResult }); }